Wikivoyage
dewikivoyage
https://de.wikivoyage.org/wiki/Hauptseite
MediaWiki 1.46.0-wmf.24
first-letter
Medium
Spezial
Diskussion
Benutzer
Benutzer Diskussion
Wikivoyage
Wikivoyage Diskussion
Datei
Datei Diskussion
MediaWiki
MediaWiki Diskussion
Vorlage
Vorlage Diskussion
Hilfe
Hilfe Diskussion
Kategorie
Kategorie Diskussion
Portal
Portal Diskussion
Wahl
Wahl Diskussion
Thema
Thema Diskussion
Nachrichten
Nachrichten Diskussion
TimedText
TimedText talk
Modul
Modul Diskussion
Veranstaltung
Veranstaltung Diskussion
Wikivoyage:Wohin damit
4
1852
1769003
1763692
2026-04-16T13:11:19Z
RolandUnger
3
+2
1769003
wikitext
text/x-wiki
{{Wikivoyage|WV:WD}}
Die Beschreibung der [[Wikivoyage:Geografische Hierarchie|geografischen Hierarchie]] und die [[Wikivoyage:Vorgaben für Artikel|Vorgaben für Artikel]] beschreiben sehr genau, welche Arten von Artikeln sinnvollerweise angelegt werden sollten, wie sie zu verlinken sind, welche Abschnitte sie enthalten sollten und was in diesen Abschnitten zu stehen hat. Wenn du also an einem bestimmten Abschnitt eines Artikels arbeitest, findest du leicht heraus, was dort hin gehört. Der umgekehrte Weg kann jedoch mühsamer sein. Angenommen, du verfügst über bestimmte Informationen, die du bei Wikivoyage veröffentlichen willst. Wie findest du nun die Stellen, an die sie passen? Die Liste unten soll dir dabei helfen.
Wenn du dich lieber an Beispielen orientieren willst, schau dir doch einfach die letzten [[Wikivoyage:Ziel des Monats|Ziele des Monats]] an. Als Beispiele für Wanderrouten könnten der [[Routeburn Track]] oder die [[Bärenrunde]] dienen. Aber bedenke: Keines der Beispiele ist bis ins letzte i-Tüpfelchen perfekt. Unsere Idealvorstellung ist nach wie vor die Umsetzung der [[Wikivoyage:Vorgaben für Artikel|Vorgaben für Artikel]]. Wenn immer noch Unklarheiten bestehen sollten, helfen dir sicher andere Wikivoyager in der [[Wikivoyage:Lounge|Lounge]].
{{List TOC}}
== Wohin damit bei Reisethemen ==
* Die meisten Nutzer von Wikivoyage suchen nach Informationen über bestimmte Reiseziele und somit nach Artikeln zu Reisedestinationen. Diese befinden sich im Hauptnamensraum. Diese Artikel sind der Ort, an dem sämtliche reiserelevanten Objekte primär einsortiert und gelistet werden. Jedes Objekt sollte also auch im Hauptnamensraum auffindbar sein. Themenartikel - und ganz besonders Reiserouten - überschneiden sich mit Ortsartikeln. Lokale Informationen sollten daher möglichst als [[Wikivoyage:Links#Interne Links|interner Link]] vom Themenartikel zum Ortsartikel zur Verfügung gestellt werden. In diesem Fall solltest du dich an folgenden Richtlinien orientieren:
** Gibt es den Ort, in dem das von dir als erwähnenswert erachtete Objekt liegt, auch als Artikel, stelle das Objekt auch dort ein und verlinke dorthin.
** Gibt es den Artikel noch nicht, liegt es an dir zu entscheiden, ob der betroffene Ort einen Artikel wert ist. Wenn ja, lege ihn einfach an. Keine Angst bei der Entscheidungsfindung. Wenn du dir unsicher bist, frage die Community in der [[Wikivoyage:Lounge|Lounge]]. Es gibt zwei Ausnahmefälle, in denen du ein Hotel/Museum/Restaurant/Aktivität nicht zum Ortsartikel verlinkst.
*** Der Ortsartikel existiert nicht, und wird auch mittelfristig nicht existieren - der Ort ist schlicht und ergreifend zu klein. Dann sortiere das Objekt im übergeordneten Regionenartikel ein, und verlinke darauf.
*** Das Objekt existiert nur im Zusammenhang mit dem Themenartikel, wie z. B. eine Raststätte an einer Autobahn. In diesem Fall platziere das Objekt in deinem Themenartikel.
* Nun wird es etwas schwieriger. Das Objekt gibt es im Ortsartikel, aber es besitzt auch eine starke Bindung an den Themenartikel, zum Beispiel eine Bed&Bike-Unterkunft an einem Fernradweg. So kann es passieren, dass ein Themenartikel zu einer Linksammlung ausufert. Zusätzlich müsste sich der Leser eine große Sammlung an Artikeln zusammenstellen. Hier wäre es erlaubt, das Objekt, bzw. dessen [[Vorlage:VCard|VCard]] auch zusätzlich im Themenartikel zu platzieren. Ein klassischer Fall für ein solches Dilemma sind [[Wikivoyage:Reiserouten|Reiserouten]]. Viele der Sehenswürdigkeiten entlang der Reiserouten gibt es oft auch in den Ortsartikeln. Hier ist dein Fingerspitzengefühl gefragt. Ausgiebige Beschreibungen gehören in den Ortsartikel. Fakten, Adressen und Telefonnummern dürfen und sollten auch durchaus im Themenartikel vertreten sein. Denke bei der Entwicklung deiner Artikel bitte auch an die Offline-Benutzbarkeit, also an einen simplen Ausdruck. Ein Themenartikel mit einer schnöden Sammlung von Links nutzt keinem unserer Leser. Hier ist es erlaubt, den Eintrag aus dem Ortsartikel auch im Themenartikel zu verwenden. Bist du dir nicht sicher, frage einfach mal in unserer [[Wikivoyage:Lounge|Lounge]] nach. Aber ein Prinzip gilt immer: Das Objekt sollte '''immer''' und '''primär''' auch im Ortsartikel gelistet sein. Im Falle einer doppelten Listung gibt es aber ein paar Aspekte zu beachten.
** '''Urheberrecht:''' Wenn du einer VCard von einem Artikel in einen anderen Artikel kopierst, musst du an das Urheberrecht denken. Ist es dein eigener Eintrag, gibt es keine Probleme, stammt er jedoch von einem anderen Autor, ist eine Kopie nicht so einfach möglich. Lass in diesem Fall die Beschreibung weg, bzw. formuliere sie komplett neu. Adressen und Telefonnummern sind davon nicht betroffen (siehe auch [[w:Schöpfungshöhe|Schöpfungshöhe]]). Einige Autoren, haben ihre VCards zum Kopieren freigegeben.:
*** [http://de.wikivoyage.org/w/index.php?title=Benutzer%3ABenreis&diff=593951&oldid=584707 Benreis], [http://de.wikivoyage.org/w/index.php?title=Benutzer%3ATimmaexx&diff=588919&oldid=588699 Timmaexx], [http://de.wikivoyage.org/w/index.php?title=Benutzer:Tine&diff=next&oldid=584485 Tine], [[Benutzer:Mboesch|MBoesch]], [[Benutzer:Zaunkönig|Simone]], [[Benutzer:Eduard47|Eduard47]]
** '''Reduktion auf das Wesentliche bei der Kopie''' Neben dem Urheberrecht gibt es auch einen weiteren Aspekt bezüglich der Menge der zu übertragenden Daten. Ausgiebige Beschreibungen der Objekte sollten den Ortsartikeln vorbehalten bleiben. Dort ist ihr primärer Ort. Alles andere wäre auch ein viel zu großer Pflegeaufwand. Die wichtigen Fakten (z. B. Griechisches Restaurant, Adresse, Telefonnummer ...) sollten normalerweise ausreichen.
** '''Wie binde ich das Objekt ein?''' Kopiere einfach die ganze VCard in den Themenartikel und lasse gegebenenfalls die Sektion ''description'' weg.
=== Nicht erwünschte Objekte ===
Bei Wikivoyage haben wir uns entschlossen, die nicht erwünschten Objekte in zwei Gruppen zu unterteilen. <ref>[https://de.wikivoyage.org/w/index.php?title=Wikivoyage:Lounge&oldid=1740131#zwei_Abstimmung_Lebensmittelm%C3%A4rkte Diskussion und Abstimmung „Objekte mit Alleinstellungsmerkmal“]</ref>
==== Unerwünschte Inhalte ====
Dieses ist die strengste Stufe. Die in der nachfolgenden Aufstellung entsprechend markierten Objekte sollen nicht verwendet. Details hierzu findest du in dem separaten Artikel [[Wikivoyage:Unerwünschte Inhalte|Unerwünschte Inhalte]].
==== Objekte mit Alleinstellungsmerkmal ====
Ausnahmen bei nicht erwünschten Objekten.
Objekte auf dieser Seite, die als "Objekte mit Alleinstellungsmerkmal" markiert sind (Tankstellen, Lebensmittelmärkte usw.), können ausnahmsweise in Artikeln gelistet werden, wenn sie ein Alleinstellungsmerkmal besitzen. Als ein solches Merkmal kann beispielsweise folgendes gelten:
* Überregionale Bekanntheit
* Einzig vorhandenes Objekt in weitem Umkreis. Das kann je nach Weltregion ein unterschiedlicher Radius sein und sollte im entsprechenden Kontext abgewogen werden (z.{{nnbsp}}B. Insellage, einziger Lebensmittelladen in einem Ferienort usw.).
* Wenn in einer Einrichtung neben der Landessprache auch Deutsch oder Englisch gesprochen wird, und beide Sprachen keine Amtssprache in dem Land sind.
* Touristisch interessante zusätzliche Eigenschaft, die über die normale Bestimmung des Objektes hinausgeht (z.{{nnbsp}}B. wenn Imbissbude auch ein Planespotting-Hotspot ist).
Dieses Merkmal ist auf der Diskussionsseite des entsprechenden Artikels unter „Objekte mit Alleinstellungsmerkmal“ zu dokumentieren. Dieser Abschnitt der Diskussionsseite sollte nicht archiviert werden. Als Beispiel kann der Eintrag auf der Seite [[Diskussion:Flensburg]] dienen.
'''Von der Ausnahme ausgeschlossen sind [[Wikivoyage:Unerwünschte Inhalte|Unerwünschte Inhalte]].''' Ist es nicht angegeben, können entsprechende Einträge gelöscht werden.
(Die nachfolgende Liste wird kurzfristig aktualisiert)
== Was gehört wo hin? - Eine Schlagwortliste ==
Hier ist eine alphabetische Liste von Schlagworten. Wenn du dein Schlagwort nicht findest, füge es bitte in die [[Wikivoyage_Diskussion:Wohin_damit#Wunschliste|Wunschliste]] auf der Diskussionsseite ein.
=== A ===
; Apotheke : Abschnitt ''Gesundheit'' im Städteartikel. Bitte beachte die Regelung bzgl. [[#Objekte mit Alleinstellungsmerkmal|Objekte mit Alleinstellungsmerkmal]].
; Appartement(s) : ''Siehe Ferienwohnungen.''
; Autowerkstätte : Abschnitt ''Mobilität'' im Städteartikel. Bitte beachte die Regelung bzgl. [[#Objekte mit Alleinstellungsmerkmal|Objekte mit Alleinstellungsmerkmal]].
=== B ===
; Bahnhof : Abschnitt ''Anreise''->''Mit der Bahn'' im Städteartikel. Große Bahnhöfe mit einer umfangreicheren touristischen Infrastruktur können einen eigenen Artikel bekommen. Stelle in dem Fall aber die wichtigsten Informationen zum Bahnhof auch im Ortsartikel ein, sodass dieser einen Abschnitt zum Bahnhof mit einer Zusammenfassung enthält (z. B. Parkplatzsituation und Anbindung an den weiteren ÖPNV). Als Artikelname sollte der gängige Eigenname verwendet werden. Im Idealfall steht zuerst der Ortsname<ref>[[Wikivoyage:Vorschlag für Bahnhofsartikel|Projekt: Vorschlag für Bahnhofsartikel]]</ref><ref>[[Wikivoyage:Lounge/Archiv_2013-07-08#Große_Bahnhöfe|Diskussion: Lounge: Große Bahnhöfe; 06/2013]]</ref><ref>[[Wahl:Regeln zur Namensgebung von Flughäfen und Bahnhöfen|Abstimmung: Namensgebung von Flughäfen und Bahnhöfen; 06/2014]]</ref>.
; {{Anker|Banken}}Banken : Abschnitt ''Einkaufen'' im Städteartikel. Bitte gib Banken und deren Filialen sowie Geldautomaten oder Wechselstuben nur bei besonderen Umständen an, z. B. wenn sie in einem Land wichtig zur Bargeldbeschaffung, -umtausch und -empfang sind oder in ländlichen Regionen eines Landes noch selten sind. Ein weiterer Sonderfall können Zentralbankfilialen sein, bei denen alte Banknoten getauscht werden können. In vielen Regionen der Welt, bei denen mit Kreditkarte gezahlt wird oder die nächste Bank (Geldautomat) nur ein paar Schritte entfernt ist oder mit dem Smartphone ermittelt werden kann, sollten keine Bankfilialen aufgelistet werden. Generelle Informationen zum Banken- und Währungssystem (Kreditkartenakzeptanz, Kurse, Gebühren, Verfahrensweisen, Bankendichte…) gehören in den Länderartikel.<ref>[[Spezial:Permanentlink/1401991#Banken|Diskussion: Wohin damit?: Banken; 08/2021]]</ref>
; Bar : Abschnitt ''Nachtleben'' oder ''Küche'' im Städteartikel
; Baumarkt : Diese Objekte bitte nicht einstellen. Sie sind auf Wikivoyage [[Wikivoyage:Unerwünschte Inhalte|nicht erwünscht]].
; Behinderung : allgemeines Abschnitt ''Praktische Hinweise'' im Städteartikel, ansonsten direkt zum Zielobjekt (Park, Museum, Hotel, ...)
; Bekleidung (Warnung) : Abschnitt ''Respekt'' im Länderartikel
; Bibliothek : Abschnitt ''Lernen'' im Städteartikel, wenn auch für Urlauber/Reisende ohne Mitgliedschaft nutzbare Möglichkeiten und Programme angeboten werden
; Bordell : Diese Objekte bitte nicht einstellen. Sie sind auf Wikivoyage [[Wikivoyage:Unerwünschte Inhalte|nicht erwünscht]].
; Botanischer Garten : Abschnitt ''Sehenswürdigkeiten'' im Städteartikel
; Botschaft : Abschnitt ''Praktische Hinweise'' im Städteartikel und im Abschnitt ''Auslandsvertretungen'' im Länderartikel
; Bundesstaat : oft eigener Regionalartikel
; Bücherei : Abschnitt ''Lernen'' im Städteartikel, wenn auch für Urlauber/Reisende ohne Mitgliedschaft nutzbare Möglichkeiten und Programme angeboten werden
=== C ===
; Café : Abschnitt ''Küche'' im Städteartikel
; Cafeteria : Abschnitt ''Küche'' im Städteartikel. Bitte beachte die Regelung bzgl. [[#Objekte mit Alleinstellungsmerkmal|Objekte mit Alleinstellungsmerkmal]].
; Campingplatz : Abschnitt ''Unterkunft'' im Städteartikel
; Campingplatz (Laden) : Abschnitt ''Einkaufen'' im Städteartikel
; Club (Disco) : Abschnitt ''Nachtleben'' im Städteartikel
; Comedy Club : Abschnitt ''Nachtleben'' im Städteartikel
=== D ===
; Dance Club : Abschnitt ''Nachtleben'' im Städteartikel
; Denkmal : Abschnitt ''Sehenswürdigkeiten'' im Städteartikel
; Disco : Abschnitt ''Nachtleben'' im Städteartikel
; DLRG/DGzRS: Sie bieten auch Tage der offenen Tür an. Diese kannst du unter ''Aktivitäten'' eintragen.<ref>[[Spezial:Permanentlink/1190974#DLRG/DGzRS|Abstimmung: Vorgaben für Artikel: DLRG/DGzRS; 01/2019]]</ref>
; Drogerie, Drogeriemarkt : Hinweise zu Versorgungseinrichtungen mit Lebensmitteln und Drogerieartikeln nur in Orten (Abschnitt ''Einkaufen''), in denen keine bestehen. Dort ist ein Hinweis sinnvoll, wo sich die nächste Einrichtung befindet. Gegebenenfalls sind allgemeine Hinweise wie „Im Dorfzentrum gibt es einfache/keine Lebensmittelgeschäfte bzw. Drogerien. Der nächste größere Supermarkt befindet sich in XYZ“ sinnvoll.<ref name="supermarkt">[[Spezial:Permanentlink/1587983#Supermärkte/Supermärkte|Diskussion: Wohin damit: Supermärkte; 12/2023]]</ref> Bitte beachte die Regelung bzgl. [[#Objekte mit Alleinstellungsmerkmal|Objekte mit Alleinstellungsmerkmal]].
=== E ===
; Einkaufen : Abschnitt ''Einkaufen'' im Städteartikel
; Elektrofachmarkt : Diese Objekte bitte nicht einstellen. Sie sind auf Wikivoyage [[Wikivoyage:Unerwünschte Inhalte|nicht erwünscht]].
; Essgewohnheiten : Abschnitt ''Küche'' im Regionen- oder Länderartikel
; E-Roller-, E-Scooter-Verleih : Abschnitt ''Mobilität'' im Städteartikel
; E-Roller-, E-Scooter-Werkstatt : Abschnitt ''Mobilität'' im Städteartikel
=== F ===
; Fähre : Abschnitt ''Anreise''->''Schiff'' im Städteartikel, wenn man mit einer Fähre anreist (über das Meer oder einen See), für Fährverbindungen innerhalb eines Ortes (z. B. über einen Fluss) wird sie unter ''Mobilität'' erwähnt. Bitte verlinke oder beschreibe keine Fahrpläne. Solche Informationen ändern sich regelmäßig. Allgemeine Informationen, wie ''fährt alle halbe Stunde'' sind aber hilfeich.<ref>[[Spezial:Permanentlink/1402015#Fähre|Diskussion: Wohin Damit?: Fähre; 08/2021]]</ref>
; Fahrplan : Gib keine Fahrpläne für Busse, Bahnen, Fähren usw. an. Man kann solche Angaben nicht laufendhalten. Pauschale Angaben wie „fährt halbstündlich“ sind allerdings möglich und interessant für die Reiseplanung. Ist das Transportunternehmen verlinkt, kann jeder Benutzer den Fahrplan online einsehen. Setze bitte keine Links direkt zu den Fahrplänen. Internetauftritte sind heutzutage dynamisch und der Link kann schnell nicht mehr funktionieren.
; Fahrradgeschäft : Abschnitt ''Einkaufen'' im Städte- bzw. Regionenartikel, wenn auch Fahrrad-Verleih und/oder -Werkstatt vorhanden : Abschnitt ''Mobilität'' im Städteartikel
; Fahrrad-Touren : Abschnitt ''Aktivitäten'' im Städteartikel<ref>[[Spezial:Permanentlink/1404809#Fahrrad-Touren|Diskussion: Wohin Damit?: Fahrrad-Touren; 08/2021]]</ref>
; Fahrrad-Verleih : Abschnitt ''Mobilität'' im Städteartikel
; Fahrrad-Werkstatt : Abschnitt ''Mobilität'' im Städteartikel
; Fahrradweg : Abschnitt ''Aktivitäten'' oder ''Mobilität'' im Städteartikel
; Fast-Food-Ketten : Abschnitt ''Küche'' im Städteartikel. Bitte beachte die Regelung bzgl. [[#Objekte mit Alleinstellungsmerkmal|Objekte mit Alleinstellungsmerkmal]].
; Feiertag (landesweit) : Abschnitt ''Feiertage'', ggf. auch ''Hintergrund'' oder ''Ausgehen'' im Länderartikel
; Feiertag (regional) : Abschnitt ''Feiertage'', ggf. auch ''Hintergrund'' oder ''Ausgehen'' im Regionalartikel
; Ferienwohnung, Ferienhaus : Hinweise zu Ferienwohnungen bzw. Ferienhäusern nur in Orten (Abschnitt ''Unterkunft''), in denen keine Hotels oder andere Unterkünfte bestehen. <ref>[[Spezial:Permanentlink/1406806#Einzelne_Ferienwohnung_im_Abschnitt_"Unterkunft"|Lounge:Einzelne Ferienwohnung im Abschnitt "Unterkunft"; 08/2021]]</ref>
; Festival : Abschnitt ''Aktivitäten'' im Städteartikel
; Feuerwehr: Je nach Bedeutung für den Reisenden sind zwei Abschnitte möglich: ''Aktivitäten'' Hier können regelmäßige Feierlichkeiten wie Feuerwehrfeste oder angebotene Aktivitäten aufgelistet werden. Unter ''Sehenswürdigkeiten'' können Sie gelistet werden, wenn sie architektonisch erwähnenswert sind oder musealen Charakter haben und Führungen anbieten.<ref>[[Spezial:Permanentlink/1179863#Ortsfeuerwehr|Lounge: Ortsfeuerwehr; 11/2018]]</ref><ref>[[Spezial:Permanentlink/1190974#Feuerwehr|Abstimmung: Vorgaben für Artikel: Feuerwehr; 03/2019]]</ref>
; Flughafen : Abschnitt ''Anreise''->''Flugzeug'' im Städteartikel
; Flughafen (Erreichbarkeit mit öffentlichen Verkehrsmitteln) : Abschnitt ''Anreise''->''Flugzeug'' im Städteartikel
; Freizeitpark : Abschnitt ''Aktivitäten'' im Städteartikel
; Friedhof : Friedhöfe können unter ''Sehenswürdigkeiten'' angegeben werden, wenn dort bekannte Persönlichkeiten bestattet sind, oder historisch oder kulturell bedeutende Objekte besichtigt werden können. Bietet ein Fiedhof einen öffentlichen Parkplatz, der sich zur Erkundung des Ortes anbietet, kann man unter ''Anreise mit dem Auto'' einen passenden Marker platzieren. Hat er, im Gegensatz zum restlichen Ort, eine Toilette, kann dies unter ''Praktische Hinweise'' vermerkt werden.<ref>[[Special:PermaLink/1396474#Friedhöfe|Lounge: Friedhöfe; 07/2018]]</ref>
; Friseur : Diese Objekte bitte nicht einstellen. Sie sind auf Wikivoyage [[Wikivoyage:Unerwünschte Inhalte|nicht erwünscht]].<ref>[[Special:PermaLink/909080#Zwischenergebnis|Diskussion: Vorgaben für Artikel: Friseure; 06/2016]]</ref>
=== G ===
; Gästehaus : Abschnitt ''Unterkunft'' im Städteartikel
; Geldautomat : siehe [[#Banken|Banken]]
; Geschichte (Land) : Abschnitt ''Hintergrund'' im Länderartikel
; Geschichte (Region) : Abschnitt ''Hintergrund'' im Regionalartikel
; Geschichte (Stadt) : Abschnitt ''Hintergrund'' im Städteartikel
; Gezeitentabelle : Abschnitt ''Sicherheit'', wenn die Gegebenheiten vor Ort die Information erforderlich erscheinen lassen, Verlinkung nur zur offiziellen Seite erwünscht.
=== H ===
; Hochschule : Abschnitt ''Lernen'' im Städteartikel
; Hostel : Abschnitt ''Unterkunft'' im Städteartikel
; Hotel : Abschnitt ''Unterkunft'' im Städteartikel
=== I ===
; Imbiss : Abschnitt ''Küche'' im Städteartikel. Bitte beachte die Regelung bzgl. [[#Objekte mit Alleinstellungsmerkmal|Objekte mit Alleinstellungsmerkmal]].
; Informationszentrum (touristisch) : Abschnitt ''Praktische Hinweise'' im Städteartikel
; Internet: Informationen zur Verfügbarkeit von Internet im Ort Abschnitt stehen unter ''Praktische Hinweise'' im [[Wikivoyage:Vorgabe für Städte#Praktische Hinweise|Stadtartikel]]. Einzelne Internetcafés zu listen ist nur noch notwendig, wenn es in den betreffenden Orten limitierten Internetzugang gibt (z. B. kein Mobilfunknetz und keine WLANs in Hotels und Restaurants). Bei Länderartikeln gibt es einen eigenen Abschnitt für [[Wikivoyage:Vorgabe für Länder#Post und Telekommunikation|Post und Telekommunikation]]. Dort können generelle Angaben zum Internet und dessen Zugang im entsprechenden Land gemacht werden. Beachte auch die ausführlichen Informationen unter [[#W|WiFi-Netz]] weiter unten.
=== K ===
; Kabarett : Abschnitt ''Nachtleben'' im Städteartikel
; Kantine : Abschnitt ''Küche'' im Städteartikel. Bitte beachte die Regelung bzgl. [[#Objekte mit Alleinstellungsmerkmal|Objekte mit Alleinstellungsmerkmal]].
; Kathedrale : Abschnitt ''Sehenswürdigkeiten'' im Städteartikel
; Kiosk : Hinweise zu Versorgungseinrichtungen mit Lebensmitteln und Drogerieartikeln nur in Orten (Abschnitt ''Einkaufen''), in denen keine bestehen. Dort ist ein Hinweis sinnvoll, wo sich die nächste Einrichtung befindet. Gegebenenfalls sind allgemeine Hinweise wie „Im Dorfzentrum gibt es einfache/keine Lebensmittelgeschäfte bzw. Drogerien. Der nächste größere Supermarkt befindet sich in XYZ“ sinnvoll.<ref name="supermarkt" />
; Kirche : Abschnitt ''Sehenswürdigkeiten'' im Städteartikel
; Kleiderladen : Abschnitt ''Einkaufen'' im Städteartikel
; Kleidung (traditionell) : Abschnitt ''Hintergrund'' im Städte-, Regionen-, oder Länderartikel
; Kleidung (Warnung) : Abschnitt ''Respekt'' im Länderartikel
; Klima : In Regionen- oder Länderartikeln gibt es eigene Abschnitte, in Orts- bzw. Städteartikeln nur in Ausnahmefällen im Abschnitt ''Praktische Hinweise''. Hinweise zu allgemeinen klimatischen Besonderheiten (hohe Anzahl Regentage etc.) können auch unter ''Hintergrund'' erwähnt werden.
; Konsulate : Abschnitt ''Praktische Hinweise'' im Städteartikel
; Konzerthalle : Abschnitt ''Aktivitäten'' im Städteartikel
; Krankenhaus : Abschnitt ''Gesundheit'' im Städteartikel
; Kultur : Abschnitt ''Hintergrund'' im Städte-, Länder-, oder Regionalartikel
; Kurtaxe, Kulturabgabe, City-Tax ("Bettensteuer"): Abschnitt ''Unterkunft'' im Städteartikel
=== L ===
; Ladestationen : Ladestationen werden auf Wikivoyage derzeit nicht erfasst und ist auch nicht geplant.<ref>[[Special:PermaLink/1355158#Sind neue Markertypen für E-Ladestationen geplant?|Diskussion: Lounge: Ladestationen; 01/2021]]</ref>
; Lebensmittelgeschäft : Hinweise zu Versorgungseinrichtungen mit Lebensmitteln und Drogerieartikeln nur in Orten (Abschnitt ''Einkaufen''), in denen keine bestehen. Dort ist ein Hinweis sinnvoll, wo sich die nächste Einrichtung befindet. Gegebenenfalls sind allgemeine Hinweise wie „Im Dorfzentrum gibt es einfache/keine Lebensmittelgeschäfte bzw. Drogerien. Der nächste größere Supermarkt befindet sich in XYZ“ sinnvoll.<ref name="supermarkt" />
; Lichtspielhaus (Kino) : Abschnitt ''Aktivitäten'' im Städteartikel
=== M ===
; Mietwagen : Abschnitt ''Mobilität'' im Städteartikel. Vermeide bei Mietwagenanbietern unkommentierte Branchenverzeichnisse und weltweit agierende Mietwagenanbieter mit Ihren Portalseiten. Empfehlungen von aufgrund persönlicher Erfahrung vertrauenswürdigen lokalen Autoverleihern sind aber möglich. Gib dann aber bitte auch einen kurzen Beschreibungstext mit an und begründe damit deinen Eintrag (z. B. Zuverlässigkeit, Abholservices vom Hotel, Sprachkenntnisse, Versicherungen usw.). Ausnahme sind Flughafen- und Bahnhofsartikel, in denen die vorhandenen Autovermieter pauschal genannt werden können.<ref>[[Spezial:Permanentlink/1550597#Mietwagen|Lounge: Mietwagen; 07/2023]]</ref>
; Mobilitätseinschränkung : siehe -> Behinderung
; Monument : Abschnitt ''Sehenswürdigkeiten'' im Städteartikel
; Museum : Abschnitt ''Sehenswürdigkeiten'' im Städteartikel
=== N ===
; Nachtclub : Abschnitt ''Nachtleben'' im [[Wikivoyage:Vorgabe für Städte|Städteartikel]]
; nahegelegene Ziele (Städte, Regionen) : Abschnitt ''Ausflüge'' im Städte- oder [[Wikivoyage:Vorgabe für Regionen|Regionalartikel]]
; Neighborhood : Abschnitt ''Hintergrund'' im [[Wikivoyage:Vorgabe für Städte|Städte-]] ''oder'' [[Wikivoyage:Vorgabe für Stadtteile|Stadtteilartikel]] (bei Großstädten)
; Notruf : Abschnitt ''Gesundheit'' im [[Wikivoyage:Vorgabe für Länder|Länderartikel]]. Füge dazu einfach die Vorlage {{Tlx|Quickbar Notruf}} am Anfang des Abschnitts ein. Eine Angabe der Nummern ist in der Vorlage nicht notwendig. Sie werden von [[Wikivoyage:Wikidata|Wikidata]] bezogen. In Ausnahmefällen kannst du eine Notrufnummer auch in einem Regionen- oder Stadtartikel angeben, z. B. wenn es an einem Ort eine Touristenpolizei oder englischsprachige Hotline gibt, die sich um die Belange der Reisenden kümmert.<ref>[[Spezial:Permanentlink/1520795#Notrufnummern|Lounge: Notrufnummern: Zeitung; 02/2023]]</ref>
=== O ===
; Oper : Abschnitt ''Aktivitäten'' im Städteartikel
=== P ===
; Park (Natur) : Abschnitt ''Weitere Ziele'' im Regionen- oder Länderartikel
; Park (Stadt) : Abschnitt ''Sehenswürdigkeiten'' im Städteartikel
; Parkplatz : Abschnitt ''Mobilität'' im Städteartikel
; Politik : Abschnitt ''Hintergrund'' im Städte- , Länder-, oder Regionalartikel
; Polizei: Abschnitt ''Sicherheit'' im Städte- , Länder-, oder Regionalartikel. Angabe des nächsten Polizeibüros bzw. Kontakt zur örtlichen Touristenpolizei, die es in einigen Ländern gibt. Allgemeine Notrufnummern gehören in den Länderartikel.<ref>[[Spezial:Permanentlink/1190974#Polizei|Abstimmung: Vorgaben für Artikel: Abstimmung: Polizei; 01/2019]]</ref><ref>[[Spezial:Permanentlink/1402114#Polizei|Diskussion: Wohin Damit?: Polizei; 08/2021]]</ref>
; Post : Abschnitt ''Praktische Hinweise'' im [[Wikivoyage:Vorgabe für Städte#Praktische Hinweise|Stadtartikel]]. Bei Länderartikeln gibt es dazu einen eigenen Abschnitt für [[Wikivoyage:Vorgabe für Länder#Post und Telekommunikation|Post und Telekommunikation]]
; Postleitzahl : Diese geben wir nicht mehr explizit an, da sie in jedem Hotel- oder Restauranteintrag ersichtlich ist. Gelegentlich findet sie sich aber noch in den Infoboxen von Provinzartikeln, dann aber landesweit einheitlich.
; Provinz : oft eigener Regionalartikel
=== R ===
; Religion : Abschnitt ''Hintergrund'' im Städte-, Länder-, oder Regionalartikel
; Restaurant : Abschnitt ''Küche'' im Städteartikel
; Reisebüro : Reisebüros werden auf Wikivoyage nicht aufgeführt. Ausnahmen gibt es in Orten (Abschnitt ''Praktische Hinweise''), in denen es keine Touristen-Informationen gibt und die Reisebüros deren Aufgaben übernehmen<ref>[[Spezial:Permanentlink/1624986#Reisebüros|Lounge: Reisebüros: 06/2024]]</ref>
; Rundgang (Sehenswürdigkeiten) : Abschnitt ''Sehenswürdigkeiten'' im Städteartikel
; Rundweg (Wandern) : Abschnitt ''Aktivitäten'' im Städteartikel
=== S ===
; Sauna: Aktivitäten. Fachinformationen mit sexuellem Inhalt sind hingegen nicht [[Wikivoyage:LGBTQIA-Informationen#LGBTQIA+-orientierte_Bars,_Clubs,_Kneipen,_Hotels_und_Spas|erwünscht]]<ref>[[Wikivoyage_Diskussion:Wohin_damit|Diskussion: Wohin damit: Sauna; 08/2025]]</ref>
; Schlüsseldienst : Informationen zu Schlüsseldiensten sind hier auf Wikivoyage nicht [[Wikivoyage:Unerwünschte Inhalte#Blacklist|erwünscht]]<ref>[[Wikivoyage:Lounge/Archiv 2015-08-27#Schlüsseldienste|Diskussion: Lounge: Schlüsseldienste; 06/2015]]</ref>
; Schulen : Abschnitt ''Lernen'' im Städteartikel, wenn auch für Urlauber/Reisende ohne Mitgliedschaft nutzbare Möglichkeiten und Programme angeboten werden. Sportschulen (Segel-, Surf-, Tauchschulen usw.) ggf. im Abschnitt ''Aktivitäten''. Allgemeinbildende und Berufsschulen bitte nicht listen.
; Shopping : Abschnitt ''Einkaufen'' im Städteartikel
; Skigebiet : Abschnitt ''Aktivitäten'' im Städteartikel der nächsten Stadt
; Skiverleih : Abschnitt ''Aktivitäten'' im Städteartikel ([[Spezial:Permanentlink/1402212#Skiverleih|Diskussion]])
; Souvenirs : Abschnitt ''Einkaufen'' im Städteartikel
; Spa: Aktivitäten. Fachinformationen mit sexuellem Inhalt sind hingegen nicht [[Wikivoyage:LGBTQIA-Informationen#LGBTQIA+-orientierte_Bars,_Clubs,_Kneipen,_Hotels_und_Spas|erwünscht]]<ref>[[Wikivoyage_Diskussion:Wohin_damit|Diskussion: Wohin damit: Sauna; 08/2025]]</ref>
; Spezialitäten (Essen) : Abschnitt ''Küche'' im Regionen- oder Länderartikel
; Sportverein : Abschnitt ''Aktivitäten'' im Städteartikel
; Sprache : Abschnitt ''Sprache'' im Länderartikel (s. auch [[Wikivoyage:Expedition 'Sprachführer'|Expedition 'Sprachführer']])
; Staat (Bundes-) : oft eigener Regionalartikel
; Stadion : Abschnitt ''Aktivitäten'' im Städteartikel. Einige große Stadien sind auch Sehenswürdigkeiten und werden zielgerichtet von Reisenden und Fotografen besucht, da auch Führungen und Museen verfügbar sind. In dieser Situation kannst du erwägen, das Objekt auch unter ''Sehenswürdigkeiten'' einzuordnen.
; Stadtbahn : Abschnitt ''Mobilität'' im Städteartikel
; Strand (klein): Abschnitt ''Aktivitäten'' im Städteartikel der nächsten Stadt
; Strand (lang und groß): möglicherweise eigener Artikel
; Straßenbahn : Abschnitt ''Mobilität'' im Städteartikel
; Supermarkt : Hinweise zu Versorgungseinrichtungen mit Lebensmitteln und Drogerieartikeln nur in Orten (Abschnitt ''Einkaufen''), in denen keine bestehen. Dort ist ein Hinweis sinnvoll, wo sich die nächste Einrichtung befindet. Gegebenenfalls sind allgemeine Hinweise wie „Im Dorfzentrum gibt es einfache/keine Lebensmittelgeschäfte bzw. Drogerien. Der nächste größere Supermarkt befindet sich in XYZ“ sinnvoll.<ref name="supermarkt" />
; Swinger-Club: Diese Objekte bitte nicht einstellen. Sie sind auf Wikivoyage [[Wikivoyage:Unerwünschte Inhalte#Blacklist|nicht erwünscht]].<ref>[[Spezial:Permanentlink/329292#Adults-Only-Angebote|Lounge: Adults-Only-Angebote; 05/2011]]</ref>
=== T ===
; Tankstelle : Tankstellen werden auf Wikivoyage im Städteartikel nicht erfasst, in Länder- und Regionenartikeln nur in extrem dünn besiedelten Gebieten im Abschnitt ''Mobilität'' und auch nur dann, wenn der Weg zur nächsten Tankstelle schon mal 100 km und mehr betragen kann.<ref>[[Spezial:Permanentlink/968081#Tankstellen|Diskussion]]</ref> Bitte beachte die Regelung bzgl. [[#Objekte mit Alleinstellungsmerkmal|Objekte mit Alleinstellungsmerkmal]].
; Taxi : Abschnitt ''Mobilität'' im Städteartikel
; Tempel : Abschnitt ''Sehenswürdigkeiten'' im Städteartikel
; Theater : Abschnitt ''Aktivitäten'' im Städteartikel
; Toiletten : Abschnitt ''Praktische Hinweise'' im Städteartikel
; Touristen-Information : Abschnitt ''Praktische Hinweise'' im Städteartikel
; Tram : Abschnitt ''Mobilität'' im Städteartikel
=== U ===
; U-Bahn : Abschnitt ''Mobilität'' im Städteartikel
; Universität : Abschnitt ''Lernen'' im Städteartikel
=== V ===
; Verkehr : Abschnitt ''Mobilität'' im Städteartikel
; Visum : Abschnitt ''Anreise'' im Länderartikel
; Vorort : Vororte, die mit dem ÖPNV erreicht werden können, aber keinen eigenen Ortsartikel in Wikivoyage haben, können in den jeweiligen Abschnitten (''Sehenswürdigkeiten, Aktivitäten, Einkaufen'' usw.) mit berücksichtigt werden. Sollte vorgenanntes nicht zutreffen, gehören Vororte in den Abschnitt ''Ausflüge''.
=== W ===
; Währung : In der [[Hilfe:Quickbars|Quickbar]] im Länderartikel, evtl. Erwähnung im Abschnitt ''Einkaufen'' im Länderartikel
; Wandern : Abschnitt ''Aktivitäten'' im Städte- oder Regionenartikel
; Wanderweg : Abschnitt ''Aktivitäten'' im Städteartikel der nächsten Stadt
; Wanderweg (weit) : eigener Reiserouten-Artikel
; Waschsalon : Abschnitt ''Praktische Hinweise'' im Städteartikel
; Wechselkurs : siehe [[#Währung|Währung]]
; Wechselstube : siehe [[#Banken|Banken]]
; Wetterbedingungen : Bei Reiseführern zu Wanderrouten, Radrouten, Wintersportgebieten, Extremsportarten, abgelegenen Bergdörfern, Vulkangebieten usw. können spezielle Infoseiten zur lokalen/regionalen Wetterlage verlinkt werden unter ''Praktische Hinweise'' oder ''Sicherheit'', bei Themenartikeln (Wanderrouten etc.) in der Regel der Abschnitt ''Sicherheit''
; WiFi Netz : Einzelne WiFi-Netze werden auf Wikivoyage nicht angegeben. In folgender Form können Informationen zu dem Thema aber Einzug halten. Abschnitt ''Post und Telekommunikation'' des Länderartikels kannst du die generelle Verfügbarkeit von WiFi Netzen im Land beschreiben. Haben Flughäfen, Bahnhöfe, Verkehrsunternehmen, Hotels, Restaurants im Regelfall WiFi-Angebote? Gibt es rechtliche Rahmenbedingungen, die zu beachten sind? Im Städteartikel kann man unter ''Praktischen Hinweisen'' möglicherweise vorhandene und für Reisende nutzbare kommunale großflächige WiFi-Netze angeben und erklären, wie man Zugang bekommt, sollte es nur unter Anmeldung möglich sein. Bei einzelnen Objekten (Hotels, Restaurants usw.) kann man in der [[Hilfe:Erstellen_einer_VCard|VCard]] angeben, ob ein Wifi verfügbar ist. Liste aber kein Objekt auf, nur weil es ein freies WiFi anbietet.<ref>[[Spezial:Permanentlink/1404810#WiFi|Diskussion: Wohin damit?: WiFi; 08/2021]]</ref>
; Wireless Access Point : Abschnitt ''Post und Telekommunikation'' im Städteartikel
; Wohnmobilstellplatz, Caravan-Campingplatz : Abschnitt ''Unterkunft'' im Städteartikel
; Wohnung(en) : ''Siehe Ferienwohnungen.''
=== Z ===
; Zeitung : Abschnitt ''Literatur'' im Städteartikel. Für bestimmte Ausgaben und Beiträge kannst du die Vorlage {{Tl|Zeitung}} oder {{Tl|Zeitschrift}} benutzen. Onlinezeitschriften kannst du im Abschnitt ''Weblinks'' ablegen. Beachte aber unsere [[Wikivoyage:Links|Linkregeln]]. Werbung für Zeitschriften und Bücher ist ebenso nicht erwünscht.<ref>[[Spezial:Permanentlink/1404272#Zeitung|Diskussion: Wohin damit?: Zeitung; 08/2021]]</ref>
; Zeitzone : In der [[Hilfe:Quickbars|Quickbar]] im Regionen- oder Länderartikel
; Zoo : Abschnitt ''Sehenswürdigkeiten'' im Städteartikel
; Zug (Fahrplan) : Abschnitt ''Anreise''->''Bahn'' im Städteartikel
== Einzelnachweise ==
<references />
== Siehe auch ==
===== Projektseiten =====
* [[Wikivoyage:Beschreibung von Objekten|Beschreibung von Objekten]] – Grundsätzliches zur Beschreibung einzelner Objekte.
** [[Wikivoyage:Beschreibungen von Sehenswürdigkeiten und Aktivitäten|Beschreibung von Sehenswürdigkeiten und Aktivitäten]] – Näheres zu den Abschnitten '''Sehenswürdigkeiten''' und '''Aktivitäten''' eines Artikels.
** [[Wikivoyage:Beschreibungen von Bars und Restaurants|Beschreibungen von Bars und Restaurants]] – Näheres zum Abschnitt '''Küche''' und '''Nachtleben''' eines Artikels.
** [[Wikivoyage:Beschreibungen von Unterkünften|Beschreibung von Unterkünften]] – Näheres zum Abschnitt '''Unterkunft''' eines Artikels.
* [[Wikivoyage:Unerwünschte Inhalte|Unerwünschte Inhalte]] – Diese Inhalte sind in Wikivoyage-Artikel nicht erwünscht.
* [[Wikivoyage:Vorgaben für Artikel|Vorgaben für Artikel]] – So stellen wir uns Wikivoyage-Artikel inhaltlich und strukturell vor.
* [[Wikivoyage:Was wir wollen und was nicht|Was wir wollen und was nicht]] – Grundsätzliche Ausrichtung des Projektes Wikivoyage.
* [[Wikivoyage:Was ist ein Artikel|Was ist ein Artikel]] – Wann verdient ein Reiseziel einen eigenen Artikel? Wann ist es nur eine Sehensürdigkeit in einem Reiseziel? Dieser Artikel gibt dir ein paar Richtlinien.
{{IstIn|Artikelinhalte}}
[[Kategorie:Wikivoyage:Stilhandbuch|Wohin damit]]
0kqtvj6nckta228cnlz9dmtqw1f2h2e
Bautzen
0
2539
1768995
1768711
2026-04-16T13:00:11Z
~2026-23491-94
58163
/* Lernen */
1768995
wikitext
text/x-wiki
{{Quickbar Ort
| Bild= [[Datei:City Bautzen Germany 104.JPG|300px|Blick auf die Altstadt von der Friedensbrücke aus. Im Vordergrund das sogenannte Hexenhäuschen (vor 1604). In der Mitte die Mönchsbastei (1324) an der Mühltorgasse. Im Hintergrund der Wasserturm (1877) in der Mönchskirchenruine, der Dom St. Petri (1213/1221) und der Rathausturm (1213/1705).]]
| TouriInfoWeb=http://www.bautzen.de/tourismus.asp
| TouriInfoTel=+49 3591 42016
}}{{ZdM|Datum=2022-03|Art=Abseits}}
'''Bautzen''' (sorbisch '''Budyšin''') ist eine über tausendjährige Stadt in der [[Oberlausitz]] und gilt als die Hauptstadt der Sorben. Sie besitzt eine sehr gut erhaltene bzw. restaurierte Altstadt inkl. Kneipenszene. Daneben ist Bautzen überregional für seinen Senf sowie als Standort des "Stasi-Knasts" Bautzen II bekannt.
== Hintergrund ==
Bautzen, ursprünglich eine slawische Niederlassung ''Budissin'', erscheint schon um 1004, wo es vom König Heinrich II. erobert wurde, als befestigte Stadt. Zur Hebung derselben trug der Ruf einer Reliquie bei, eines Arms von St. Petrus. Hier wurde 1018 der Friede zwischen dem Polenherzog Boleslaw und Kaiser Heinrich II. und 1350 der Vertrag zwischen Karl IV. und Ludwig von Brandenburg geschlossen, wodurch Ludwig seinen Ansprüchen auf die Niederlausitz entsagte, aber Brandenburg verbürgt erhielt. Im Hussitenkrieg litt Bautzen viel, schlug aber 1431 einen Sturm ab. Im Dreißigjährigen Krieg nahm es Kurfürst Georg 1620 nach vierwöchiger Belagerung ein; 1633 wurde es von Wallenstein erobert, und am 4. Mai 1634 brannte es der vom Kurfürsten von Sachsen belagerte kaiserliche Oberst v. Goltz nieder, bevor er sich ergab. Im Jahre 1813 wurde Bautzen berühmt durch die Schlacht vom 20. und 21. Mai, in der die Armeen Napoléons gegen die Verbündeten Russland und Preußen kämpften.
== Anreise ==
{{quickbar table begin|width: 200px;}}
{{quickbar header|Entfernungen}}
{{quickbar item|heading=[[Cottbus]]|value=80 km}}
{{quickbar item|heading=[[Liberec]]|value=72 km}}
{{quickbar item|heading=[[Dresden]]|value=63 km}}
{{quickbar item|heading=[[Görlitz]]|value=48 km}}
{{quickbar item|heading=[[Zittau]]|value=46 km}}
{{quickbar item|heading=[[Hoyerswerda]]|value=36 km}}
{{quickbar table end}}
=== Mit dem Flugzeug ===
Der nächste Verkehrsflughafen ist der {{Marker |type=airport |name=Flughafen Dresden-Klotzsche |wikidata=Q657005 |show=none}}. Nach der Ankunft fährt man entweder mit dem Auto ca. 50 km über die A 4 Richtung Görlitz oder mit der S-Bahn oder dem Bus 80 zum Bahnhof Dresden-Klotzsche und dort mit dem Zug (RE 1 oder RB 60) nach Bautzen.
Der ehemalige Militärflughafen Litten in unmittelbarer Nähe der Stadt Bautzen wird von Sportflugzeugen und für Veranstaltungen wie das „VW-Pfingsttreffen“ oder die „Flugtage Bautzen“ („Flugtage Litten“) genutzt.
=== Mit der Bahn ===
Mit dem Regionalexpress von Dresden Hauptbahnhof oder Görlitz bis Bahnhof Bautzen. Der {{Marker|type=train|name=Bahnhof|wikidata=Q320740}} liegt anderthalb Kilometer südlich des Zentrums; entsprechend ist es dann zu Fuß 10 bis 15 Minuten in die Altstadt.
=== Mit dem Bus ===
Aufgrund seiner Lage an der Ost-West-Magistrale A 4 ist Bautzen Haltepunkt zahlreicher Buslinien aus verschiedenen Teilen Deutschlands auf dem Weg Richtung Tschechien. Es gibt mehrere Fernbushalte. Dies ist zum Einen ein {{Marker|type=bus|name=Halt|lat=51.1740 | long=14.4285}} am Bahnhof, zum Anderen ein Halt an der Ausfallstrasse Richtung Autobahn ({{Marker|type=bus|name=Flixbushalt|lat=51.1817 | long=14.4150}})
=== Auf der Straße ===
Bautzen liegt an der Bundesautobahn {{RSIGN|DE|A|4|Bundesautobahn 4|40}} und damit an einer großen Ost-West-Achse. Die Stadt ist dadurch u.a. von Dresden her aus dem Westen und von Görlitz aus dem Osten schnell und bequem zu erreichen. Von Norden reist man am besten über die Bundesstraßen {{RSIGN|DE|B|96}} oder {{RSIGN|DE|B|156}} an.
== Mobilität ==
{{Mapframe|51.1816|14.4238|zoom=15}}
Die Sehenswürdigkeiten der Altstadt von Bautzen liegen dicht beieinander und sind leicht zu Fuß zu erreichen. Bautzen verfügt mittlerweile auch über ein gut ausgebautes Netz von Radwegen. Es gibt zudem mehrere Stadtbus-Linien.
== Sehenswürdigkeiten ==
=== Türme und Basteien ===
Bautzen wird mit Recht auch als Türme-Stadt bezeichnet. Mehr als 20 Türme und Basteien zieren die Stadtsilhouette. Die insgesamt 17 Türme und Basteien der Altstadt machen dabei die mehr als 1000jährige Stadtgeschichte erlebbar.
* {{vCard | name = Alte Wasserkunst | type = tower, museum, technical monument | wikidata = Q436381 | hours = Jan.: Sa,So 10:00-16:00, Feb,Mar,Nov,Dez: tägl. 10:00-16:00, Apr-Okt tägl. 10:00-17:00 | price = Erw. 3,50 €, Schüler, Studenten, Schwerbeschädigte 2,- €, Kinder (bis 14 J.) 1,50 € | lastedit = 2022-03-12 | description = Markanter Blickfang in der Stadtansicht. Die Alte Wasserkunst diente früher der Wasserversorgung der Stadt. An der Stelle eines hölzernen Vorbaus von 1495/96 wurde die Alte Wasserkunst in der heutigen Form im Jahre 1558 erbaut. Der steinerne, siebengeschossige, 47 m hohe Rundturm diente gleichzeitig als Teil der Stadtbefestigung. 1965 wurde die Wasserkunst stillgelegt und dient heute als technisches Museum. Das denkmalgeschützte Bauwerk kann heute besichtigt werden und bietet außer dem Maschinenhaus auch eine Aussichtsplattform, die vom Keller über 184 Stufen erreichbar ist und einen sehr guten Blick auf die Dächer von Bautzen und das Lausitzer Bergland bietet. Außerdem geben wechselnde Ausstellungen von Mai bis Oktober, über zwei Ebenen im Turminneren, interessante Einblicke in die regionale Kunstszene.
}}
* {{vCard | type = tower | name = Alter Wasserturm | address = Mönchsgasse 4 | lat = 51.181943 | long = 14.421569 | description = Wasserturm unmittelbar an der Ruine der Mönchskirche }}
* {{vCard | type = tower | name = Burgwasserturm | address = Osterweg | lat = 51.182678 | long = 14.419012 }}
* {{vCard | type = tower | name = Gerberbastei | lat = 51.183532 | long = 14.424528 | wikidata = Q1510314 | description = Sitz der Jugendherberge Bautzen. }}
* {{vCard | type = tower | name = Lauenturm | address = Innere Lauenstraße | lat = 51.180175 | long = 14.423514 | wikidata = Q1807352 | description = Turm mit charakteristischer barocker Haube. }}
* {{vCard | type = tower | name = Matthiasturm | address = Schloßgraben | lat = 51.183376 | long = 14.421027 | wikidata = Q44401596 | description = Turm der Ortenburg (siehe unten). }}
* {{vCard | type = tower | name = Mühlbastei | lat = 51.181960 | long = 14.420059 | wikidata = Q1407655 | description = }}
* {{vCard | type = tower | name = Mühltor | lat = 51.181960 | long = 14.420059 | wikidata = Q1266942 | description = }}
* {{vCard | type = tower | name = Neue Wasserkunst | lat = 51.177498 | long = 14.422692 | wikidata = Q975040 | description = Auffälliger Turm mit Kuppelhaube aus dem 17. Jahrhundert. }}
* {{vCard | type = tower | name = Nicolaiturm | address = Nicolaipforte 3 | lat = 51.183563 | long = 14.422726 | wikidata = Q1986328 | description = Turm der Stadtbefestigung bei der ehemaligen Nikolaikirche. }}
* {{vCard | type = tower | name = Rathausturm | address = Fleischmarkt 1 | lat = 51.181635 | long = 14.423737 | wikidata = Q811923 | description = Barocker Turmaufsatz eines im Kern gotischen Turms des Rathauses in Bautzen. }}
* {{vCard | type = tower | name = Reichenturm | lat = 51.181164 | long = 14.427348 | wikidata = Q1265032 | description = Schiefer Turm von Bautzen, prägt mit seinem charakteristischen Turmaufsatz die Stadtansicht. }}
* {{vCard | type = tower | name = Röhrscheidtbastei | lat = 51.180283 | long = 14.422393 | wikidata = Q1520228 | description = }}
* {{vCard | type = tower | name = Schülerturm | lat = 51.182880 | long = 14.426047 | wikidata = Q2259727 | description = }}
* {{vCard | type = tower | name = Turm der Berufsakademie | address = Löbauer Str. 1 | lat = 51.181856 | long = 14.435910 | wikidata = Q828763 | description = }}
* {{vCard | type = tower | name = Wendischer Turm | lat = 51.182018 | long = 14.427423 | wikidata = Q1382745 | description = }}
Alle Informationen zur Türme-Stadt Bautzen findet man unter: http://bautzen.info/tuerme-stadt/ .
=== Kirchen ===
* {{vCard | type = cathedral | name = Dom St. Petri | url = https://www.st-petri-bautzen.de/ | lat = 51.182394 | long = 14.423661 | wikidata = Q317346 | description = Ostdeutschlands einzige Simultankirche (sowohl römisch-katholisch als auch evangelisch-lutherisch) ist eine spätgotische Hallenkirche mit dem höchsten Turm in Bautzen, auffälligem Knick in der Längsachse und schönen Maßwerkfenstern. (Über den Eingang auf der Westseite ist eine Turmbesteigung mit Blick auf Bautzen und Umgebung möglich.)
}}
* {{vCard | name = Domstift mit Domschatzkammer | type = church | wikidata = Q70366431 | url = http://www.kirchliche-museen.org/museen/profil.php?museum=4 | phone = +49 3591 35 19 50 | fax = +49 3591 35 19 522 | email = archiv@ordinariat-bautzen.de | description =
}}
* {{vCard | name = Michaeliskirche | type = church | wikidata = Q1546343 | lastedit = 2022-12-06 | description = Spätgotische dreischiffige Hallenkirche aus dem 15. Jahrhundert.
}}
* {{vCard | name = Mönchskirche | type = church | wikidata = Q1958015 | lastedit = 2022-12-06 | description = Ehemalige gotische Franziskanerklosterkirche, als Ruine erhalten.
}}
* {{vCard | name = Nikolaikirche | type = church | wikidata = Q2316608 | lastedit = 2022-12-06 | description = Als Ruine erhaltene Kirche aus dem 15. Jahrhundert.
}}
=== Burgen, Schlösser und Paläste ===
* {{vCard | type = castle | name = Ortenburg | wikidata = Q1255971 | description = Große Burganlage, im Kern aus dem 15. Jahrhundert mit reicher Geschichte. }}
=== Bauwerke ===
[[Datei:Reichenturm 101.jpg|miniatur|hochkant=0.8|Reichenturm und -straße]]
* Alte und Neue Wasserkunst (siehe oben)
* Reichenturm (Aussichtsturm und „Schiefer Turm von Bautzen“, siehe oben)
* Kirchen (siehe oben)
* Zahlreiche barocke Bürgerhäuser, unter anderem „Handtuchhaus“
=== Denkmäler ===
* {{vCard|type=memorial |name=Rietschelgiebel-Figuren |address=im Hof der Ortenburg |phone=|email=|fax= |url=http://www.bautzen.de/tourismus.asp?mid=84&uid=235&iid=517 |hours=|price=|lat=|long=|lastedit=|description=}}
=== Museen ===
* {{vCard | name = Museum Bautzen | type = museum | wikidata = Q1471331 | url = https://www.museum-bautzen.de | address = Kornmarkt 1 | lat = 51.18033 | long = 14.42682 | phone = +49(0)3591 49850 | fax =+49 (0)3591 498540 | email = museum@bautzen.de | hours = Di-Mi,Fr-So: 10:00-18:00; Do: 10:00-20:00 | price = € 3,50/2,50 (Erw./erm.) | description =}}
* {{vCard | name = Sorbisches Museum | type = museum | wikidata = Q2303149 | url = http://www.museum.sorben.com/ | lat = 51.18341 | long = 14.41972 | description =}}
* {{vCard | name = Gedenkstätte und Museum | type = museum, memorial | wikidata = Q20828999 | url = http://www.gedenkstaette-bautzen.de/ | description =Gefängnis Bautzen II (der berüchtigte Stasi-Knast) – ist heute ein Museum.}}
=== Straßen und Plätze ===
* Hauptmarkt mit {{marker|name=Rathaus|wikidata=Q811923| show = copy}} und schönen Bürgerhäusern
* Reichenstraße zwischen Hauptmarkt und Reichenturm
=== Parks ===
=== Verschiedenes ===
== Aktivitäten ==
[[Datei:EvangelischeKirchgangstracht.JPG|miniatur|hochkant=0.8|Kirchgangstracht verheirateter (rechts) und unverheirateter (links) Sorbinnen um Bautzen]]
Bautzen und seine Umgebung sind besonders zur Osterzeit ein beliebtes Reiseziel, da hier die sorbischen und deutschen Osterbräuche, wie zum Beispiel das Osterreiten oder das „Eierschieben“ am Protschenberg noch mit sehr viel Liebe gepflegt werden.
Zu Pfingsten wird auf der Ortenburg jährlich ein Mittelalterlicher Markt mit Ritterspielen u. Ä. veranstaltet. Ebenso im Hof der Ortenburg findet alljährlich der Bautzener Theatersommer statt. Es werden vornehmlich unterhaltsame Theaterstücke unter freiem Himmel aufgeführt.
Natürlich kann man auch den Rest des Jahres viel unternehmen. Vor allem für Naturliebhaber gibt es einiges zu entdecken. Zu erwähnen wäre der Bautzener Stausee, wo man im Sommer baden, Windsurfen usw. kann. Es gibt auch sehr viele schöne Radwege (etwa um den Stausee oder an der Spree entlang).
* {{vCard | name = Geo Trail - Kletterpark und Hochseilgarten | type = sports | url = https://www.geo-trail.eu | address = Strandpromenade 8 02625 Bautzen | directions = am Stausee Bautzen | lat = 51.20609799212287 | long = 14.466770627182147 | phone = +49 179 6742574 | email = info@geo-trail.eu | description =
}}
* {{vCard | name = Minigolf | type = minigolf | address = Strandpromenade 10 02625 Bautzen | directions = am Stausee Bautzen | lat = 51.20691402750633 | long = 14.46626783667978 | phone = +49 162 9079949 | email = monstergolf-bautzen@gmx.de | description =
}}
== Einkaufen ==
* {{vCard|type=shop|name=Bautz´ner Senfladen, Manufaktur & Museum |address=Fleischmarkt 5, 02625 Bautzen |phone= +49(0)3591 597118|email=|fax=|url=http://www.bautzener-senfladen.de/|hours=täglich von 10.00 - 19.00 , Januar bis März bis 17.00 Uhr|price=|lat=51.18183 | long=14.42330| lastedit = 2016-10-19 |description=Die Geschichte des Bautz´ner Senf wird in mehreren Vitrinen gezeigt und es gibt eine Senfmühle aus dem letzten Jahrhundert. Senf probieren und kaufen kann man auch.}}
* {{vCard|type=mall |name=Kornmarkt-Center |address=Kornmarkt 7, 02625 Bautzen |phone=|email=|fax=|url=https://www.kornmarkt-center.de/ |hours=Mo – Fr 9.30 – 20.00 Uhr, Sa 9.30 – 18.00 Uhr |price=|lat=51.17999 |long=14.42545 |lastedit=|description=}}
== Küche ==
=== Günstig ===
* {{vCard|type=restaurant |name=Gaststätte Zur Apotheke |address=Schloßstraße 21, 02625 Bautzen |phone=+49 03591 480035 |email=zur.apotheke@t-online.de |fax=|url=http://www.zur-apotheke-bautzen.de/ |hours=Mai – Okt: Mo ist Ruhetag, Di – So 11.30 – 14.00 Uhr + 17.30 – 23.00 Uhr; Nov – Mai: Mo + Di sind Ruhetage, Mi – Fr 17.30 – 23.00 Uhr, Sa + So 11.30 – 14.00 Uhr + 17.30 – 23.00 Uhr |price=|lat=51.18323 |long=14.42125 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Restaurant da Roberto |address=Kurt-Pchalek-Straße 18, 02625 Bautzen |phone=+49 03591 5640604 |email=|fax= |url=https://da-roberto-bautzen.xregional.de/ |hours=Do – Di 17.00 – 22.00 Uhr, Mi geschlossen |price=|lat=51.17879 |long=14.42978 |lastedit= |description=Italienisches Restaurant.}}
=== Mittel ===
* {{vCard|type=restaurant |name=Mönchshof zu Bautzen |address=Burglehn 1, 02625 Bautzen |phone= +49(0)3591 490141 |email=info@moenchshof.de |fax=+49(0)3591 40342 |url=http://www.moenchshof.de/de/start.php |hours= täglich ab 11.00 Uhr |price=|lat=51.18163 |long=14.42113 |lastedit=|description=Deftige Gerichte im Mittelalterlichen Rahmen.}}
* {{vCard|type=restaurant |name=Gaststätte Zum Karasek |address=Hintere Reichenstraße 2, 02625 Bautzen |phone=+49 03591 45066 |email= |fax=+49 03591 302843 |url=https://www.zum-karasek.de/restaurant-in-bautzen |hours=Di – Sa 11.00 – 23.00 Uhr, So 11.30 – 21.30 Uhr, Mo geschlossen |price= |lat=51.18156 |long=14.42491 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Restaurant Burghof |address=|phone=+49 03591 531336 |email=info@burghof-ortenburg.de |fax=+49 3591 531815 |url=https://burghof-bautzen.de/ |hours=Mo – Fr 11.00 – 14.00 Uhr + 17.00 – 21.00 Uhr, Sa 11.30 – 22.00 Uhr, So 11.00 – 14.00 Uhr |price=|lat=51.18310 |long=14.41907 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Zum Zollhaus |address=Äußere Lauenstraße 62, 02625 Bautzen |phone=+49 03591 460237 |email=service@zollhaus-bautzen.de |fax=|url=https://zum-zollhaus-bautzen.de/ |hours=|price=|lat=51.17724 |long=14.42306 |lastedit=|description=Übernachtungsmöglichkeiten vorhanden, da gleichzeitig eine Pension.}}
* {{vCard|type=restaurant |name=Mythos |address=Hauensteingasse 1, 02625 Bautzen |phone=+49 03591 270757 |email=info@mythos-bautzen.de |fax=|url=https://www.mythos-bautzen.de/index.html |hours=Mo, Mi, Do 17.00 – 23.00 Uhr, Fr – So 11.30 – 14.30 Uhr + 17.30 – 23.30 Uhr, Di geschlossen |price=|lat=51.18178 |long=14.42624 |lastedit=|description=Griechisches Restaurant.}}
* {{vCard|type=restaurant |name=Winter's Steakhouse |address=Dresdener Str. 50, 02625 Bautzen |phone=+49 03591 464057 |email=|fax= |url=http://www.winterssteakhouse.de/media/files/Speisekarte.pdf |hours=Fr – Mi 11.30 – 14.00 Uhr + 17.00 – 22.00 Uhr, Do geschlossen |price=|lat=51.17963 |long=14.40859 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Zum Haseneck |address=Kurt-Pchalek-Straße 1, 02625 Bautzen |phone=+49 03591 47913 |email=zum-haseneck@gmx.de |fax=+49 03591 47913 |url=https://www.zum-haseneck.de/spezialitaetenrestaurant-bautzen |hours=Mo, Mi – Sa 11.00 – 22.00 Uhr, So 11.00 – 14:00 Uhr, Di ist Ruhetag |price=|lat=|long=|lastedit=|description=}}
* {{vCard | name = Ocean Beach Bar | type = restaurant | url = https://www.beachbar-bautzen.de | address = Strandpromenade 5 02625 Bautzen | lat = 51.20616023030272 | long = 14.465022713859508 | phone = +49 0152 31715367 | email = beachbar-bautzen@gmx.de | description =
}}
=== Gehoben ===
* {{vCard|type=restaurant |name=Gaststätte Zum Karasek |address=Hintere Reichenstraße 2, 02625 Bautzen |phone=+49 03591 45066 |email= |fax=+49 03591 302843 |url=https://www.zum-karasek.de/restaurant-in-bautzen |hours=Di – Sa 11.00 – 23.00 Uhr, So 11.30 – 21.30 Uhr, Mo geschlossen |price= |lat=51.18156 |long=14.42491 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Restaurant Culinarium |address=Große Brüdergasse 10, 02625 Bautzen |phone=+49 03591 2704949 |email=info@culinarium-bautzen.de |fax=+49 03591 2704950 |url=https://culinarium-bautzen.de/ |hours=Di – Fr 11.30 – 14.00 Uhr + 17.00 – 22.00 Uhr, Sa 17.00 – 23.00 Uhr, So + Mo sind Ruhetage |price=|lat=51.18229 |long=14.42222 |lastedit=|description=}}
== Nachtleben ==
=== Theater ===
* {{vCard|type=theater |name=Deutsch-Sorbisches Volkstheater |address=Seminarstraße 12, 02625 Bautzen |phone=+49 03591 5840 |email=|fax= |url=https://www.theater-bautzen.de/ |hours=|price=|lat=51.17766 |long=14.42483 |lastedit= |description=}}
* {{vCard|type=theater |name=Burgtheater |address=Ortenburg 7, 02625 Bautzen |phone=+49 03591 584274 |email=|fax=|url=|hours=|price= |lat=51.18312 |long=14.42021 |lastedit=|description=}}
=== Kneipen & Sonstiges ===
* Altstadt:
** {{vCard|type=bar |name=Sam's Bar |address=Fleischmarkt 4, 02625 Bautzen |phone=+49 03591 3818435 |email=sams.bar@hotmail.de |fax= |url=https://www.sams-bar.de/ |hours=Mi – Mo 19.00 – 2.00 Uhr, Di geschlossen |price=|lat=51.18193 |long=14.42437 |lastedit=|description=}}
** La Bodega
** Schloss Schänke
** {{vCard|type=bar |name=Bar-Caracas |address=Schloßstraße 7, 02625 Bautzen |phone=+49 03591 530050 |email=|fax=|url=|hours=Di – Do 19.00 – 0.00 Uhr, Fr + Sa 19.00 – 2.00 Uhr, So + Mo geschlossen |price=|lat=51.18295 |long=14.42203 |lastedit=|description=}}
** Alte Räucherei
** Bierakademie
* Weiteres Stadtgebiet:
** {{vCard|type=brewery |name=Bautzener Brauhaus |address=Thomas-Mann-Straße 7, 02625 Bautzen |phone=+49 03591 491456 |email=|fax= |url=https://www.bautzener.de/brauhaus |hours=Di – Fr 17.00 – 22.00 Uhr, Sa + So 14.00 – 22.00 Uhr, Mo geschlossen |price=|lat=51.17975 |long=14.43975 |lastedit=|description=}}
'''Für die Jugend''':
* {{vCard|type=youth center |name=Steinhaus Bautzen |address=Steinstraße 37, 02625 Bautzen |phone=+49 03591 5319966 |email=steinhaus@steinhaus-bautzen.de |fax=+49 03591 5319967 |url=http://www.steinhaus-bautzen.de/start/ |hours=Mo – Fr 9.00 – 18.00 Uhr |price= |lat=51.18157 |long=14.43177 |lastedit=|description=}}
== Unterkunft ==
=== Günstig ===
* {{vCard | name = DJH-Jugendherberge Bautzen "Gerberbastei" | type = youth hostel | url = https://www.jugendherberge-sachsen.de/jugendherbergen/bautzen-gerberbastei-45/portraet/ | address = Am Zwinger 1, 02625 Bautzen | lat = 51.18348840514818 | long = 14.424639635510928 | phone = +49 (0)3591 40347 | fax = +49 (0)3591 40348 | email = bautzen@jugendherberge.de | hours = ganzjährig (außer an Weihnachten) | checkin = 17:00-20:00 | checkout = bis 10:00 | price = ab 25,- €/ÜF (nur für DJH-Mitglieder) | subtype = wheelchair, wlan | lastedit = 2021-04-09 | description = Jugendherberge mit 115 Betten im historischen Zentrum von Bautzen in einem Wehrturm sowie in zwei Bürgerhäusern. Sie ist Teil der mittelalterlichen Stadtbefestigung.}}
* {{vCard|type = hotel | name=Hotel „Alte Gerberei“| address=Uferweg 1| directions=weitere Innenstadt |lat=51.18028 |long=14.41999 | phone=+49 (0)3591 272390| fax=+49 (0)3591 2723921| email=info@hotel-alte-gerberei.de| url=https://www.hotel-alte-gerberei.de/| price=EZ ab 54 €, DZ ab 74 €}}
* {{vCard| type = boarding house | name=Pension Stadtwall Bautzen| address=Flinzstr. 4A| directions=weitere Innenstadt |lat=51.18409 |long=14.43442 | phone=+49 (0)3591 44848| fax=+49 (0)3591 460090| email=info@pension-stadtwall.de| url=https://www.pension-stadtwall.de/| price=EZ ab 31 €, DZ ab 43 €}}
* {{vCard| type = boarding house | name=Spreepension Bautzen| address=Fischergasse 6| directions=weitere Innenstadt |lat=51.17921 |long=14.42132 | phone=+49 (0)3591 48960| fax=+49 03591 489644| email=Frenzel.pension@t-online.de| url=https://www.spree-pension.de/| price=EZ ab 36 €, DZ ab 58 €}}
* {{vCard | name = Haus Buchheim | alt = Pension „Am Schloss“ | type = boarding house, hotel garni | url = http://www.pension-am-schloss-bautzen.de/ | address = Schlossstr. 11, 02625 Bautzen | directions = innerer Altstadtkern | lat = 51.18309 | long = 14.42172 | phone = +49 (0)3591 4640499 | fax = +49 (0)3591 4640505 | email = info@pension-am-schloss-bautzen.de | price = EZ ab 55,- €/ÜF, DZ ab 74,- €/ÜF | subtype = 3, free parking | lastedit = 2021-04-09 | description = Pension im Zeitraum von 1664 bis 1709 erbauten Geburtshaus von Prof. Rudolf Buchheim (1820-1879), einem berühmten Sohn der Stadt Bautzen. }}
* {{vCard| type = boarding house | name=Pension „Stephan“| address=Schlossstr. 1| directions=innerer Altstadtkern| phone=+49 (0)3591 47590| fax=+49 (0)3591 47591| email=Pension.Stephan@t-online.de | url=http://www.pensionstephan-bautzen.de/| price=p.P. inkl. Frühstück: EZ 45 €, DZ 35 €}}
=== Mittel ===
* {{vCard| type = boarding house | name=Pension „Dom-Eck“| address=Breitengasse 2| directions=innerer Altstadtkern |lat=51.18279 |long=14.42461 | phone=+49 (0)3591 501330| fax=+49 (0)3591 501334| email=info@wjelbik.de| url=https://www.wjelbik.de/| price=EZ 52-57 €, DZ 62-72 €}}
* {{vCard| type = boarding house | name=Pension „Schloss-Schänke“| address=Burgplatz 5, 02625 Bautzen | directions=innerer Altstadtkern |lat=51.18261 |long=14.42101 | phone=+49 (0)3591 304990| fax=+49 (0)3591 490198| email=info@schloss-schaenke.net| url=https://www.schloss-schaenke.net/| price=EZ ab 55 €, DZ ab 69 €}}
* {{vCard | name = Best Western Plus Hotel Bautzen | type = hotel, bar, restaurant | url = https://www.bwbautzen.de/ | address = Wendischer Graben 20, 02625 Bautzen | directions = in der weiteren Innenstadt | lat = 51.18137 | long = 14.42837 | phone = +49 (0)3591 492-0 | fax = +49 (0)3591 492100 | email = info@hotel-bautzen.bestwestern.de | subtype = 4, free wlan, parking, bicycle stand, conference, spa | lastedit = 2021-04-09 | description = Hotel mit 157 Zimmern auf 6 Etagen. }}
* {{vCard|type=hotel |name=Hotel Villa Antonia |address=Lessingstrasse 1, 02625 Bautzen |phone=+49 03591 460888 |email=info@hotel-villa-antonia.de |fax=|url=https://www.hotel-villa-antonia.de/de/start.php |hours=|price=DZ ab 71 € |lat=51.17830 |long=14.43440 |lastedit=|description=Zum Hotel gehört das Restaurant Tiroler Stuben.}}
=== Gehoben ===
* {{vCard | name = Hotel „Goldener Adler“ | type = hotel garni | url = https://goldeneradlerbautzen.de/startseite | address = Hauptmarkt 4, 02625 Bautzen | directions = innerer Altstadtkern | lat = 51.18153 | long = 14.42342 | phone = +49 (0)3591 48660 | fax =+49 (0)3591 486620 | email = kontakt@goldeneradler.de | price = DZ ab 89,- €/Ü | subtype = 4, free wlan | lastedit = 2021-04-09 | description = Tradition seit 1540.
}}
=== Campingplatz & Caravanstellplatz ===
* {{vCard|name=Natur- und Abenteuercamping am Stausee Bautzen|type=caravan site|url=https://www.camping-bautzen.de|address=Nimschützer Straße 41, 02625 Bautzen - Burk|lat=51.20250573158631|long=14.460056611805268|phone=+49 03591 271267|email=camping-bautzen@web.de|description=}}
* {{vCard | name = Wohnmobilstellplatz Bautzen | alt = Parkplatz Schliebenstraße | type = caravan site | url = http://www.bautzen.de | address = Schliebenstraße 24, 02625 Bautzen | lat = 51.181939247125364 | long = 14.414905252261146 | description = 4 Wohnmobilstellplätze.
}}
== Lernen ==
In Bautzen befindet sich neben sechs Grundschulen, vier Mittelschulen, fünf Gymnasien und drei Förderschulen auch die ''Duale Hochschule Sachsen – Staatliche Studienakademie Bautzen''.
<!--== Arbeiten ==-->
== Sicherheit ==
* {{vCard|type=police |name=Polizeirevier |address=Taucherstraße 38, 02625 Bautzen |phone=+49 03591 3560 |email=|fax=|url=|hours=|price= |lat=51.17433 |long=14.43027 |lastedit=|description=}}
== Gesundheit ==
=== Krankenhaus ===
* {{vCard|type=hospital |name=Oberlausitz-Kliniken GmbH |address=Am Stadtwall 3, 02625 Bautzen |phone=+49 03591 3630 |email=|fax=+49 03591 3632455 |url=https://www.oberlausitz-kliniken.de/ |hours=|price=|lat=51.18463 |long=14.43206 |lastedit=|description=}}
=== Apotheken ===
* {{vCard|type=pharmacy |name=Ahorn-Apotheke |address=Muskauer Str. 20 c, 02625 Bautzen |phone=+4 903591 6770017 |email=mitarbeiter@ahornapothekebautzen.de |fax=+49 03591 6788733 |url=https://www.ahornapothekebautzen.de/ |hours=Mo – Fr 8.00 – 18.30 Uhr, Sa 8.00 – 13.00 Uhr |price=|lat=51.18547 |long=14.44238 |lastedit=|description=}}
* {{vCard|type=pharmacy |name=Gesundbrunnen-Apotheke |address=Gesundbrunnenring 62, 02625 Bautzen |phone=+49 03591 23027 |email=info@gesundbrunnen-apotheke.de |fax=+49 03591 672624 |url=https://www.gesundbrunnen-apotheke.de/ |hours=Mo – Sa 8.00 – 20.00 Uhr |price=|lat=51.19207 |long=14.44532 |lastedit=|description=}}
* {{vCard|type=pharmacy |name=Lessing-Apotheke |address=Taucherstraße 24, 02625 Bautzen |phone=+49 03591 47060 |email=info@lessingapotheke-bautzen.de |fax=+49 03591 460626 |url=https://www.lessingapotheke-bautzen.de/ |hours=Mo – Fr 7.30 – 18.00 Uhr, Sa 9.00 – 12.00 Uhr |price=|lat=51.17776 |long=14.43467 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard | type=tourist information | name=Tourist-Information Bautzen-Budyšin | address=Hauptmarkt 1, 02625 Bautzen | phone=+49 (0)3591 42016 | email=touristinfo@bautzen.de | fax=+49(0)3591 327629 | url=https://www.bautzen.de/tourismus-kultur-freizeit/tourist-information/ | hours=Apr-Okt: Mo-Fr 9:00-18:00, Sa+So+Feiertag 9:00-15:00, Nov-Mar: 10:00-17:00, Sa+Advents-Sonntage 10:00-14:00 | lat= 51.18168 | long=14.42419 | lastedit=2021-04-09
}}
== Ausflüge ==
'''Interessante Orte:'''
* '''[[Kleinwelka]]''' (5 km nordwestlich, B 96) – Saurierpark, Irrgarten, Miniaturenpark.
* '''[[Neschwitz]]''' (14 km nordwestlich, B 96 über Kleinwelka) – Schloss und Park.
* '''[[Bischofswerda]]''' (20 km westlich, B 6) – Stadt an der Wesenitz; „Schiebocker Tage“.
* '''[[Löbau]]''' (20 km südöstlich, B 6) – König-Friedrich-August-Turm.
'''Weitere Ziele:'''
* Der [[Muskauer Heide#Weitere Ziele|Findlingspark Nochten]] wurde am ehemaligen Tagebau Nochten errichtet. Der Park bietet auf 17 Hektar blühende Heidemore und -dünen mit ca. 3000 Findlingen.
== Literatur ==
* Joachim Meffert: ''Die Ortenburg in Bautzen – Der archäologische Forschungsstand und die Ausgrabungen von 1999–2001. Arbeits- und Forschungsberichte zur sächsischen Bodendenkmalpflege 44, 2002, 75–177''.
* Karin Sczech: ''Archäologische Untersuchungen zu Bautzen in der Oberlausitz in slawischer Zeit. Archäologische Forschungen am GWZO. Berichte und Beiträge des Geisteswissenschaftlichen Zentrums Geschichte und Kultur Ostmitteleuropas e. V. 2003, 49–64.''
* Grit Richter-Laugwitz: ''Der 17. Juni 1953 in Bautzen'', hrsg. vom Stadtarchiv Bautzen, Bautzen 2004, {{ISBN|3-936758-04-2}}
* Andreas Bensch: ''Chronologie der Stadt Bautzen 1002–2001'', Bautzen 2001, {{ISBN|3-930625-31-8}}
* Christine Seele und Jürgen Matschie: ''Bautzen und seine Kirchen. Ein kleiner ökumenischer Kirchenführer'', Leipzig 1996, {{ISBN|3-7462-1118-2}}
* ''Deutscher Städteatlas''; Band: IV; 3 Teilband. Acta Collegii Historiae Urbanae Societatis Historicorum Internationalis – Serie C. Im Auftrag des Kuratoriums für vergleichende Städtegeschichte e. V. und mit Unterstützung der Deutschen Forschungsgemeinschaft, hrsg. von Heinz Stoob †, Wilfried Ehbrecht, Jürgen Lafrenz und Peter Johannek. Stadtmappe Bautzen, Autor: Karlheinz Blaschke, {{ISBN|3-89115-033-4}}; Dortmund-Altenbeken 1989.
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 51.18139| long= 14.42389| radius= 2000}}
{{IstInKat|Zentrale Oberlausitz}}
{{class-3}}
t098pk9cbat3067xmj7g2jbn7rubdjx
1768996
1768995
2026-04-16T13:02:05Z
~2026-23491-94
58163
/* Museen */
1768996
wikitext
text/x-wiki
{{Quickbar Ort
| Bild= [[Datei:City Bautzen Germany 104.JPG|300px|Blick auf die Altstadt von der Friedensbrücke aus. Im Vordergrund das sogenannte Hexenhäuschen (vor 1604). In der Mitte die Mönchsbastei (1324) an der Mühltorgasse. Im Hintergrund der Wasserturm (1877) in der Mönchskirchenruine, der Dom St. Petri (1213/1221) und der Rathausturm (1213/1705).]]
| TouriInfoWeb=http://www.bautzen.de/tourismus.asp
| TouriInfoTel=+49 3591 42016
}}{{ZdM|Datum=2022-03|Art=Abseits}}
'''Bautzen''' (sorbisch '''Budyšin''') ist eine über tausendjährige Stadt in der [[Oberlausitz]] und gilt als die Hauptstadt der Sorben. Sie besitzt eine sehr gut erhaltene bzw. restaurierte Altstadt inkl. Kneipenszene. Daneben ist Bautzen überregional für seinen Senf sowie als Standort des "Stasi-Knasts" Bautzen II bekannt.
== Hintergrund ==
Bautzen, ursprünglich eine slawische Niederlassung ''Budissin'', erscheint schon um 1004, wo es vom König Heinrich II. erobert wurde, als befestigte Stadt. Zur Hebung derselben trug der Ruf einer Reliquie bei, eines Arms von St. Petrus. Hier wurde 1018 der Friede zwischen dem Polenherzog Boleslaw und Kaiser Heinrich II. und 1350 der Vertrag zwischen Karl IV. und Ludwig von Brandenburg geschlossen, wodurch Ludwig seinen Ansprüchen auf die Niederlausitz entsagte, aber Brandenburg verbürgt erhielt. Im Hussitenkrieg litt Bautzen viel, schlug aber 1431 einen Sturm ab. Im Dreißigjährigen Krieg nahm es Kurfürst Georg 1620 nach vierwöchiger Belagerung ein; 1633 wurde es von Wallenstein erobert, und am 4. Mai 1634 brannte es der vom Kurfürsten von Sachsen belagerte kaiserliche Oberst v. Goltz nieder, bevor er sich ergab. Im Jahre 1813 wurde Bautzen berühmt durch die Schlacht vom 20. und 21. Mai, in der die Armeen Napoléons gegen die Verbündeten Russland und Preußen kämpften.
== Anreise ==
{{quickbar table begin|width: 200px;}}
{{quickbar header|Entfernungen}}
{{quickbar item|heading=[[Cottbus]]|value=80 km}}
{{quickbar item|heading=[[Liberec]]|value=72 km}}
{{quickbar item|heading=[[Dresden]]|value=63 km}}
{{quickbar item|heading=[[Görlitz]]|value=48 km}}
{{quickbar item|heading=[[Zittau]]|value=46 km}}
{{quickbar item|heading=[[Hoyerswerda]]|value=36 km}}
{{quickbar table end}}
=== Mit dem Flugzeug ===
Der nächste Verkehrsflughafen ist der {{Marker |type=airport |name=Flughafen Dresden-Klotzsche |wikidata=Q657005 |show=none}}. Nach der Ankunft fährt man entweder mit dem Auto ca. 50 km über die A 4 Richtung Görlitz oder mit der S-Bahn oder dem Bus 80 zum Bahnhof Dresden-Klotzsche und dort mit dem Zug (RE 1 oder RB 60) nach Bautzen.
Der ehemalige Militärflughafen Litten in unmittelbarer Nähe der Stadt Bautzen wird von Sportflugzeugen und für Veranstaltungen wie das „VW-Pfingsttreffen“ oder die „Flugtage Bautzen“ („Flugtage Litten“) genutzt.
=== Mit der Bahn ===
Mit dem Regionalexpress von Dresden Hauptbahnhof oder Görlitz bis Bahnhof Bautzen. Der {{Marker|type=train|name=Bahnhof|wikidata=Q320740}} liegt anderthalb Kilometer südlich des Zentrums; entsprechend ist es dann zu Fuß 10 bis 15 Minuten in die Altstadt.
=== Mit dem Bus ===
Aufgrund seiner Lage an der Ost-West-Magistrale A 4 ist Bautzen Haltepunkt zahlreicher Buslinien aus verschiedenen Teilen Deutschlands auf dem Weg Richtung Tschechien. Es gibt mehrere Fernbushalte. Dies ist zum Einen ein {{Marker|type=bus|name=Halt|lat=51.1740 | long=14.4285}} am Bahnhof, zum Anderen ein Halt an der Ausfallstrasse Richtung Autobahn ({{Marker|type=bus|name=Flixbushalt|lat=51.1817 | long=14.4150}})
=== Auf der Straße ===
Bautzen liegt an der Bundesautobahn {{RSIGN|DE|A|4|Bundesautobahn 4|40}} und damit an einer großen Ost-West-Achse. Die Stadt ist dadurch u.a. von Dresden her aus dem Westen und von Görlitz aus dem Osten schnell und bequem zu erreichen. Von Norden reist man am besten über die Bundesstraßen {{RSIGN|DE|B|96}} oder {{RSIGN|DE|B|156}} an.
== Mobilität ==
{{Mapframe|51.1816|14.4238|zoom=15}}
Die Sehenswürdigkeiten der Altstadt von Bautzen liegen dicht beieinander und sind leicht zu Fuß zu erreichen. Bautzen verfügt mittlerweile auch über ein gut ausgebautes Netz von Radwegen. Es gibt zudem mehrere Stadtbus-Linien.
== Sehenswürdigkeiten ==
=== Türme und Basteien ===
Bautzen wird mit Recht auch als Türme-Stadt bezeichnet. Mehr als 20 Türme und Basteien zieren die Stadtsilhouette. Die insgesamt 17 Türme und Basteien der Altstadt machen dabei die mehr als 1000jährige Stadtgeschichte erlebbar.
* {{vCard | name = Alte Wasserkunst | type = tower, museum, technical monument | wikidata = Q436381 | hours = Jan.: Sa,So 10:00-16:00, Feb,Mar,Nov,Dez: tägl. 10:00-16:00, Apr-Okt tägl. 10:00-17:00 | price = Erw. 3,50 €, Schüler, Studenten, Schwerbeschädigte 2,- €, Kinder (bis 14 J.) 1,50 € | lastedit = 2022-03-12 | description = Markanter Blickfang in der Stadtansicht. Die Alte Wasserkunst diente früher der Wasserversorgung der Stadt. An der Stelle eines hölzernen Vorbaus von 1495/96 wurde die Alte Wasserkunst in der heutigen Form im Jahre 1558 erbaut. Der steinerne, siebengeschossige, 47 m hohe Rundturm diente gleichzeitig als Teil der Stadtbefestigung. 1965 wurde die Wasserkunst stillgelegt und dient heute als technisches Museum. Das denkmalgeschützte Bauwerk kann heute besichtigt werden und bietet außer dem Maschinenhaus auch eine Aussichtsplattform, die vom Keller über 184 Stufen erreichbar ist und einen sehr guten Blick auf die Dächer von Bautzen und das Lausitzer Bergland bietet. Außerdem geben wechselnde Ausstellungen von Mai bis Oktober, über zwei Ebenen im Turminneren, interessante Einblicke in die regionale Kunstszene.
}}
* {{vCard | type = tower | name = Alter Wasserturm | address = Mönchsgasse 4 | lat = 51.181943 | long = 14.421569 | description = Wasserturm unmittelbar an der Ruine der Mönchskirche }}
* {{vCard | type = tower | name = Burgwasserturm | address = Osterweg | lat = 51.182678 | long = 14.419012 }}
* {{vCard | type = tower | name = Gerberbastei | lat = 51.183532 | long = 14.424528 | wikidata = Q1510314 | description = Sitz der Jugendherberge Bautzen. }}
* {{vCard | type = tower | name = Lauenturm | address = Innere Lauenstraße | lat = 51.180175 | long = 14.423514 | wikidata = Q1807352 | description = Turm mit charakteristischer barocker Haube. }}
* {{vCard | type = tower | name = Matthiasturm | address = Schloßgraben | lat = 51.183376 | long = 14.421027 | wikidata = Q44401596 | description = Turm der Ortenburg (siehe unten). }}
* {{vCard | type = tower | name = Mühlbastei | lat = 51.181960 | long = 14.420059 | wikidata = Q1407655 | description = }}
* {{vCard | type = tower | name = Mühltor | lat = 51.181960 | long = 14.420059 | wikidata = Q1266942 | description = }}
* {{vCard | type = tower | name = Neue Wasserkunst | lat = 51.177498 | long = 14.422692 | wikidata = Q975040 | description = Auffälliger Turm mit Kuppelhaube aus dem 17. Jahrhundert. }}
* {{vCard | type = tower | name = Nicolaiturm | address = Nicolaipforte 3 | lat = 51.183563 | long = 14.422726 | wikidata = Q1986328 | description = Turm der Stadtbefestigung bei der ehemaligen Nikolaikirche. }}
* {{vCard | type = tower | name = Rathausturm | address = Fleischmarkt 1 | lat = 51.181635 | long = 14.423737 | wikidata = Q811923 | description = Barocker Turmaufsatz eines im Kern gotischen Turms des Rathauses in Bautzen. }}
* {{vCard | type = tower | name = Reichenturm | lat = 51.181164 | long = 14.427348 | wikidata = Q1265032 | description = Schiefer Turm von Bautzen, prägt mit seinem charakteristischen Turmaufsatz die Stadtansicht. }}
* {{vCard | type = tower | name = Röhrscheidtbastei | lat = 51.180283 | long = 14.422393 | wikidata = Q1520228 | description = }}
* {{vCard | type = tower | name = Schülerturm | lat = 51.182880 | long = 14.426047 | wikidata = Q2259727 | description = }}
* {{vCard | type = tower | name = Turm der Berufsakademie | address = Löbauer Str. 1 | lat = 51.181856 | long = 14.435910 | wikidata = Q828763 | description = }}
* {{vCard | type = tower | name = Wendischer Turm | lat = 51.182018 | long = 14.427423 | wikidata = Q1382745 | description = }}
Alle Informationen zur Türme-Stadt Bautzen findet man unter: http://bautzen.info/tuerme-stadt/ .
=== Kirchen ===
* {{vCard | type = cathedral | name = Dom St. Petri | url = https://www.st-petri-bautzen.de/ | lat = 51.182394 | long = 14.423661 | wikidata = Q317346 | description = Ostdeutschlands einzige Simultankirche (sowohl römisch-katholisch als auch evangelisch-lutherisch) ist eine spätgotische Hallenkirche mit dem höchsten Turm in Bautzen, auffälligem Knick in der Längsachse und schönen Maßwerkfenstern. (Über den Eingang auf der Westseite ist eine Turmbesteigung mit Blick auf Bautzen und Umgebung möglich.)
}}
* {{vCard | name = Domstift mit Domschatzkammer | type = church | wikidata = Q70366431 | url = http://www.kirchliche-museen.org/museen/profil.php?museum=4 | phone = +49 3591 35 19 50 | fax = +49 3591 35 19 522 | email = archiv@ordinariat-bautzen.de | description =
}}
* {{vCard | name = Michaeliskirche | type = church | wikidata = Q1546343 | lastedit = 2022-12-06 | description = Spätgotische dreischiffige Hallenkirche aus dem 15. Jahrhundert.
}}
* {{vCard | name = Mönchskirche | type = church | wikidata = Q1958015 | lastedit = 2022-12-06 | description = Ehemalige gotische Franziskanerklosterkirche, als Ruine erhalten.
}}
* {{vCard | name = Nikolaikirche | type = church | wikidata = Q2316608 | lastedit = 2022-12-06 | description = Als Ruine erhaltene Kirche aus dem 15. Jahrhundert.
}}
=== Burgen, Schlösser und Paläste ===
* {{vCard | type = castle | name = Ortenburg | wikidata = Q1255971 | description = Große Burganlage, im Kern aus dem 15. Jahrhundert mit reicher Geschichte. }}
=== Bauwerke ===
[[Datei:Reichenturm 101.jpg|miniatur|hochkant=0.8|Reichenturm und -straße]]
* Alte und Neue Wasserkunst (siehe oben)
* Reichenturm (Aussichtsturm und „Schiefer Turm von Bautzen“, siehe oben)
* Kirchen (siehe oben)
* Zahlreiche barocke Bürgerhäuser, unter anderem „Handtuchhaus“
=== Denkmäler ===
* {{vCard|type=memorial |name=Rietschelgiebel-Figuren |address=im Hof der Ortenburg |phone=|email=|fax= |url=http://www.bautzen.de/tourismus.asp?mid=84&uid=235&iid=517 |hours=|price=|lat=|long=|lastedit=|description=}}
=== Museen ===
* {{vCard | name = Museum Bautzen | type = museum | wikidata = Q1471331 | url = https://www.museum-bautzen.de | address = Kornmarkt 1 | lat = 51.18033 | long = 14.42682 | phone = +49(0)3591 49850 | fax =+49 (0)3591 498540 | email = museum@bautzen.de | hours = Di-Mi,Fr-So: 10:00-18:00; Do: 10:00-20:00 | price = € 3,50/2,50 (Erw./erm.) | description =}}
* {{vCard|name=Sorbisches Museum|type=museum|wikidata=Q2303149|url=https://sorbisches-museum.de/|lat=51.18341|long=14.41972|description=}}
* {{vCard | name = Gedenkstätte und Museum | type = museum, memorial | wikidata = Q20828999 | url = http://www.gedenkstaette-bautzen.de/ | description =Gefängnis Bautzen II (der berüchtigte Stasi-Knast) – ist heute ein Museum.}}
=== Straßen und Plätze ===
* Hauptmarkt mit {{marker|name=Rathaus|wikidata=Q811923| show = copy}} und schönen Bürgerhäusern
* Reichenstraße zwischen Hauptmarkt und Reichenturm
=== Parks ===
=== Verschiedenes ===
== Aktivitäten ==
[[Datei:EvangelischeKirchgangstracht.JPG|miniatur|hochkant=0.8|Kirchgangstracht verheirateter (rechts) und unverheirateter (links) Sorbinnen um Bautzen]]
Bautzen und seine Umgebung sind besonders zur Osterzeit ein beliebtes Reiseziel, da hier die sorbischen und deutschen Osterbräuche, wie zum Beispiel das Osterreiten oder das „Eierschieben“ am Protschenberg noch mit sehr viel Liebe gepflegt werden.
Zu Pfingsten wird auf der Ortenburg jährlich ein Mittelalterlicher Markt mit Ritterspielen u. Ä. veranstaltet. Ebenso im Hof der Ortenburg findet alljährlich der Bautzener Theatersommer statt. Es werden vornehmlich unterhaltsame Theaterstücke unter freiem Himmel aufgeführt.
Natürlich kann man auch den Rest des Jahres viel unternehmen. Vor allem für Naturliebhaber gibt es einiges zu entdecken. Zu erwähnen wäre der Bautzener Stausee, wo man im Sommer baden, Windsurfen usw. kann. Es gibt auch sehr viele schöne Radwege (etwa um den Stausee oder an der Spree entlang).
* {{vCard | name = Geo Trail - Kletterpark und Hochseilgarten | type = sports | url = https://www.geo-trail.eu | address = Strandpromenade 8 02625 Bautzen | directions = am Stausee Bautzen | lat = 51.20609799212287 | long = 14.466770627182147 | phone = +49 179 6742574 | email = info@geo-trail.eu | description =
}}
* {{vCard | name = Minigolf | type = minigolf | address = Strandpromenade 10 02625 Bautzen | directions = am Stausee Bautzen | lat = 51.20691402750633 | long = 14.46626783667978 | phone = +49 162 9079949 | email = monstergolf-bautzen@gmx.de | description =
}}
== Einkaufen ==
* {{vCard|type=shop|name=Bautz´ner Senfladen, Manufaktur & Museum |address=Fleischmarkt 5, 02625 Bautzen |phone= +49(0)3591 597118|email=|fax=|url=http://www.bautzener-senfladen.de/|hours=täglich von 10.00 - 19.00 , Januar bis März bis 17.00 Uhr|price=|lat=51.18183 | long=14.42330| lastedit = 2016-10-19 |description=Die Geschichte des Bautz´ner Senf wird in mehreren Vitrinen gezeigt und es gibt eine Senfmühle aus dem letzten Jahrhundert. Senf probieren und kaufen kann man auch.}}
* {{vCard|type=mall |name=Kornmarkt-Center |address=Kornmarkt 7, 02625 Bautzen |phone=|email=|fax=|url=https://www.kornmarkt-center.de/ |hours=Mo – Fr 9.30 – 20.00 Uhr, Sa 9.30 – 18.00 Uhr |price=|lat=51.17999 |long=14.42545 |lastedit=|description=}}
== Küche ==
=== Günstig ===
* {{vCard|type=restaurant |name=Gaststätte Zur Apotheke |address=Schloßstraße 21, 02625 Bautzen |phone=+49 03591 480035 |email=zur.apotheke@t-online.de |fax=|url=http://www.zur-apotheke-bautzen.de/ |hours=Mai – Okt: Mo ist Ruhetag, Di – So 11.30 – 14.00 Uhr + 17.30 – 23.00 Uhr; Nov – Mai: Mo + Di sind Ruhetage, Mi – Fr 17.30 – 23.00 Uhr, Sa + So 11.30 – 14.00 Uhr + 17.30 – 23.00 Uhr |price=|lat=51.18323 |long=14.42125 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Restaurant da Roberto |address=Kurt-Pchalek-Straße 18, 02625 Bautzen |phone=+49 03591 5640604 |email=|fax= |url=https://da-roberto-bautzen.xregional.de/ |hours=Do – Di 17.00 – 22.00 Uhr, Mi geschlossen |price=|lat=51.17879 |long=14.42978 |lastedit= |description=Italienisches Restaurant.}}
=== Mittel ===
* {{vCard|type=restaurant |name=Mönchshof zu Bautzen |address=Burglehn 1, 02625 Bautzen |phone= +49(0)3591 490141 |email=info@moenchshof.de |fax=+49(0)3591 40342 |url=http://www.moenchshof.de/de/start.php |hours= täglich ab 11.00 Uhr |price=|lat=51.18163 |long=14.42113 |lastedit=|description=Deftige Gerichte im Mittelalterlichen Rahmen.}}
* {{vCard|type=restaurant |name=Gaststätte Zum Karasek |address=Hintere Reichenstraße 2, 02625 Bautzen |phone=+49 03591 45066 |email= |fax=+49 03591 302843 |url=https://www.zum-karasek.de/restaurant-in-bautzen |hours=Di – Sa 11.00 – 23.00 Uhr, So 11.30 – 21.30 Uhr, Mo geschlossen |price= |lat=51.18156 |long=14.42491 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Restaurant Burghof |address=|phone=+49 03591 531336 |email=info@burghof-ortenburg.de |fax=+49 3591 531815 |url=https://burghof-bautzen.de/ |hours=Mo – Fr 11.00 – 14.00 Uhr + 17.00 – 21.00 Uhr, Sa 11.30 – 22.00 Uhr, So 11.00 – 14.00 Uhr |price=|lat=51.18310 |long=14.41907 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Zum Zollhaus |address=Äußere Lauenstraße 62, 02625 Bautzen |phone=+49 03591 460237 |email=service@zollhaus-bautzen.de |fax=|url=https://zum-zollhaus-bautzen.de/ |hours=|price=|lat=51.17724 |long=14.42306 |lastedit=|description=Übernachtungsmöglichkeiten vorhanden, da gleichzeitig eine Pension.}}
* {{vCard|type=restaurant |name=Mythos |address=Hauensteingasse 1, 02625 Bautzen |phone=+49 03591 270757 |email=info@mythos-bautzen.de |fax=|url=https://www.mythos-bautzen.de/index.html |hours=Mo, Mi, Do 17.00 – 23.00 Uhr, Fr – So 11.30 – 14.30 Uhr + 17.30 – 23.30 Uhr, Di geschlossen |price=|lat=51.18178 |long=14.42624 |lastedit=|description=Griechisches Restaurant.}}
* {{vCard|type=restaurant |name=Winter's Steakhouse |address=Dresdener Str. 50, 02625 Bautzen |phone=+49 03591 464057 |email=|fax= |url=http://www.winterssteakhouse.de/media/files/Speisekarte.pdf |hours=Fr – Mi 11.30 – 14.00 Uhr + 17.00 – 22.00 Uhr, Do geschlossen |price=|lat=51.17963 |long=14.40859 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Zum Haseneck |address=Kurt-Pchalek-Straße 1, 02625 Bautzen |phone=+49 03591 47913 |email=zum-haseneck@gmx.de |fax=+49 03591 47913 |url=https://www.zum-haseneck.de/spezialitaetenrestaurant-bautzen |hours=Mo, Mi – Sa 11.00 – 22.00 Uhr, So 11.00 – 14:00 Uhr, Di ist Ruhetag |price=|lat=|long=|lastedit=|description=}}
* {{vCard | name = Ocean Beach Bar | type = restaurant | url = https://www.beachbar-bautzen.de | address = Strandpromenade 5 02625 Bautzen | lat = 51.20616023030272 | long = 14.465022713859508 | phone = +49 0152 31715367 | email = beachbar-bautzen@gmx.de | description =
}}
=== Gehoben ===
* {{vCard|type=restaurant |name=Gaststätte Zum Karasek |address=Hintere Reichenstraße 2, 02625 Bautzen |phone=+49 03591 45066 |email= |fax=+49 03591 302843 |url=https://www.zum-karasek.de/restaurant-in-bautzen |hours=Di – Sa 11.00 – 23.00 Uhr, So 11.30 – 21.30 Uhr, Mo geschlossen |price= |lat=51.18156 |long=14.42491 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Restaurant Culinarium |address=Große Brüdergasse 10, 02625 Bautzen |phone=+49 03591 2704949 |email=info@culinarium-bautzen.de |fax=+49 03591 2704950 |url=https://culinarium-bautzen.de/ |hours=Di – Fr 11.30 – 14.00 Uhr + 17.00 – 22.00 Uhr, Sa 17.00 – 23.00 Uhr, So + Mo sind Ruhetage |price=|lat=51.18229 |long=14.42222 |lastedit=|description=}}
== Nachtleben ==
=== Theater ===
* {{vCard|type=theater |name=Deutsch-Sorbisches Volkstheater |address=Seminarstraße 12, 02625 Bautzen |phone=+49 03591 5840 |email=|fax= |url=https://www.theater-bautzen.de/ |hours=|price=|lat=51.17766 |long=14.42483 |lastedit= |description=}}
* {{vCard|type=theater |name=Burgtheater |address=Ortenburg 7, 02625 Bautzen |phone=+49 03591 584274 |email=|fax=|url=|hours=|price= |lat=51.18312 |long=14.42021 |lastedit=|description=}}
=== Kneipen & Sonstiges ===
* Altstadt:
** {{vCard|type=bar |name=Sam's Bar |address=Fleischmarkt 4, 02625 Bautzen |phone=+49 03591 3818435 |email=sams.bar@hotmail.de |fax= |url=https://www.sams-bar.de/ |hours=Mi – Mo 19.00 – 2.00 Uhr, Di geschlossen |price=|lat=51.18193 |long=14.42437 |lastedit=|description=}}
** La Bodega
** Schloss Schänke
** {{vCard|type=bar |name=Bar-Caracas |address=Schloßstraße 7, 02625 Bautzen |phone=+49 03591 530050 |email=|fax=|url=|hours=Di – Do 19.00 – 0.00 Uhr, Fr + Sa 19.00 – 2.00 Uhr, So + Mo geschlossen |price=|lat=51.18295 |long=14.42203 |lastedit=|description=}}
** Alte Räucherei
** Bierakademie
* Weiteres Stadtgebiet:
** {{vCard|type=brewery |name=Bautzener Brauhaus |address=Thomas-Mann-Straße 7, 02625 Bautzen |phone=+49 03591 491456 |email=|fax= |url=https://www.bautzener.de/brauhaus |hours=Di – Fr 17.00 – 22.00 Uhr, Sa + So 14.00 – 22.00 Uhr, Mo geschlossen |price=|lat=51.17975 |long=14.43975 |lastedit=|description=}}
'''Für die Jugend''':
* {{vCard|type=youth center |name=Steinhaus Bautzen |address=Steinstraße 37, 02625 Bautzen |phone=+49 03591 5319966 |email=steinhaus@steinhaus-bautzen.de |fax=+49 03591 5319967 |url=http://www.steinhaus-bautzen.de/start/ |hours=Mo – Fr 9.00 – 18.00 Uhr |price= |lat=51.18157 |long=14.43177 |lastedit=|description=}}
== Unterkunft ==
=== Günstig ===
* {{vCard | name = DJH-Jugendherberge Bautzen "Gerberbastei" | type = youth hostel | url = https://www.jugendherberge-sachsen.de/jugendherbergen/bautzen-gerberbastei-45/portraet/ | address = Am Zwinger 1, 02625 Bautzen | lat = 51.18348840514818 | long = 14.424639635510928 | phone = +49 (0)3591 40347 | fax = +49 (0)3591 40348 | email = bautzen@jugendherberge.de | hours = ganzjährig (außer an Weihnachten) | checkin = 17:00-20:00 | checkout = bis 10:00 | price = ab 25,- €/ÜF (nur für DJH-Mitglieder) | subtype = wheelchair, wlan | lastedit = 2021-04-09 | description = Jugendherberge mit 115 Betten im historischen Zentrum von Bautzen in einem Wehrturm sowie in zwei Bürgerhäusern. Sie ist Teil der mittelalterlichen Stadtbefestigung.}}
* {{vCard|type = hotel | name=Hotel „Alte Gerberei“| address=Uferweg 1| directions=weitere Innenstadt |lat=51.18028 |long=14.41999 | phone=+49 (0)3591 272390| fax=+49 (0)3591 2723921| email=info@hotel-alte-gerberei.de| url=https://www.hotel-alte-gerberei.de/| price=EZ ab 54 €, DZ ab 74 €}}
* {{vCard| type = boarding house | name=Pension Stadtwall Bautzen| address=Flinzstr. 4A| directions=weitere Innenstadt |lat=51.18409 |long=14.43442 | phone=+49 (0)3591 44848| fax=+49 (0)3591 460090| email=info@pension-stadtwall.de| url=https://www.pension-stadtwall.de/| price=EZ ab 31 €, DZ ab 43 €}}
* {{vCard| type = boarding house | name=Spreepension Bautzen| address=Fischergasse 6| directions=weitere Innenstadt |lat=51.17921 |long=14.42132 | phone=+49 (0)3591 48960| fax=+49 03591 489644| email=Frenzel.pension@t-online.de| url=https://www.spree-pension.de/| price=EZ ab 36 €, DZ ab 58 €}}
* {{vCard | name = Haus Buchheim | alt = Pension „Am Schloss“ | type = boarding house, hotel garni | url = http://www.pension-am-schloss-bautzen.de/ | address = Schlossstr. 11, 02625 Bautzen | directions = innerer Altstadtkern | lat = 51.18309 | long = 14.42172 | phone = +49 (0)3591 4640499 | fax = +49 (0)3591 4640505 | email = info@pension-am-schloss-bautzen.de | price = EZ ab 55,- €/ÜF, DZ ab 74,- €/ÜF | subtype = 3, free parking | lastedit = 2021-04-09 | description = Pension im Zeitraum von 1664 bis 1709 erbauten Geburtshaus von Prof. Rudolf Buchheim (1820-1879), einem berühmten Sohn der Stadt Bautzen. }}
* {{vCard| type = boarding house | name=Pension „Stephan“| address=Schlossstr. 1| directions=innerer Altstadtkern| phone=+49 (0)3591 47590| fax=+49 (0)3591 47591| email=Pension.Stephan@t-online.de | url=http://www.pensionstephan-bautzen.de/| price=p.P. inkl. Frühstück: EZ 45 €, DZ 35 €}}
=== Mittel ===
* {{vCard| type = boarding house | name=Pension „Dom-Eck“| address=Breitengasse 2| directions=innerer Altstadtkern |lat=51.18279 |long=14.42461 | phone=+49 (0)3591 501330| fax=+49 (0)3591 501334| email=info@wjelbik.de| url=https://www.wjelbik.de/| price=EZ 52-57 €, DZ 62-72 €}}
* {{vCard| type = boarding house | name=Pension „Schloss-Schänke“| address=Burgplatz 5, 02625 Bautzen | directions=innerer Altstadtkern |lat=51.18261 |long=14.42101 | phone=+49 (0)3591 304990| fax=+49 (0)3591 490198| email=info@schloss-schaenke.net| url=https://www.schloss-schaenke.net/| price=EZ ab 55 €, DZ ab 69 €}}
* {{vCard | name = Best Western Plus Hotel Bautzen | type = hotel, bar, restaurant | url = https://www.bwbautzen.de/ | address = Wendischer Graben 20, 02625 Bautzen | directions = in der weiteren Innenstadt | lat = 51.18137 | long = 14.42837 | phone = +49 (0)3591 492-0 | fax = +49 (0)3591 492100 | email = info@hotel-bautzen.bestwestern.de | subtype = 4, free wlan, parking, bicycle stand, conference, spa | lastedit = 2021-04-09 | description = Hotel mit 157 Zimmern auf 6 Etagen. }}
* {{vCard|type=hotel |name=Hotel Villa Antonia |address=Lessingstrasse 1, 02625 Bautzen |phone=+49 03591 460888 |email=info@hotel-villa-antonia.de |fax=|url=https://www.hotel-villa-antonia.de/de/start.php |hours=|price=DZ ab 71 € |lat=51.17830 |long=14.43440 |lastedit=|description=Zum Hotel gehört das Restaurant Tiroler Stuben.}}
=== Gehoben ===
* {{vCard | name = Hotel „Goldener Adler“ | type = hotel garni | url = https://goldeneradlerbautzen.de/startseite | address = Hauptmarkt 4, 02625 Bautzen | directions = innerer Altstadtkern | lat = 51.18153 | long = 14.42342 | phone = +49 (0)3591 48660 | fax =+49 (0)3591 486620 | email = kontakt@goldeneradler.de | price = DZ ab 89,- €/Ü | subtype = 4, free wlan | lastedit = 2021-04-09 | description = Tradition seit 1540.
}}
=== Campingplatz & Caravanstellplatz ===
* {{vCard|name=Natur- und Abenteuercamping am Stausee Bautzen|type=caravan site|url=https://www.camping-bautzen.de|address=Nimschützer Straße 41, 02625 Bautzen - Burk|lat=51.20250573158631|long=14.460056611805268|phone=+49 03591 271267|email=camping-bautzen@web.de|description=}}
* {{vCard | name = Wohnmobilstellplatz Bautzen | alt = Parkplatz Schliebenstraße | type = caravan site | url = http://www.bautzen.de | address = Schliebenstraße 24, 02625 Bautzen | lat = 51.181939247125364 | long = 14.414905252261146 | description = 4 Wohnmobilstellplätze.
}}
== Lernen ==
In Bautzen befindet sich neben sechs Grundschulen, vier Mittelschulen, fünf Gymnasien und drei Förderschulen auch die ''Duale Hochschule Sachsen – Staatliche Studienakademie Bautzen''.
<!--== Arbeiten ==-->
== Sicherheit ==
* {{vCard|type=police |name=Polizeirevier |address=Taucherstraße 38, 02625 Bautzen |phone=+49 03591 3560 |email=|fax=|url=|hours=|price= |lat=51.17433 |long=14.43027 |lastedit=|description=}}
== Gesundheit ==
=== Krankenhaus ===
* {{vCard|type=hospital |name=Oberlausitz-Kliniken GmbH |address=Am Stadtwall 3, 02625 Bautzen |phone=+49 03591 3630 |email=|fax=+49 03591 3632455 |url=https://www.oberlausitz-kliniken.de/ |hours=|price=|lat=51.18463 |long=14.43206 |lastedit=|description=}}
=== Apotheken ===
* {{vCard|type=pharmacy |name=Ahorn-Apotheke |address=Muskauer Str. 20 c, 02625 Bautzen |phone=+4 903591 6770017 |email=mitarbeiter@ahornapothekebautzen.de |fax=+49 03591 6788733 |url=https://www.ahornapothekebautzen.de/ |hours=Mo – Fr 8.00 – 18.30 Uhr, Sa 8.00 – 13.00 Uhr |price=|lat=51.18547 |long=14.44238 |lastedit=|description=}}
* {{vCard|type=pharmacy |name=Gesundbrunnen-Apotheke |address=Gesundbrunnenring 62, 02625 Bautzen |phone=+49 03591 23027 |email=info@gesundbrunnen-apotheke.de |fax=+49 03591 672624 |url=https://www.gesundbrunnen-apotheke.de/ |hours=Mo – Sa 8.00 – 20.00 Uhr |price=|lat=51.19207 |long=14.44532 |lastedit=|description=}}
* {{vCard|type=pharmacy |name=Lessing-Apotheke |address=Taucherstraße 24, 02625 Bautzen |phone=+49 03591 47060 |email=info@lessingapotheke-bautzen.de |fax=+49 03591 460626 |url=https://www.lessingapotheke-bautzen.de/ |hours=Mo – Fr 7.30 – 18.00 Uhr, Sa 9.00 – 12.00 Uhr |price=|lat=51.17776 |long=14.43467 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard | type=tourist information | name=Tourist-Information Bautzen-Budyšin | address=Hauptmarkt 1, 02625 Bautzen | phone=+49 (0)3591 42016 | email=touristinfo@bautzen.de | fax=+49(0)3591 327629 | url=https://www.bautzen.de/tourismus-kultur-freizeit/tourist-information/ | hours=Apr-Okt: Mo-Fr 9:00-18:00, Sa+So+Feiertag 9:00-15:00, Nov-Mar: 10:00-17:00, Sa+Advents-Sonntage 10:00-14:00 | lat= 51.18168 | long=14.42419 | lastedit=2021-04-09
}}
== Ausflüge ==
'''Interessante Orte:'''
* '''[[Kleinwelka]]''' (5 km nordwestlich, B 96) – Saurierpark, Irrgarten, Miniaturenpark.
* '''[[Neschwitz]]''' (14 km nordwestlich, B 96 über Kleinwelka) – Schloss und Park.
* '''[[Bischofswerda]]''' (20 km westlich, B 6) – Stadt an der Wesenitz; „Schiebocker Tage“.
* '''[[Löbau]]''' (20 km südöstlich, B 6) – König-Friedrich-August-Turm.
'''Weitere Ziele:'''
* Der [[Muskauer Heide#Weitere Ziele|Findlingspark Nochten]] wurde am ehemaligen Tagebau Nochten errichtet. Der Park bietet auf 17 Hektar blühende Heidemore und -dünen mit ca. 3000 Findlingen.
== Literatur ==
* Joachim Meffert: ''Die Ortenburg in Bautzen – Der archäologische Forschungsstand und die Ausgrabungen von 1999–2001. Arbeits- und Forschungsberichte zur sächsischen Bodendenkmalpflege 44, 2002, 75–177''.
* Karin Sczech: ''Archäologische Untersuchungen zu Bautzen in der Oberlausitz in slawischer Zeit. Archäologische Forschungen am GWZO. Berichte und Beiträge des Geisteswissenschaftlichen Zentrums Geschichte und Kultur Ostmitteleuropas e. V. 2003, 49–64.''
* Grit Richter-Laugwitz: ''Der 17. Juni 1953 in Bautzen'', hrsg. vom Stadtarchiv Bautzen, Bautzen 2004, {{ISBN|3-936758-04-2}}
* Andreas Bensch: ''Chronologie der Stadt Bautzen 1002–2001'', Bautzen 2001, {{ISBN|3-930625-31-8}}
* Christine Seele und Jürgen Matschie: ''Bautzen und seine Kirchen. Ein kleiner ökumenischer Kirchenführer'', Leipzig 1996, {{ISBN|3-7462-1118-2}}
* ''Deutscher Städteatlas''; Band: IV; 3 Teilband. Acta Collegii Historiae Urbanae Societatis Historicorum Internationalis – Serie C. Im Auftrag des Kuratoriums für vergleichende Städtegeschichte e. V. und mit Unterstützung der Deutschen Forschungsgemeinschaft, hrsg. von Heinz Stoob †, Wilfried Ehbrecht, Jürgen Lafrenz und Peter Johannek. Stadtmappe Bautzen, Autor: Karlheinz Blaschke, {{ISBN|3-89115-033-4}}; Dortmund-Altenbeken 1989.
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 51.18139| long= 14.42389| radius= 2000}}
{{IstInKat|Zentrale Oberlausitz}}
{{class-3}}
3hx3rnazl5xeiy0y6wrcox1a1c2hzip
1769001
1768996
2026-04-16T13:08:45Z
~2026-23491-94
58163
1769001
wikitext
text/x-wiki
{{Quickbar Ort
| Bild= [[Datei:City Bautzen Germany 104.JPG|300px|Blick auf die Altstadt von der Friedensbrücke aus. Im Vordergrund das sogenannte Hexenhäuschen (vor 1604). In der Mitte die Mönchsbastei (1324) an der Mühltorgasse. Im Hintergrund der Wasserturm (1877) in der Mönchskirchenruine, der Dom St. Petri (1213/1221) und der Rathausturm (1213/1705).]]
| TouriInfoWeb=http://www.bautzen.de/tourismus.asp
| TouriInfoTel=+49 3591 42016
}}{{ZdM|Datum=2022-03|Art=Abseits}}
'''Bautzen''' (sorbisch '''Budyšin''') ist eine über tausendjährige Stadt in der [[Oberlausitz]] und gilt als die Hauptstadt der Sorben. Sie besitzt eine sehr gut erhaltene bzw. restaurierte Altstadt inkl. Kneipenszene. Daneben ist Bautzen überregional für seinen Senf sowie als Standort des "Stasi-Knasts" Bautzen II bekannt.
== Hintergrund ==
Bautzen, ursprünglich eine slawische Niederlassung ''Budissin'', erscheint schon um 1004, wo es vom König Heinrich II. erobert wurde, als befestigte Stadt. Zur Hebung derselben trug der Ruf einer Reliquie bei, eines Arms von St. Petrus. Hier wurde 1018 der Friede zwischen dem Polenherzog Boleslaw und Kaiser Heinrich II. und 1350 der Vertrag zwischen Karl IV. und Ludwig von Brandenburg geschlossen, wodurch Ludwig seinen Ansprüchen auf die Niederlausitz entsagte, aber Brandenburg verbürgt erhielt. Im Hussitenkrieg litt Bautzen viel, schlug aber 1431 einen Sturm ab. Im Dreißigjährigen Krieg nahm es Kurfürst Georg 1620 nach vierwöchiger Belagerung ein; 1633 wurde es von Wallenstein erobert, und am 4. Mai 1634 brannte es der vom Kurfürsten von Sachsen belagerte kaiserliche Oberst v. Goltz nieder, bevor er sich ergab. Im Jahre 1813 wurde Bautzen berühmt durch die Schlacht vom 20. und 21. Mai, in der die Armeen Napoléons gegen die Verbündeten Russland und Preußen kämpften.
== Anreise ==
{{quickbar table begin|width: 200px;}}
{{quickbar header|Entfernungen}}
{{quickbar item|heading=[[Cottbus]]|value=80 km}}
{{quickbar item|heading=[[Liberec]]|value=72 km}}
{{quickbar item|heading=[[Dresden]]|value=63 km}}
{{quickbar item|heading=[[Görlitz]]|value=48 km}}
{{quickbar item|heading=[[Zittau]]|value=46 km}}
{{quickbar item|heading=[[Hoyerswerda]]|value=36 km}}
{{quickbar table end}}
=== Mit dem Flugzeug ===
Der nächste Verkehrsflughafen ist der {{Marker |type=airport |name=Flughafen Dresden-Klotzsche |wikidata=Q657005 |show=none}}. Nach der Ankunft fährt man entweder mit dem Auto ca. 50 km über die A 4 Richtung Görlitz oder mit der S-Bahn oder dem Bus 80 zum Bahnhof Dresden-Klotzsche und dort mit dem Zug (RE 1 oder RB 60) nach Bautzen.
Der ehemalige Militärflughafen Litten in unmittelbarer Nähe der Stadt Bautzen wird von Sportflugzeugen und für Veranstaltungen wie das „VW-Pfingsttreffen“ oder die „Flugtage Bautzen“ („Flugtage Litten“) genutzt.
=== Mit der Bahn ===
Mit dem Regionalexpress von Dresden Hauptbahnhof oder Görlitz bis Bahnhof Bautzen. Der {{Marker|type=train|name=Bahnhof|wikidata=Q320740}} liegt anderthalb Kilometer südlich des Zentrums; entsprechend ist es dann zu Fuß 10 bis 15 Minuten in die Altstadt.
=== Mit dem Bus ===
Aufgrund seiner Lage an der Ost-West-Magistrale A 4 ist Bautzen Haltepunkt zahlreicher Buslinien aus verschiedenen Teilen Deutschlands auf dem Weg Richtung Tschechien. Es gibt mehrere Fernbushalte. Dies ist zum Einen ein {{Marker|type=bus|name=Halt|lat=51.1740 | long=14.4285}} am Bahnhof, zum Anderen ein Halt an der Ausfallstrasse Richtung Autobahn ({{Marker|type=bus|name=Flixbushalt|lat=51.1817 | long=14.4150}})
=== Auf der Straße ===
Bautzen liegt an der Bundesautobahn {{RSIGN|DE|A|4|Bundesautobahn 4|40}} und damit an einer großen Ost-West-Achse. Die Stadt ist dadurch u.a. von Dresden her aus dem Westen und von Görlitz aus dem Osten schnell und bequem zu erreichen. Von Norden reist man am besten über die Bundesstraßen {{RSIGN|DE|B|96}} oder {{RSIGN|DE|B|156}} an.
== Mobilität ==
{{Mapframe|51.1816|14.4238|zoom=15}}
Die Sehenswürdigkeiten der Altstadt von Bautzen liegen dicht beieinander und sind leicht zu Fuß zu erreichen. Bautzen verfügt mittlerweile auch über ein gut ausgebautes Netz von Radwegen. Es gibt zudem mehrere Stadtbus-Linien.
== Sehenswürdigkeiten ==
=== Türme und Basteien ===
Bautzen wird mit Recht auch als Türme-Stadt bezeichnet. Mehr als 20 Türme und Basteien zieren die Stadtsilhouette. Die insgesamt 17 Türme und Basteien der Altstadt machen dabei die mehr als 1000jährige Stadtgeschichte erlebbar.
* {{vCard | name = Alte Wasserkunst | type = tower, museum, technical monument | wikidata = Q436381 | hours = Jan.: Sa,So 10:00-16:00, Feb,Mar,Nov,Dez: tägl. 10:00-16:00, Apr-Okt tägl. 10:00-17:00 | price = Erw. 3,50 €, Schüler, Studenten, Schwerbeschädigte 2,- €, Kinder (bis 14 J.) 1,50 € | lastedit = 2022-03-12 | description = Markanter Blickfang in der Stadtansicht. Die Alte Wasserkunst diente früher der Wasserversorgung der Stadt. An der Stelle eines hölzernen Vorbaus von 1495/96 wurde die Alte Wasserkunst in der heutigen Form im Jahre 1558 erbaut. Der steinerne, siebengeschossige, 47 m hohe Rundturm diente gleichzeitig als Teil der Stadtbefestigung. 1965 wurde die Wasserkunst stillgelegt und dient heute als technisches Museum. Das denkmalgeschützte Bauwerk kann heute besichtigt werden und bietet außer dem Maschinenhaus auch eine Aussichtsplattform, die vom Keller über 184 Stufen erreichbar ist und einen sehr guten Blick auf die Dächer von Bautzen und das Lausitzer Bergland bietet. Außerdem geben wechselnde Ausstellungen von Mai bis Oktober, über zwei Ebenen im Turminneren, interessante Einblicke in die regionale Kunstszene.
}}
* {{vCard | type = tower | name = Alter Wasserturm | address = Mönchsgasse 4 | lat = 51.181943 | long = 14.421569 | description = Wasserturm unmittelbar an der Ruine der Mönchskirche }}
* {{vCard | type = tower | name = Burgwasserturm | address = Osterweg | lat = 51.182678 | long = 14.419012 }}
* {{vCard | type = tower | name = Gerberbastei | lat = 51.183532 | long = 14.424528 | wikidata = Q1510314 | description = Sitz der Jugendherberge Bautzen. }}
* {{vCard | type = tower | name = Lauenturm | address = Innere Lauenstraße | lat = 51.180175 | long = 14.423514 | wikidata = Q1807352 | description = Turm mit charakteristischer barocker Haube. }}
* {{vCard | type = tower | name = Matthiasturm | address = Schloßgraben | lat = 51.183376 | long = 14.421027 | wikidata = Q44401596 | description = Turm der Ortenburg (siehe unten). }}
* {{vCard | type = tower | name = Mühlbastei | lat = 51.181960 | long = 14.420059 | wikidata = Q1407655 | description = }}
* {{vCard | type = tower | name = Mühltor | lat = 51.181960 | long = 14.420059 | wikidata = Q1266942 | description = }}
* {{vCard | type = tower | name = Neue Wasserkunst | lat = 51.177498 | long = 14.422692 | wikidata = Q975040 | description = Auffälliger Turm mit Kuppelhaube aus dem 17. Jahrhundert. }}
* {{vCard | type = tower | name = Nicolaiturm | address = Nicolaipforte 3 | lat = 51.183563 | long = 14.422726 | wikidata = Q1986328 | description = Turm der Stadtbefestigung bei der ehemaligen Nikolaikirche. }}
* {{vCard | type = tower | name = Rathausturm | address = Fleischmarkt 1 | lat = 51.181635 | long = 14.423737 | wikidata = Q811923 | description = Barocker Turmaufsatz eines im Kern gotischen Turms des Rathauses in Bautzen. }}
* {{vCard | type = tower | name = Reichenturm | lat = 51.181164 | long = 14.427348 | wikidata = Q1265032 | description = Schiefer Turm von Bautzen, prägt mit seinem charakteristischen Turmaufsatz die Stadtansicht. }}
* {{vCard | type = tower | name = Röhrscheidtbastei | lat = 51.180283 | long = 14.422393 | wikidata = Q1520228 | description = }}
* {{vCard | type = tower | name = Schülerturm | lat = 51.182880 | long = 14.426047 | wikidata = Q2259727 | description = }}
* {{vCard | type = tower | name = Turm der Berufsakademie | address = Löbauer Str. 1 | lat = 51.181856 | long = 14.435910 | wikidata = Q828763 | description = }}
* {{vCard | type = tower | name = Wendischer Turm | lat = 51.182018 | long = 14.427423 | wikidata = Q1382745 | description = }}
Alle Informationen zur Türme-Stadt Bautzen findet man unter: http://bautzen.info/tuerme-stadt/ .
=== Kirchen ===
* {{vCard | type = cathedral | name = Dom St. Petri | url = https://www.st-petri-bautzen.de/ | lat = 51.182394 | long = 14.423661 | wikidata = Q317346 | description = Ostdeutschlands einzige Simultankirche (sowohl römisch-katholisch als auch evangelisch-lutherisch) ist eine spätgotische Hallenkirche mit dem höchsten Turm in Bautzen, auffälligem Knick in der Längsachse und schönen Maßwerkfenstern. (Über den Eingang auf der Westseite ist eine Turmbesteigung mit Blick auf Bautzen und Umgebung möglich.)
}}
* {{vCard | name = Domstift mit Domschatzkammer | type = church | wikidata = Q70366431 | url = http://www.kirchliche-museen.org/museen/profil.php?museum=4 | phone = +49 3591 35 19 50 | fax = +49 3591 35 19 522 | email = archiv@ordinariat-bautzen.de | description =
}}
* {{vCard | name = Michaeliskirche | type = church | wikidata = Q1546343 | lastedit = 2022-12-06 | description = Spätgotische dreischiffige Hallenkirche aus dem 15. Jahrhundert.
}}
* {{vCard | name = Mönchskirche | type = church | wikidata = Q1958015 | lastedit = 2022-12-06 | description = Ehemalige gotische Franziskanerklosterkirche, als Ruine erhalten.
}}
* {{vCard | name = Nikolaikirche | type = church | wikidata = Q2316608 | lastedit = 2022-12-06 | description = Als Ruine erhaltene Kirche aus dem 15. Jahrhundert.
}}
=== Burgen, Schlösser und Paläste ===
* {{vCard | type = castle | name = Ortenburg | wikidata = Q1255971 | description = Große Burganlage, im Kern aus dem 15. Jahrhundert mit reicher Geschichte. }}
=== Bauwerke ===
[[Datei:Reichenturm 101.jpg|miniatur|hochkant=0.8|Reichenturm und -straße]]
* Alte und Neue Wasserkunst (siehe oben)
* Reichenturm (Aussichtsturm und „Schiefer Turm von Bautzen“, siehe oben)
* Kirchen (siehe oben)
* Zahlreiche barocke Bürgerhäuser, unter anderem „Handtuchhaus“
=== Denkmäler ===
* {{vCard|type=memorial |name=Rietschelgiebel-Figuren |address=im Hof der Ortenburg |phone=|email=|fax= |url=http://www.bautzen.de/tourismus.asp?mid=84&uid=235&iid=517 |hours=|price=|lat=|long=|lastedit=|description=}}
=== Museen ===
* {{vCard | name = Museum Bautzen | type = museum | wikidata = Q1471331 | url = https://www.museum-bautzen.de | address = Kornmarkt 1 | lat = 51.18033 | long = 14.42682 | phone = +49(0)3591 49850 | fax =+49 (0)3591 498540 | email = museum@bautzen.de | hours = Di-Mi,Fr-So: 10:00-18:00; Do: 10:00-20:00 | price = € 3,50/2,50 (Erw./erm.) | description =}}
* {{vCard|name=Sorbisches Museum|type=museum|wikidata=Q2303149|url=https://sorbisches-museum.de/|lat=51.18341|long=14.41972|description=|phone=+49(0) 3591 270870-0|email=sekretariat@sorbisches-museum.de|hours=Dienstag bis Sonntag, 10:00 bis 18:00 Uhr.
Montag geschlossen, außer an Feiertagen.
Geschlossen am: 24., 25., 31. Dezember, 01., 02. Januar.
Am 26. Dezember von 13.00 bis 18.00 Uhr geöffnet.|address=Ortenburg 3, 02625 Bautzen|name-local=Serbski muzej}}
* {{vCard | name = Gedenkstätte und Museum | type = museum, memorial | wikidata = Q20828999 | url = http://www.gedenkstaette-bautzen.de/ | description =Gefängnis Bautzen II (der berüchtigte Stasi-Knast) – ist heute ein Museum.}}
=== Straßen und Plätze ===
* Hauptmarkt mit {{marker|name=Rathaus|wikidata=Q811923| show = copy}} und schönen Bürgerhäusern
* Reichenstraße zwischen Hauptmarkt und Reichenturm
=== Parks ===
=== Verschiedenes ===
== Aktivitäten ==
[[Datei:EvangelischeKirchgangstracht.JPG|miniatur|hochkant=0.8|Kirchgangstracht verheirateter (rechts) und unverheirateter (links) Sorbinnen um Bautzen]]
Bautzen und seine Umgebung sind besonders zur Osterzeit ein beliebtes Reiseziel, da hier die sorbischen und deutschen Osterbräuche, wie zum Beispiel das Osterreiten oder das „Eierschieben“ am Protschenberg noch mit sehr viel Liebe gepflegt werden.
Zu Pfingsten wird auf der Ortenburg jährlich ein Mittelalterlicher Markt mit Ritterspielen u. Ä. veranstaltet. Ebenso im Hof der Ortenburg findet alljährlich der Bautzener Theatersommer statt. Es werden vornehmlich unterhaltsame Theaterstücke unter freiem Himmel aufgeführt.
Natürlich kann man auch den Rest des Jahres viel unternehmen. Vor allem für Naturliebhaber gibt es einiges zu entdecken. Zu erwähnen wäre der Bautzener Stausee, wo man im Sommer baden, Windsurfen usw. kann. Es gibt auch sehr viele schöne Radwege (etwa um den Stausee oder an der Spree entlang).
* {{vCard | name = Geo Trail - Kletterpark und Hochseilgarten | type = sports | url = https://www.geo-trail.eu | address = Strandpromenade 8 02625 Bautzen | directions = am Stausee Bautzen | lat = 51.20609799212287 | long = 14.466770627182147 | phone = +49 179 6742574 | email = info@geo-trail.eu | description =
}}
* {{vCard | name = Minigolf | type = minigolf | address = Strandpromenade 10 02625 Bautzen | directions = am Stausee Bautzen | lat = 51.20691402750633 | long = 14.46626783667978 | phone = +49 162 9079949 | email = monstergolf-bautzen@gmx.de | description =
}}
== Einkaufen ==
* {{vCard|type=shop|name=Bautz´ner Senfladen, Manufaktur & Museum |address=Fleischmarkt 5, 02625 Bautzen |phone= +49(0)3591 597118|email=|fax=|url=http://www.bautzener-senfladen.de/|hours=täglich von 10.00 - 19.00 , Januar bis März bis 17.00 Uhr|price=|lat=51.18183 | long=14.42330| lastedit = 2016-10-19 |description=Die Geschichte des Bautz´ner Senf wird in mehreren Vitrinen gezeigt und es gibt eine Senfmühle aus dem letzten Jahrhundert. Senf probieren und kaufen kann man auch.}}
* {{vCard|type=mall |name=Kornmarkt-Center |address=Kornmarkt 7, 02625 Bautzen |phone=|email=|fax=|url=https://www.kornmarkt-center.de/ |hours=Mo – Fr 9.30 – 20.00 Uhr, Sa 9.30 – 18.00 Uhr |price=|lat=51.17999 |long=14.42545 |lastedit=|description=}}
== Küche ==
=== Günstig ===
* {{vCard|type=restaurant |name=Gaststätte Zur Apotheke |address=Schloßstraße 21, 02625 Bautzen |phone=+49 03591 480035 |email=zur.apotheke@t-online.de |fax=|url=http://www.zur-apotheke-bautzen.de/ |hours=Mai – Okt: Mo ist Ruhetag, Di – So 11.30 – 14.00 Uhr + 17.30 – 23.00 Uhr; Nov – Mai: Mo + Di sind Ruhetage, Mi – Fr 17.30 – 23.00 Uhr, Sa + So 11.30 – 14.00 Uhr + 17.30 – 23.00 Uhr |price=|lat=51.18323 |long=14.42125 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Restaurant da Roberto |address=Kurt-Pchalek-Straße 18, 02625 Bautzen |phone=+49 03591 5640604 |email=|fax= |url=https://da-roberto-bautzen.xregional.de/ |hours=Do – Di 17.00 – 22.00 Uhr, Mi geschlossen |price=|lat=51.17879 |long=14.42978 |lastedit= |description=Italienisches Restaurant.}}
=== Mittel ===
* {{vCard|type=restaurant |name=Mönchshof zu Bautzen |address=Burglehn 1, 02625 Bautzen |phone= +49(0)3591 490141 |email=info@moenchshof.de |fax=+49(0)3591 40342 |url=http://www.moenchshof.de/de/start.php |hours= täglich ab 11.00 Uhr |price=|lat=51.18163 |long=14.42113 |lastedit=|description=Deftige Gerichte im Mittelalterlichen Rahmen.}}
* {{vCard|type=restaurant |name=Gaststätte Zum Karasek |address=Hintere Reichenstraße 2, 02625 Bautzen |phone=+49 03591 45066 |email= |fax=+49 03591 302843 |url=https://www.zum-karasek.de/restaurant-in-bautzen |hours=Di – Sa 11.00 – 23.00 Uhr, So 11.30 – 21.30 Uhr, Mo geschlossen |price= |lat=51.18156 |long=14.42491 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Restaurant Burghof |address=|phone=+49 03591 531336 |email=info@burghof-ortenburg.de |fax=+49 3591 531815 |url=https://burghof-bautzen.de/ |hours=Mo – Fr 11.00 – 14.00 Uhr + 17.00 – 21.00 Uhr, Sa 11.30 – 22.00 Uhr, So 11.00 – 14.00 Uhr |price=|lat=51.18310 |long=14.41907 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Zum Zollhaus |address=Äußere Lauenstraße 62, 02625 Bautzen |phone=+49 03591 460237 |email=service@zollhaus-bautzen.de |fax=|url=https://zum-zollhaus-bautzen.de/ |hours=|price=|lat=51.17724 |long=14.42306 |lastedit=|description=Übernachtungsmöglichkeiten vorhanden, da gleichzeitig eine Pension.}}
* {{vCard|type=restaurant |name=Mythos |address=Hauensteingasse 1, 02625 Bautzen |phone=+49 03591 270757 |email=info@mythos-bautzen.de |fax=|url=https://www.mythos-bautzen.de/index.html |hours=Mo, Mi, Do 17.00 – 23.00 Uhr, Fr – So 11.30 – 14.30 Uhr + 17.30 – 23.30 Uhr, Di geschlossen |price=|lat=51.18178 |long=14.42624 |lastedit=|description=Griechisches Restaurant.}}
* {{vCard|type=restaurant |name=Winter's Steakhouse |address=Dresdener Str. 50, 02625 Bautzen |phone=+49 03591 464057 |email=|fax= |url=http://www.winterssteakhouse.de/media/files/Speisekarte.pdf |hours=Fr – Mi 11.30 – 14.00 Uhr + 17.00 – 22.00 Uhr, Do geschlossen |price=|lat=51.17963 |long=14.40859 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Zum Haseneck |address=Kurt-Pchalek-Straße 1, 02625 Bautzen |phone=+49 03591 47913 |email=zum-haseneck@gmx.de |fax=+49 03591 47913 |url=https://www.zum-haseneck.de/spezialitaetenrestaurant-bautzen |hours=Mo, Mi – Sa 11.00 – 22.00 Uhr, So 11.00 – 14:00 Uhr, Di ist Ruhetag |price=|lat=|long=|lastedit=|description=}}
* {{vCard | name = Ocean Beach Bar | type = restaurant | url = https://www.beachbar-bautzen.de | address = Strandpromenade 5 02625 Bautzen | lat = 51.20616023030272 | long = 14.465022713859508 | phone = +49 0152 31715367 | email = beachbar-bautzen@gmx.de | description =
}}
=== Gehoben ===
* {{vCard|type=restaurant |name=Gaststätte Zum Karasek |address=Hintere Reichenstraße 2, 02625 Bautzen |phone=+49 03591 45066 |email= |fax=+49 03591 302843 |url=https://www.zum-karasek.de/restaurant-in-bautzen |hours=Di – Sa 11.00 – 23.00 Uhr, So 11.30 – 21.30 Uhr, Mo geschlossen |price= |lat=51.18156 |long=14.42491 |lastedit=|description=}}
* {{vCard|type=restaurant |name=Restaurant Culinarium |address=Große Brüdergasse 10, 02625 Bautzen |phone=+49 03591 2704949 |email=info@culinarium-bautzen.de |fax=+49 03591 2704950 |url=https://culinarium-bautzen.de/ |hours=Di – Fr 11.30 – 14.00 Uhr + 17.00 – 22.00 Uhr, Sa 17.00 – 23.00 Uhr, So + Mo sind Ruhetage |price=|lat=51.18229 |long=14.42222 |lastedit=|description=}}
== Nachtleben ==
=== Theater ===
* {{vCard|type=theater |name=Deutsch-Sorbisches Volkstheater |address=Seminarstraße 12, 02625 Bautzen |phone=+49 03591 5840 |email=|fax= |url=https://www.theater-bautzen.de/ |hours=|price=|lat=51.17766 |long=14.42483 |lastedit= |description=}}
* {{vCard|type=theater |name=Burgtheater |address=Ortenburg 7, 02625 Bautzen |phone=+49 03591 584274 |email=|fax=|url=|hours=|price= |lat=51.18312 |long=14.42021 |lastedit=|description=}}
=== Kneipen & Sonstiges ===
* Altstadt:
** {{vCard|type=bar |name=Sam's Bar |address=Fleischmarkt 4, 02625 Bautzen |phone=+49 03591 3818435 |email=sams.bar@hotmail.de |fax= |url=https://www.sams-bar.de/ |hours=Mi – Mo 19.00 – 2.00 Uhr, Di geschlossen |price=|lat=51.18193 |long=14.42437 |lastedit=|description=}}
** La Bodega
** Schloss Schänke
** {{vCard|type=bar |name=Bar-Caracas |address=Schloßstraße 7, 02625 Bautzen |phone=+49 03591 530050 |email=|fax=|url=|hours=Di – Do 19.00 – 0.00 Uhr, Fr + Sa 19.00 – 2.00 Uhr, So + Mo geschlossen |price=|lat=51.18295 |long=14.42203 |lastedit=|description=}}
** Alte Räucherei
** Bierakademie
* Weiteres Stadtgebiet:
** {{vCard|type=brewery |name=Bautzener Brauhaus |address=Thomas-Mann-Straße 7, 02625 Bautzen |phone=+49 03591 491456 |email=|fax= |url=https://www.bautzener.de/brauhaus |hours=Di – Fr 17.00 – 22.00 Uhr, Sa + So 14.00 – 22.00 Uhr, Mo geschlossen |price=|lat=51.17975 |long=14.43975 |lastedit=|description=}}
'''Für die Jugend''':
* {{vCard|type=youth center |name=Steinhaus Bautzen |address=Steinstraße 37, 02625 Bautzen |phone=+49 03591 5319966 |email=steinhaus@steinhaus-bautzen.de |fax=+49 03591 5319967 |url=http://www.steinhaus-bautzen.de/start/ |hours=Mo – Fr 9.00 – 18.00 Uhr |price= |lat=51.18157 |long=14.43177 |lastedit=|description=}}
== Unterkunft ==
=== Günstig ===
* {{vCard | name = DJH-Jugendherberge Bautzen "Gerberbastei" | type = youth hostel | url = https://www.jugendherberge-sachsen.de/jugendherbergen/bautzen-gerberbastei-45/portraet/ | address = Am Zwinger 1, 02625 Bautzen | lat = 51.18348840514818 | long = 14.424639635510928 | phone = +49 (0)3591 40347 | fax = +49 (0)3591 40348 | email = bautzen@jugendherberge.de | hours = ganzjährig (außer an Weihnachten) | checkin = 17:00-20:00 | checkout = bis 10:00 | price = ab 25,- €/ÜF (nur für DJH-Mitglieder) | subtype = wheelchair, wlan | lastedit = 2021-04-09 | description = Jugendherberge mit 115 Betten im historischen Zentrum von Bautzen in einem Wehrturm sowie in zwei Bürgerhäusern. Sie ist Teil der mittelalterlichen Stadtbefestigung.}}
* {{vCard|type = hotel | name=Hotel „Alte Gerberei“| address=Uferweg 1| directions=weitere Innenstadt |lat=51.18028 |long=14.41999 | phone=+49 (0)3591 272390| fax=+49 (0)3591 2723921| email=info@hotel-alte-gerberei.de| url=https://www.hotel-alte-gerberei.de/| price=EZ ab 54 €, DZ ab 74 €}}
* {{vCard| type = boarding house | name=Pension Stadtwall Bautzen| address=Flinzstr. 4A| directions=weitere Innenstadt |lat=51.18409 |long=14.43442 | phone=+49 (0)3591 44848| fax=+49 (0)3591 460090| email=info@pension-stadtwall.de| url=https://www.pension-stadtwall.de/| price=EZ ab 31 €, DZ ab 43 €}}
* {{vCard| type = boarding house | name=Spreepension Bautzen| address=Fischergasse 6| directions=weitere Innenstadt |lat=51.17921 |long=14.42132 | phone=+49 (0)3591 48960| fax=+49 03591 489644| email=Frenzel.pension@t-online.de| url=https://www.spree-pension.de/| price=EZ ab 36 €, DZ ab 58 €}}
* {{vCard | name = Haus Buchheim | alt = Pension „Am Schloss“ | type = boarding house, hotel garni | url = http://www.pension-am-schloss-bautzen.de/ | address = Schlossstr. 11, 02625 Bautzen | directions = innerer Altstadtkern | lat = 51.18309 | long = 14.42172 | phone = +49 (0)3591 4640499 | fax = +49 (0)3591 4640505 | email = info@pension-am-schloss-bautzen.de | price = EZ ab 55,- €/ÜF, DZ ab 74,- €/ÜF | subtype = 3, free parking | lastedit = 2021-04-09 | description = Pension im Zeitraum von 1664 bis 1709 erbauten Geburtshaus von Prof. Rudolf Buchheim (1820-1879), einem berühmten Sohn der Stadt Bautzen. }}
* {{vCard| type = boarding house | name=Pension „Stephan“| address=Schlossstr. 1| directions=innerer Altstadtkern| phone=+49 (0)3591 47590| fax=+49 (0)3591 47591| email=Pension.Stephan@t-online.de | url=http://www.pensionstephan-bautzen.de/| price=p.P. inkl. Frühstück: EZ 45 €, DZ 35 €}}
=== Mittel ===
* {{vCard| type = boarding house | name=Pension „Dom-Eck“| address=Breitengasse 2| directions=innerer Altstadtkern |lat=51.18279 |long=14.42461 | phone=+49 (0)3591 501330| fax=+49 (0)3591 501334| email=info@wjelbik.de| url=https://www.wjelbik.de/| price=EZ 52-57 €, DZ 62-72 €}}
* {{vCard| type = boarding house | name=Pension „Schloss-Schänke“| address=Burgplatz 5, 02625 Bautzen | directions=innerer Altstadtkern |lat=51.18261 |long=14.42101 | phone=+49 (0)3591 304990| fax=+49 (0)3591 490198| email=info@schloss-schaenke.net| url=https://www.schloss-schaenke.net/| price=EZ ab 55 €, DZ ab 69 €}}
* {{vCard | name = Best Western Plus Hotel Bautzen | type = hotel, bar, restaurant | url = https://www.bwbautzen.de/ | address = Wendischer Graben 20, 02625 Bautzen | directions = in der weiteren Innenstadt | lat = 51.18137 | long = 14.42837 | phone = +49 (0)3591 492-0 | fax = +49 (0)3591 492100 | email = info@hotel-bautzen.bestwestern.de | subtype = 4, free wlan, parking, bicycle stand, conference, spa | lastedit = 2021-04-09 | description = Hotel mit 157 Zimmern auf 6 Etagen. }}
* {{vCard|type=hotel |name=Hotel Villa Antonia |address=Lessingstrasse 1, 02625 Bautzen |phone=+49 03591 460888 |email=info@hotel-villa-antonia.de |fax=|url=https://www.hotel-villa-antonia.de/de/start.php |hours=|price=DZ ab 71 € |lat=51.17830 |long=14.43440 |lastedit=|description=Zum Hotel gehört das Restaurant Tiroler Stuben.}}
=== Gehoben ===
* {{vCard | name = Hotel „Goldener Adler“ | type = hotel garni | url = https://goldeneradlerbautzen.de/startseite | address = Hauptmarkt 4, 02625 Bautzen | directions = innerer Altstadtkern | lat = 51.18153 | long = 14.42342 | phone = +49 (0)3591 48660 | fax =+49 (0)3591 486620 | email = kontakt@goldeneradler.de | price = DZ ab 89,- €/Ü | subtype = 4, free wlan | lastedit = 2021-04-09 | description = Tradition seit 1540.
}}
=== Campingplatz & Caravanstellplatz ===
* {{vCard|name=Natur- und Abenteuercamping am Stausee Bautzen|type=caravan site|url=https://www.camping-bautzen.de|address=Nimschützer Straße 41, 02625 Bautzen - Burk|lat=51.20250573158631|long=14.460056611805268|phone=+49 03591 271267|email=camping-bautzen@web.de|description=}}
* {{vCard | name = Wohnmobilstellplatz Bautzen | alt = Parkplatz Schliebenstraße | type = caravan site | url = http://www.bautzen.de | address = Schliebenstraße 24, 02625 Bautzen | lat = 51.181939247125364 | long = 14.414905252261146 | description = 4 Wohnmobilstellplätze.
}}
== Lernen ==
In Bautzen befindet sich neben sechs Grundschulen, vier Mittelschulen, fünf Gymnasien und drei Förderschulen auch die ''Duale Hochschule Sachsen – Staatliche Studienakademie Bautzen''.
<!--== Arbeiten ==-->
== Sicherheit ==
* {{vCard|type=police |name=Polizeirevier |address=Taucherstraße 38, 02625 Bautzen |phone=+49 03591 3560 |email=|fax=|url=|hours=|price= |lat=51.17433 |long=14.43027 |lastedit=|description=}}
== Gesundheit ==
=== Krankenhaus ===
* {{vCard|type=hospital |name=Oberlausitz-Kliniken GmbH |address=Am Stadtwall 3, 02625 Bautzen |phone=+49 03591 3630 |email=|fax=+49 03591 3632455 |url=https://www.oberlausitz-kliniken.de/ |hours=|price=|lat=51.18463 |long=14.43206 |lastedit=|description=}}
=== Apotheken ===
* {{vCard|type=pharmacy |name=Ahorn-Apotheke |address=Muskauer Str. 20 c, 02625 Bautzen |phone=+4 903591 6770017 |email=mitarbeiter@ahornapothekebautzen.de |fax=+49 03591 6788733 |url=https://www.ahornapothekebautzen.de/ |hours=Mo – Fr 8.00 – 18.30 Uhr, Sa 8.00 – 13.00 Uhr |price=|lat=51.18547 |long=14.44238 |lastedit=|description=}}
* {{vCard|type=pharmacy |name=Gesundbrunnen-Apotheke |address=Gesundbrunnenring 62, 02625 Bautzen |phone=+49 03591 23027 |email=info@gesundbrunnen-apotheke.de |fax=+49 03591 672624 |url=https://www.gesundbrunnen-apotheke.de/ |hours=Mo – Sa 8.00 – 20.00 Uhr |price=|lat=51.19207 |long=14.44532 |lastedit=|description=}}
* {{vCard|type=pharmacy |name=Lessing-Apotheke |address=Taucherstraße 24, 02625 Bautzen |phone=+49 03591 47060 |email=info@lessingapotheke-bautzen.de |fax=+49 03591 460626 |url=https://www.lessingapotheke-bautzen.de/ |hours=Mo – Fr 7.30 – 18.00 Uhr, Sa 9.00 – 12.00 Uhr |price=|lat=51.17776 |long=14.43467 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard | type=tourist information | name=Tourist-Information Bautzen-Budyšin | address=Hauptmarkt 1, 02625 Bautzen | phone=+49 (0)3591 42016 | email=touristinfo@bautzen.de | fax=+49(0)3591 327629 | url=https://www.bautzen.de/tourismus-kultur-freizeit/tourist-information/ | hours=Apr-Okt: Mo-Fr 9:00-18:00, Sa+So+Feiertag 9:00-15:00, Nov-Mar: 10:00-17:00, Sa+Advents-Sonntage 10:00-14:00 | lat= 51.18168 | long=14.42419 | lastedit=2021-04-09
}}
== Ausflüge ==
'''Interessante Orte:'''
* '''[[Kleinwelka]]''' (5 km nordwestlich, B 96) – Saurierpark, Irrgarten, Miniaturenpark.
* '''[[Neschwitz]]''' (14 km nordwestlich, B 96 über Kleinwelka) – Schloss und Park.
* '''[[Bischofswerda]]''' (20 km westlich, B 6) – Stadt an der Wesenitz; „Schiebocker Tage“.
* '''[[Löbau]]''' (20 km südöstlich, B 6) – König-Friedrich-August-Turm.
'''Weitere Ziele:'''
* Der [[Muskauer Heide#Weitere Ziele|Findlingspark Nochten]] wurde am ehemaligen Tagebau Nochten errichtet. Der Park bietet auf 17 Hektar blühende Heidemore und -dünen mit ca. 3000 Findlingen.
== Literatur ==
* Joachim Meffert: ''Die Ortenburg in Bautzen – Der archäologische Forschungsstand und die Ausgrabungen von 1999–2001. Arbeits- und Forschungsberichte zur sächsischen Bodendenkmalpflege 44, 2002, 75–177''.
* Karin Sczech: ''Archäologische Untersuchungen zu Bautzen in der Oberlausitz in slawischer Zeit. Archäologische Forschungen am GWZO. Berichte und Beiträge des Geisteswissenschaftlichen Zentrums Geschichte und Kultur Ostmitteleuropas e. V. 2003, 49–64.''
* Grit Richter-Laugwitz: ''Der 17. Juni 1953 in Bautzen'', hrsg. vom Stadtarchiv Bautzen, Bautzen 2004, {{ISBN|3-936758-04-2}}
* Andreas Bensch: ''Chronologie der Stadt Bautzen 1002–2001'', Bautzen 2001, {{ISBN|3-930625-31-8}}
* Christine Seele und Jürgen Matschie: ''Bautzen und seine Kirchen. Ein kleiner ökumenischer Kirchenführer'', Leipzig 1996, {{ISBN|3-7462-1118-2}}
* ''Deutscher Städteatlas''; Band: IV; 3 Teilband. Acta Collegii Historiae Urbanae Societatis Historicorum Internationalis – Serie C. Im Auftrag des Kuratoriums für vergleichende Städtegeschichte e. V. und mit Unterstützung der Deutschen Forschungsgemeinschaft, hrsg. von Heinz Stoob †, Wilfried Ehbrecht, Jürgen Lafrenz und Peter Johannek. Stadtmappe Bautzen, Autor: Karlheinz Blaschke, {{ISBN|3-89115-033-4}}; Dortmund-Altenbeken 1989.
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 51.18139| long= 14.42389| radius= 2000}}
{{IstInKat|Zentrale Oberlausitz}}
{{class-3}}
ppj03o8gxe6cqbd8c6atubquaozytcb
1769017
1769001
2026-04-16T14:18:42Z
Eduard47
17518
Mapframe nach vorn, + Leerzeilen vor_nach Überschriften, (sh. [[Hilfe:Überschriften#Formatierung|hier]]), - Leerzeilen in Listen (sh. [[Hilfe:Listen#Hinweise|hier]]), leere Parameter in vCards entfernt, - Koord. bei WD-Objekten, +geschützte Leerzeichen, Arbeiten raus, Apotheken raus
1769017
wikitext
text/x-wiki
{{Quickbar Ort
| Bild= [[Datei:City Bautzen Germany 104.JPG|300px|Blick auf die Altstadt von der Friedensbrücke aus. Im Vordergrund das sogenannte Hexenhäuschen (vor 1604). In der Mitte die Mönchsbastei (1324) an der Mühltorgasse. Im Hintergrund der Wasserturm (1877) in der Mönchskirchenruine, der Dom St. Petri (1213/1221) und der Rathausturm (1213/1705).]]
| TouriInfoWeb=http://www.bautzen.de/tourismus.asp
| TouriInfoTel=+49 3591 42016
}}{{ZdM|Datum=2022-03|Art=Abseits}}
'''Bautzen''' (sorbisch '''Budyšin''') ist eine über tausendjährige Stadt in der [[Oberlausitz]] und gilt als die Hauptstadt der Sorben. Sie besitzt eine sehr gut erhaltene bzw. restaurierte Altstadt inkl. Kneipenszene. Daneben ist Bautzen überregional für seinen Senf sowie als Standort des "Stasi-Knasts" Bautzen II bekannt.
== Hintergrund ==
{{Mapframe|51.1816|14.4238|zoom=15|type=geoline}}
Bautzen, ursprünglich eine slawische Niederlassung ''Budissin'', erscheint schon um 1004, wo es vom König Heinrich II. erobert wurde, als befestigte Stadt. Zur Hebung derselben trug der Ruf einer Reliquie bei, eines Arms von St. Petrus. Hier wurde 1018 der Friede zwischen dem Polenherzog Boleslaw und Kaiser Heinrich II. und 1350 der Vertrag zwischen Karl IV. und Ludwig von Brandenburg geschlossen, wodurch Ludwig seinen Ansprüchen auf die Niederlausitz entsagte, aber Brandenburg verbürgt erhielt. Im Hussitenkrieg litt Bautzen viel, schlug aber 1431 einen Sturm ab. Im Dreißigjährigen Krieg nahm es Kurfürst Georg 1620 nach vierwöchiger Belagerung ein; 1633 wurde es von Wallenstein erobert, und am 4. Mai 1634 brannte es der vom Kurfürsten von Sachsen belagerte kaiserliche Oberst v. Goltz nieder, bevor er sich ergab. Im Jahre 1813 wurde Bautzen berühmt durch die Schlacht vom 20. und 21. Mai, in der die Armeen Napoléons gegen die Verbündeten Russland und Preußen kämpften.
== Anreise ==
{{quickbar table begin|width: 200px;}}
{{quickbar header|Entfernungen}}
{{quickbar item|heading=[[Cottbus]]|value=80 km}}
{{quickbar item|heading=[[Liberec]]|value=72 km}}
{{quickbar item|heading=[[Dresden]]|value=63 km}}
{{quickbar item|heading=[[Görlitz]]|value=48 km}}
{{quickbar item|heading=[[Zittau]]|value=46 km}}
{{quickbar item|heading=[[Hoyerswerda]]|value=36 km}}
{{quickbar table end}}
=== Mit dem Flugzeug ===
Der nächste Verkehrsflughafen ist der {{Marker |type=airport |name=Flughafen Dresden-Klotzsche |wikidata=Q657005}}. Nach der Ankunft fährt man entweder mit dem Auto ca. 50 km über die A 4 Richtung Görlitz oder mit der S-Bahn oder dem Bus 80 zum Bahnhof Dresden-Klotzsche und dort mit dem Zug (RE 1 oder RB 60) nach Bautzen.
Der ehemalige Militärflughafen Litten in unmittelbarer Nähe der Stadt Bautzen wird von Sportflugzeugen und für Veranstaltungen wie das „VW-Pfingsttreffen“ oder die „Flugtage Bautzen“ („Flugtage Litten“) genutzt.
=== Mit der Bahn ===
Mit dem Regionalexpress von Dresden Hauptbahnhof oder Görlitz bis Bahnhof Bautzen. Der {{Marker|type=train|name=Bahnhof|wikidata=Q320740}} liegt anderthalb Kilometer südlich des Zentrums; entsprechend ist es dann zu Fuß 10 bis 15 Minuten in die Altstadt.
=== Mit dem Bus ===
Aufgrund seiner Lage an der Ost-West-Magistrale A 4 ist Bautzen Haltepunkt zahlreicher Buslinien aus verschiedenen Teilen Deutschlands auf dem Weg Richtung Tschechien. Es gibt mehrere Fernbushalte. Dies ist zum Einen ein {{Marker|type=bus|name=Halt|lat=51.1740 | long=14.4285}} am Bahnhof, zum Anderen ein Halt an der Ausfallstrasse Richtung Autobahn ({{Marker|type=bus|name=Flixbushalt|lat=51.1817 | long=14.4150}})
=== Auf der Straße ===
Bautzen liegt an der Bundesautobahn {{RSIGN|DE|A|4|Bundesautobahn 4|40}} und damit an einer großen Ost-West-Achse. Die Stadt ist dadurch u.{{nnbsp}}a. von Dresden her aus dem Westen und von Görlitz aus dem Osten schnell und bequem zu erreichen. Von Norden reist man am besten über die Bundesstraßen {{RSIGN|DE|B|96}} oder {{RSIGN|DE|B|156}} an.
== Mobilität ==
Die Sehenswürdigkeiten der Altstadt von Bautzen liegen dicht beieinander und sind leicht zu Fuß zu erreichen. Bautzen verfügt mittlerweile auch über ein gut ausgebautes Netz von Radwegen. Es gibt zudem mehrere Stadtbus-Linien.
== Sehenswürdigkeiten ==
=== Türme und Basteien ===
Bautzen wird mit Recht auch als Türme-Stadt bezeichnet. Mehr als 20 Türme und Basteien zieren die Stadtsilhouette. Die insgesamt 17 Türme und Basteien der Altstadt machen dabei die mehr als 1000jährige Stadtgeschichte erlebbar.
* {{vCard | name = Alte Wasserkunst | type = tower, museum, technical monument | wikidata = Q436381 | hours = Jan.: Sa,So 10:00-16:00, Feb,Mar,Nov,Dez: tägl. 10:00-16:00, Apr-Okt tägl. 10:00-17:00 | price = Erw. 3,50 €, Schüler, Studenten, Schwerbeschädigte 2,- €, Kinder (bis 14 J.) 1,50 € | lastedit = 2022-03-12 | description = Markanter Blickfang in der Stadtansicht. Die Alte Wasserkunst diente früher der Wasserversorgung der Stadt. An der Stelle eines hölzernen Vorbaus von 1495/96 wurde die Alte Wasserkunst in der heutigen Form im Jahre 1558 erbaut. Der steinerne, siebengeschossige, 47 m hohe Rundturm diente gleichzeitig als Teil der Stadtbefestigung. 1965 wurde die Wasserkunst stillgelegt und dient heute als technisches Museum. Das denkmalgeschützte Bauwerk kann heute besichtigt werden und bietet außer dem Maschinenhaus auch eine Aussichtsplattform, die vom Keller über 184 Stufen erreichbar ist und einen sehr guten Blick auf die Dächer von Bautzen und das Lausitzer Bergland bietet. Außerdem geben wechselnde Ausstellungen von Mai bis Oktober, über zwei Ebenen im Turminneren, interessante Einblicke in die regionale Kunstszene.
}}
* {{vCard | type = tower | name = Alter Wasserturm | address = Mönchsgasse 4 | lat = 51.181943 | long = 14.421569 | description = Wasserturm unmittelbar an der Ruine der Mönchskirche }}
* {{vCard | type = tower | name = Burgwasserturm | address = Osterweg | lat = 51.182678 | long = 14.419012 }}
* {{vCard | type = tower | name = Gerberbastei | wikidata = Q1510314 | description = Sitz der Jugendherberge Bautzen. }}
* {{vCard | type = tower | name = Lauenturm | address = Innere Lauenstraße | wikidata = Q1807352 | description = Turm mit charakteristischer barocker Haube. }}
* {{vCard | type = tower | name = Matthiasturm | address = Schloßgraben | wikidata = Q44401596 | description = Turm der Ortenburg (siehe unten). }}
* {{vCard | type = tower | name = Mühlbastei | wikidata = Q1407655 | description = }}
* {{vCard | type = tower | name = Mühltor | wikidata = Q1266942 | description = }}
* {{vCard | type = tower | name = Neue Wasserkunst | wikidata = Q975040 | description = Auffälliger Turm mit Kuppelhaube aus dem 17. Jahrhundert. }}
* {{vCard | type = tower | name = Nicolaiturm | address = Nicolaipforte 3 | wikidata = Q1986328 | description = Turm der Stadtbefestigung bei der ehemaligen Nikolaikirche. }}
* {{vCard | type = tower | name = Rathausturm | address = Fleischmarkt 1 | wikidata = Q811923 | description = Barocker Turmaufsatz eines im Kern gotischen Turms des Rathauses in Bautzen. }}
* {{vCard | type = tower | name = Reichenturm | wikidata = Q1265032 | description = Schiefer Turm von Bautzen, prägt mit seinem charakteristischen Turmaufsatz die Stadtansicht. }}
* {{vCard | type = tower | name = Röhrscheidtbastei | wikidata = Q1520228 | description = }}
* {{vCard | type = tower | name = Schülerturm | wikidata = Q2259727 | description = }}
* {{vCard | type = tower | name = Turm der Berufsakademie | address = Löbauer Str. 1 | wikidata = Q828763 | description = }}
* {{vCard | type = tower | name = Wendischer Turm | wikidata = Q1382745 | description = }}
Alle Informationen zur Türme-Stadt Bautzen findet man unter: http://bautzen.info/tuerme-stadt/ .
=== Kirchen ===
* {{vCard | type = cathedral | name = Dom St. Petri | url = https://www.st-petri-bautzen.de/ | wikidata = Q317346 | description = Ostdeutschlands einzige Simultankirche (sowohl römisch-katholisch als auch evangelisch-lutherisch) ist eine spätgotische Hallenkirche mit dem höchsten Turm in Bautzen, auffälligem Knick in der Längsachse und schönen Maßwerkfenstern. (Über den Eingang auf der Westseite ist eine Turmbesteigung mit Blick auf Bautzen und Umgebung möglich.)
}}
* {{vCard | name = Domstift mit Domschatzkammer | type = church | wikidata = Q70366431 | url = http://www.kirchliche-museen.org/museen/profil.php?museum=4 | phone = +49 03591 35 19 50 | fax = +49 03591 35 19 522 | email = archiv@ordinariat-bautzen.de | description =
}}
* {{vCard | name = Michaeliskirche | type = church | wikidata = Q1546343 | lastedit = 2022-12-06 | description = Spätgotische dreischiffige Hallenkirche aus dem 15.{{nnbsp}}Jahrhundert.
}}
* {{vCard | name = Mönchskirche | type = church | wikidata = Q1958015 | lastedit = 2022-12-06 | description = Ehemalige gotische Franziskanerklosterkirche, als Ruine erhalten.
}}
* {{vCard | name = Nikolaikirche | type = church | wikidata = Q2316608 | lastedit = 2022-12-06 | description = Als Ruine erhaltene Kirche aus dem 15.{{nnbsp}}Jahrhundert.
}}
=== Burgen, Schlösser und Paläste ===
* {{vCard | type = castle | name = Ortenburg | wikidata = Q1255971 | description = Große Burganlage, im Kern aus dem 15.{{nnbsp}}Jahrhundert mit reicher Geschichte. }}
=== Bauwerke ===
[[Datei:Reichenturm 101.jpg|miniatur|hochkant=0.8|Reichenturm und -straße]]
* Alte und Neue Wasserkunst (siehe oben)
* Reichenturm (Aussichtsturm und „Schiefer Turm von Bautzen“, siehe oben)
* Kirchen (siehe oben)
* Zahlreiche barocke Bürgerhäuser, unter anderem „Handtuchhaus“
=== Denkmäler ===
* {{vCard|type=memorial |name=Rietschelgiebel-Figuren |address=im Hof der Ortenburg |url=http://www.bautzen.de/tourismus.asp?mid=84&uid=235&iid=517 }}
=== Museen ===
* {{vCard | name = Museum Bautzen | type = museum | wikidata = Q1471331 | url = https://www.museum-bautzen.de | address = Kornmarkt 1 | lat = 51.18033 | long = 14.42682 | phone = +49(0)3591 49850 | fax =+49 (0)3591 498540 | email = museum@bautzen.de | hours = Di-Mi,Fr-So: 10:00-18:00; Do: 10:00-20:00 | price = € 3,50/2,50 (Erw./erm.) | description =
}}
* {{vCard|name=Sorbisches Museum|type=museum|wikidata=Q2303149|url=https://sorbisches-museum.de/|description=|phone=+49(0) 3591 270870-0|email=sekretariat@sorbisches-museum.de|hours=Dienstag bis Sonntag, 10:00 bis 18:00 Uhr.
Montag geschlossen, außer an Feiertagen.
Geschlossen am: 24., 25., 31. Dezember, 01., 02. Januar.
Am 26. Dezember von 13.00 bis 18.00 Uhr geöffnet.|address=Ortenburg 3, 02625 Bautzen|name-local=Serbski muzej}}
* {{vCard | name = Gedenkstätte und Museum | type = museum, memorial | wikidata = Q20828999 | url = http://www.gedenkstaette-bautzen.de/ | description =Gefängnis Bautzen II (der berüchtigte Stasi-Knast) – ist heute ein Museum.
}}
=== Straßen und Plätze ===
* Hauptmarkt mit {{marker|name=Rathaus|wikidata=Q811923| show = copy}} und schönen Bürgerhäusern
* Reichenstraße zwischen Hauptmarkt und Reichenturm
=== Parks ===
=== Verschiedenes ===
== Aktivitäten ==
[[Datei:EvangelischeKirchgangstracht.JPG|miniatur|hochkant=0.8|Kirchgangstracht verheirateter (rechts) und unverheirateter (links) Sorbinnen um Bautzen]]
Bautzen und seine Umgebung sind besonders zur Osterzeit ein beliebtes Reiseziel, da hier die sorbischen und deutschen Osterbräuche, wie zum Beispiel das Osterreiten oder das „Eierschieben“ am Protschenberg noch mit sehr viel Liebe gepflegt werden.
Zu Pfingsten wird auf der Ortenburg jährlich ein Mittelalterlicher Markt mit Ritterspielen u. Ä. veranstaltet. Ebenso im Hof der Ortenburg findet alljährlich der Bautzener Theatersommer statt. Es werden vornehmlich unterhaltsame Theaterstücke unter freiem Himmel aufgeführt.
Natürlich kann man auch den Rest des Jahres viel unternehmen. Vor allem für Naturliebhaber gibt es einiges zu entdecken. Zu erwähnen wäre der Bautzener Stausee, wo man im Sommer baden, Windsurfen usw. kann. Es gibt auch sehr viele schöne Radwege (etwa um den Stausee oder an der Spree entlang).
* {{vCard | name = Geo Trail - Kletterpark und Hochseilgarten | type = ropes course | url = https://www.geo-trail.eu | address = Strandpromenade 8, 02625 Bautzen | directions = am Stausee Bautzen | lat = 51.2061 | long = 14.4668| phone = +49 0179 6742574 | email = info@geo-trail.eu | description =
}}
* {{vCard | name = Minigolf | type = minigolf | address = Strandpromenade 10, 02625 Bautzen | directions = am Stausee Bautzen | lat = 51.2069 | long = 14.4663 | phone = +49 0162 9079949 | email = monstergolf-bautzen@gmx.de | description =
}}
== Einkaufen ==
* {{vCard|type=shop|name=Bautz´ner Senfladen, Manufaktur & Museum |address=Fleischmarkt 5, 02625 Bautzen |phone= +49 (0)3591 597118|url=http://www.bautzener-senfladen.de/|hours=täglich 10:00-19:00, Jan-Mrz bis 17:00 |lat=51.18183 | long=14.42330| lastedit = 2016-10-19 |description=Die Geschichte des Bautz´ner Senf wird in mehreren Vitrinen gezeigt und es gibt eine Senfmühle aus dem letzten Jahrhundert. Senf probieren und kaufen kann man auch.
}}
* {{vCard|type=mall |name=Kornmarkt-Center |address=Kornmarkt 7, 02625 Bautzen |url=https://www.kornmarkt-center.de/ |hours=Mo–Fr 9:30–20:00, Sa 9:30–18:00 |lat=51.17999 |long=14.42545
}}
== Küche ==
=== Günstig ===
* {{vCard|type=restaurant |name=Gaststätte Zur Apotheke |address=Schloßstraße 21, 02625 Bautzen |phone=+49 03591 480035 |email=zur.apotheke@t-online.de |fax=|url=http://www.zur-apotheke-bautzen.de/ |hours=Mai – Okt: Mo ist Ruhetag, Di – So 11.30 – 14.00 Uhr + 17.30 – 23.00 Uhr; Nov – Mai: Mo + Di sind Ruhetage, Mi – Fr 17.30 – 23.00 Uhr, Sa + So 11.30 – 14.00 Uhr + 17.30 – 23.00 Uhr |price=|lat=51.18323 |long=14.42125 |lastedit=|description=
}}
* {{vCard|type=restaurant |name=Restaurant da Roberto |address=Kurt-Pchalek-Straße 18, 02625 Bautzen |phone=+49 03591 5640604 |email=|fax= |url=https://da-roberto-bautzen.xregional.de/ |hours=Do – Di 17.00 – 22.00 Uhr, Mi geschlossen |price=|lat=51.17879 |long=14.42978 |lastedit= |description=Italienisches Restaurant.
}}
=== Mittel ===
* {{vCard|type=restaurant |name=Mönchshof zu Bautzen |address=Burglehn 1, 02625 Bautzen |phone= +49(0)3591 490141 |email=info@moenchshof.de |fax=+49(0)3591 40342 |url=http://www.moenchshof.de/de/start.php |hours= täglich ab 11.00 Uhr |price=|lat=51.18163 |long=14.42113 |lastedit=|description=Deftige Gerichte im Mittelalterlichen Rahmen.
}}
* {{vCard|type=restaurant |name=Gaststätte Zum Karasek |address=Hintere Reichenstraße 2, 02625 Bautzen |phone=+49 03591 45066 |email= |fax=+49 03591 302843 |url=https://www.zum-karasek.de/restaurant-in-bautzen |hours=Di – Sa 11.00 – 23.00 Uhr, So 11.30 – 21.30 Uhr, Mo geschlossen |price= |lat=51.18156 |long=14.42491 |lastedit=|description=
}}
* {{vCard|type=restaurant |name=Restaurant Burghof |address=|phone=+49 03591 531336 |email=info@burghof-ortenburg.de |fax=+49 3591 531815 |url=https://burghof-bautzen.de/ |hours=Mo – Fr 11.00 – 14.00 Uhr + 17.00 – 21.00 Uhr, Sa 11.30 – 22.00 Uhr, So 11.00 – 14.00 Uhr |price=|lat=51.18310 |long=14.41907 |lastedit=|description=
}}
* {{vCard|type=restaurant |name=Zum Zollhaus |address=Äußere Lauenstraße 62, 02625 Bautzen |phone=+49 03591 460237 |email=service@zollhaus-bautzen.de |fax=|url=https://zum-zollhaus-bautzen.de/ |hours=|price=|lat=51.17724 |long=14.42306 |lastedit=|description=Übernachtungsmöglichkeiten vorhanden, da gleichzeitig eine Pension.
}}
* {{vCard|type=restaurant |name=Mythos |address=Hauensteingasse 1, 02625 Bautzen |phone=+49 03591 270757 |email=info@mythos-bautzen.de |fax=|url=https://www.mythos-bautzen.de/index.html |hours=Mo, Mi, Do 17.00 – 23.00 Uhr, Fr – So 11.30 – 14.30 Uhr + 17.30 – 23.30 Uhr, Di geschlossen |price=|lat=51.18178 |long=14.42624 |lastedit=|description=Griechisches Restaurant.
}}
* {{vCard|type=restaurant |name=Winter's Steakhouse |address=Dresdener Str. 50, 02625 Bautzen |phone=+49 03591 464057 |email=|fax= |url=http://www.winterssteakhouse.de/media/files/Speisekarte.pdf |hours=Fr – Mi 11.30 – 14.00 Uhr + 17.00 – 22.00 Uhr, Do geschlossen |price=|lat=51.17963 |long=14.40859 |lastedit=|description=
}}
* {{vCard|type=restaurant |name=Restaurante Truffle Bautzen |address=Kurt-Pchalek-Straße 1, 02625 Bautzen |phone=+49 03591 5984130 |email=zum-haseneck@gmx.de |url=https://www.truffle-bautzen.de/ |hours=Di-So 12:00-14:30 und 17:00-21:00 |lat=51.1809|long=14.4304 |lastedit=2026-04-16 |description=
}}
* {{vCard | name = Ocean Beach Bar | type = restaurant | url = https://www.beachbar-bautzen.de | address = Strandpromenade 5 02625 Bautzen | lat = 51.20616023030272 | long = 14.465022713859508 | phone = +49 0152 31715367 | email = beachbar-bautzen@gmx.de | description =
}}
=== Gehoben ===
* {{vCard|type=restaurant |name=Gaststätte Zum Karasek |address=Hintere Reichenstraße 2, 02625 Bautzen |phone=+49 03591 45066 |email= |fax=+49 03591 302843 |url=https://www.zum-karasek.de/restaurant-in-bautzen |hours=Di – Sa 11.00 – 23.00 Uhr, So 11.30 – 21.30 Uhr, Mo geschlossen |price= |lat=51.18156 |long=14.42491 |lastedit=|description=
}}
* {{vCard|type=restaurant |name=Restaurant Culinarium |address=Große Brüdergasse 10, 02625 Bautzen |phone=+49 03591 2704949 |email=info@culinarium-bautzen.de |fax=+49 03591 2704950 |url=https://culinarium-bautzen.de/ |hours=Di – Fr 11.30 – 14.00 Uhr + 17.00 – 22.00 Uhr, Sa 17.00 – 23.00 Uhr, So + Mo sind Ruhetage |price=|lat=51.18229 |long=14.42222 |lastedit=|description=
}}
== Nachtleben ==
=== Theater ===
* {{vCard|type=theater |name=Deutsch-Sorbisches Volkstheater |address=Seminarstraße 12, 02625 Bautzen |phone=+49 03591 5840 |email=|fax= |url=https://www.theater-bautzen.de/ |hours=|price=|lat=51.17766 |long=14.42483 |lastedit= |description=
}}
* {{vCard|type=theater |name=Burgtheater |address=Ortenburg 7, 02625 Bautzen |phone=+49 03591 584274 |email=|fax=|url=|hours=|price= |lat=51.18312 |long=14.42021 |lastedit=|description=
}}
=== Kneipen & Sonstiges ===
* Altstadt:
** {{vCard|type=bar |name=Sam's Bar |address=Fleischmarkt 4, 02625 Bautzen |phone=+49 03591 3818435 |email=sams.bar@hotmail.de |fax= |url=https://www.sams-bar.de/ |hours=Mi – Mo 19.00 – 2.00 Uhr, Di geschlossen |price=|lat=51.18193 |long=14.42437 |lastedit=|description=
}}
** La Bodega
** Schloss Schänke
** {{vCard|type=bar |name=Bar-Caracas |address=Schloßstraße 7, 02625 Bautzen |phone=+49 03591 530050 |email=|fax=|url=|hours=Di – Do 19.00 – 0.00 Uhr, Fr + Sa 19.00 – 2.00 Uhr, So + Mo geschlossen |price=|lat=51.18295 |long=14.42203 |lastedit=|description=
}}
** Alte Räucherei
** Bierakademie
* Weiteres Stadtgebiet:
** {{vCard|type=brewery |name=Bautzener Brauhaus |address=Thomas-Mann-Straße 7, 02625 Bautzen |phone=+49 03591 491456 |email=|fax= |url=https://www.bautzener.de/brauhaus |hours=Di – Fr 17.00 – 22.00 Uhr, Sa + So 14.00 – 22.00 Uhr, Mo geschlossen |price=|lat=51.17975 |long=14.43975 |lastedit=|description=
}}
'''Für die Jugend''':
* {{vCard|type=youth center |name=Steinhaus Bautzen |address=Steinstraße 37, 02625 Bautzen |phone=+49 03591 5319966 |email=steinhaus@steinhaus-bautzen.de |fax=+49 03591 5319967 |url=http://www.steinhaus-bautzen.de/start/ |hours=Mo – Fr 9.00 – 18.00 Uhr |price= |lat=51.18157 |long=14.43177 |lastedit=|description=
}}
== Unterkunft ==
=== Günstig ===
* {{vCard | name = DJH-Jugendherberge Bautzen "Gerberbastei" | type = youth hostel | url = https://www.jugendherberge-sachsen.de/jugendherbergen/bautzen-gerberbastei-45/portraet/ | address = Am Zwinger 1, 02625 Bautzen | lat = 51.18348840514818 | long = 14.424639635510928 | phone = +49 (0)3591 40347 | fax = +49 (0)3591 40348 | email = bautzen@jugendherberge.de | hours = ganzjährig (außer an Weihnachten) | checkin = 17:00-20:00 | checkout = bis 10:00 | price = ab 25,- €/ÜF (nur für DJH-Mitglieder) | subtype = wheelchair, wlan | lastedit = 2021-04-09 | description = Jugendherberge mit 115 Betten im historischen Zentrum von Bautzen in einem Wehrturm sowie in zwei Bürgerhäusern. Sie ist Teil der mittelalterlichen Stadtbefestigung.
}}
* {{vCard|type = hotel | name=Hotel „Alte Gerberei“| address=Uferweg 1| directions=weitere Innenstadt |lat=51.18028 |long=14.41999 | phone=+49 (0)3591 272390| fax=+49 (0)3591 2723921| email=info@hotel-alte-gerberei.de| url=https://www.hotel-alte-gerberei.de/| price=EZ ab 54 €, DZ ab 74 €
}}
* {{vCard| type = boarding house | name=Pension Stadtwall Bautzen| address=Flinzstr. 4A| directions=weitere Innenstadt |lat=51.18409 |long=14.43442 | phone=+49 (0)3591 44848| fax=+49 (0)3591 460090| email=info@pension-stadtwall.de| url=https://www.pension-stadtwall.de/| price=EZ ab 31 €, DZ ab 43 €
}}
* {{vCard| type = boarding house | name=Spreepension Bautzen| address=Fischergasse 6| directions=weitere Innenstadt |lat=51.17921 |long=14.42132 | phone=+49 (0)3591 48960| fax=+49 03591 489644| email=Frenzel.pension@t-online.de| url=https://www.spree-pension.de/| price=EZ ab 36 €, DZ ab 58 €
}}
* {{vCard | name = Haus Buchheim | alt = Pension „Am Schloss“ | type = boarding house, hotel garni | url = http://www.pension-am-schloss-bautzen.de/ | address = Schlossstr. 11, 02625 Bautzen | directions = innerer Altstadtkern | lat = 51.18309 | long = 14.42172 | phone = +49 (0)3591 4640499 | fax = +49 (0)3591 4640505 | email = info@pension-am-schloss-bautzen.de | price = EZ ab 55,- €/ÜF, DZ ab 74,- €/ÜF | subtype = 3, free parking | lastedit = 2021-04-09 | description = Pension im Zeitraum von 1664 bis 1709 erbauten Geburtshaus von Prof. Rudolf Buchheim (1820-1879), einem berühmten Sohn der Stadt Bautzen. }}
* {{vCard| type = boarding house | name=Pension „Stephan“| address=Schlossstr. 1| directions=innerer Altstadtkern| phone=+49 (0)3591 47590| fax=+49 (0)3591 47591| email=Pension.Stephan@t-online.de | url=http://www.pensionstephan-bautzen.de/| price=p.P. inkl. Frühstück: EZ 45 €, DZ 35 €
}}
=== Mittel ===
* {{vCard| type = boarding house | name=Pension „Dom-Eck“| address=Breitengasse 2| directions=innerer Altstadtkern |lat=51.18279 |long=14.42461 | phone=+49 (0)3591 501330| fax=+49 (0)3591 501334| email=info@wjelbik.de| url=https://www.wjelbik.de/| price=EZ 52-57 €, DZ 62-72 €
}}
* {{vCard| type = boarding house | name=Pension „Schloss-Schänke“| address=Burgplatz 5, 02625 Bautzen | directions=innerer Altstadtkern |lat=51.18261 |long=14.42101 | phone=+49 (0)3591 304990| fax=+49 (0)3591 490198| email=info@schloss-schaenke.net| url=https://www.schloss-schaenke.net/| price=EZ ab 55 €, DZ ab 69 €
}}
* {{vCard | name = Best Western Plus Hotel Bautzen | type = hotel, bar, restaurant | url = https://www.bwbautzen.de/ | address = Wendischer Graben 20, 02625 Bautzen | directions = in der weiteren Innenstadt | lat = 51.18137 | long = 14.42837 | phone = +49 (0)3591 492-0 | fax = +49 (0)3591 492100 | email = info@hotel-bautzen.bestwestern.de | subtype = 4, free wlan, parking, bicycle stand, conference, spa | lastedit = 2021-04-09 | description = Hotel mit 157 Zimmern auf 6 Etagen.
}}
* {{vCard|type=hotel |name=Hotel Villa Antonia |address=Lessingstrasse 1, 02625 Bautzen |phone=+49 03591 460888 |email=info@hotel-villa-antonia.de |fax=|url=https://www.hotel-villa-antonia.de/de/start.php |hours=|price=DZ ab 71 € |lat=51.17830 |long=14.43440 |lastedit=|description=Zum Hotel gehört das Restaurant Tiroler Stuben.
}}
=== Gehoben ===
* {{vCard | name = Hotel „Goldener Adler“ | type = hotel garni | url = https://goldeneradlerbautzen.de/startseite | address = Hauptmarkt 4, 02625 Bautzen | directions = innerer Altstadtkern | lat = 51.18153 | long = 14.42342 | phone = +49 (0)3591 48660 | fax =+49 (0)3591 486620 | email = kontakt@goldeneradler.de | price = DZ ab 89,- €/Ü | subtype = 4, free wlan | lastedit = 2021-04-09 | description = Tradition seit 1540.
}}
=== Campingplatz & Caravanstellplatz ===
* {{vCard|name=Natur- und Abenteuercamping am Stausee Bautzen|type=caravan site|url=https://www.camping-bautzen.de|address=Nimschützer Straße 41, 02625 Bautzen - Burk|lat=51.20250573158631|long=14.460056611805268|phone=+49 03591 271267|email=camping-bautzen@web.de|description=
}}
* {{vCard | name = Wohnmobilstellplatz Bautzen | alt = Parkplatz Schliebenstraße | type = caravan site | url = http://www.bautzen.de | address = Schliebenstraße 24, 02625 Bautzen | lat = 51.181939247125364 | long = 14.414905252261146 | description = 4 Wohnmobilstellplätze.
}}
== Lernen ==
In Bautzen befindet sich neben sechs Grundschulen, vier Mittelschulen, fünf Gymnasien und drei Förderschulen auch die ''Duale Hochschule Sachsen – Staatliche Studienakademie Bautzen''.
== Sicherheit ==
* {{vCard|type=police |name=Polizeirevier |address=Taucherstraße 38, 02625 Bautzen |phone=+49 03591 3560 |lat=51.17433 |long=14.43027
}}
== Gesundheit ==
=== Krankenhaus ===
* {{vCard|type=hospital |name=Oberlausitz-Kliniken GmbH |address=Am Stadtwall 3, 02625 Bautzen |phone=+49 03591 3630 |email=|fax=+49 03591 3632455 |url=https://www.oberlausitz-kliniken.de/ |hours=|price=|lat=51.18463 |long=14.43206 |lastedit=|description=
}}
== Praktische Hinweise ==
* {{vCard | type=tourist information | name=Tourist-Information Bautzen-Budyšin | address=Hauptmarkt 1, 02625 Bautzen | phone=+49 (0)3591 42016 | email=touristinfo@bautzen.de | fax=+49 (0)3591 327629 | url=https://www.bautzen.de/tourismus-kultur-freizeit/tourist-information/ | hours=Apr-Okt: Mo-Fr 9:00-18:00, Sa+So+Feiertag 9:00-15:00, Nov-Mar: 10:00-17:00, Sa+Advents-Sonntage 10:00-14:00 | lat= 51.18168 | long=14.42419 | lastedit=2021-04-09
}}
== Ausflüge ==
'''Interessante Orte:'''
* '''[[Kleinwelka]]''' (5 km nordwestlich, B 96) – Saurierpark, Irrgarten, Miniaturenpark.
* '''[[Neschwitz]]''' (14 km nordwestlich, B 96 über Kleinwelka) – Schloss und Park.
* '''[[Bischofswerda]]''' (20 km westlich, B 6) – Stadt an der Wesenitz; „Schiebocker Tage“.
* '''[[Löbau]]''' (20 km südöstlich, B 6) – König-Friedrich-August-Turm.
'''Weitere Ziele:'''
* Der [[Muskauer Heide#Weitere Ziele|Findlingspark Nochten]] wurde am ehemaligen Tagebau Nochten errichtet. Der Park bietet auf 17 Hektar blühende Heidemore und -dünen mit ca. 3000 Findlingen.
== Literatur ==
* Joachim Meffert: ''Die Ortenburg in Bautzen – Der archäologische Forschungsstand und die Ausgrabungen von 1999–2001. Arbeits- und Forschungsberichte zur sächsischen Bodendenkmalpflege 44, 2002, 75–177''.
* Karin Sczech: ''Archäologische Untersuchungen zu Bautzen in der Oberlausitz in slawischer Zeit. Archäologische Forschungen am GWZO. Berichte und Beiträge des Geisteswissenschaftlichen Zentrums Geschichte und Kultur Ostmitteleuropas e. V. 2003, 49–64.''
* Grit Richter-Laugwitz: ''Der 17. Juni 1953 in Bautzen'', hrsg. vom Stadtarchiv Bautzen, Bautzen 2004, {{ISBN|3-936758-04-2}}
* Andreas Bensch: ''Chronologie der Stadt Bautzen 1002–2001'', Bautzen 2001, {{ISBN|3-930625-31-8}}
* Christine Seele und Jürgen Matschie: ''Bautzen und seine Kirchen. Ein kleiner ökumenischer Kirchenführer'', Leipzig 1996, {{ISBN|3-7462-1118-2}}
* ''Deutscher Städteatlas''; Band: IV; 3 Teilband. Acta Collegii Historiae Urbanae Societatis Historicorum Internationalis – Serie C. Im Auftrag des Kuratoriums für vergleichende Städtegeschichte e. V. und mit Unterstützung der Deutschen Forschungsgemeinschaft, hrsg. von Heinz Stoob †, Wilfried Ehbrecht, Jürgen Lafrenz und Peter Johannek. Stadtmappe Bautzen, Autor: Karlheinz Blaschke, {{ISBN|3-89115-033-4}}; Dortmund-Altenbeken 1989.
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 51.18139| long= 14.42389| radius= 2000}}
{{IstInKat|Zentrale Oberlausitz}}
{{class-3}}
kkzgcgdatttxb5qjygtlbnq7uzlbtl5
1769024
1769017
2026-04-16T14:38:20Z
Eduard47
17518
/* Museen */ Geänderte vCard für Sorbisches Museum
1769024
wikitext
text/x-wiki
{{Quickbar Ort
| Bild= [[Datei:City Bautzen Germany 104.JPG|300px|Blick auf die Altstadt von der Friedensbrücke aus. Im Vordergrund das sogenannte Hexenhäuschen (vor 1604). In der Mitte die Mönchsbastei (1324) an der Mühltorgasse. Im Hintergrund der Wasserturm (1877) in der Mönchskirchenruine, der Dom St. Petri (1213/1221) und der Rathausturm (1213/1705).]]
| TouriInfoWeb=http://www.bautzen.de/tourismus.asp
| TouriInfoTel=+49 3591 42016
}}{{ZdM|Datum=2022-03|Art=Abseits}}
'''Bautzen''' (sorbisch '''Budyšin''') ist eine über tausendjährige Stadt in der [[Oberlausitz]] und gilt als die Hauptstadt der Sorben. Sie besitzt eine sehr gut erhaltene bzw. restaurierte Altstadt inkl. Kneipenszene. Daneben ist Bautzen überregional für seinen Senf sowie als Standort des "Stasi-Knasts" Bautzen II bekannt.
== Hintergrund ==
{{Mapframe|51.1816|14.4238|zoom=15|type=geoline}}
Bautzen, ursprünglich eine slawische Niederlassung ''Budissin'', erscheint schon um 1004, wo es vom König Heinrich II. erobert wurde, als befestigte Stadt. Zur Hebung derselben trug der Ruf einer Reliquie bei, eines Arms von St. Petrus. Hier wurde 1018 der Friede zwischen dem Polenherzog Boleslaw und Kaiser Heinrich II. und 1350 der Vertrag zwischen Karl IV. und Ludwig von Brandenburg geschlossen, wodurch Ludwig seinen Ansprüchen auf die Niederlausitz entsagte, aber Brandenburg verbürgt erhielt. Im Hussitenkrieg litt Bautzen viel, schlug aber 1431 einen Sturm ab. Im Dreißigjährigen Krieg nahm es Kurfürst Georg 1620 nach vierwöchiger Belagerung ein; 1633 wurde es von Wallenstein erobert, und am 4. Mai 1634 brannte es der vom Kurfürsten von Sachsen belagerte kaiserliche Oberst v. Goltz nieder, bevor er sich ergab. Im Jahre 1813 wurde Bautzen berühmt durch die Schlacht vom 20. und 21. Mai, in der die Armeen Napoléons gegen die Verbündeten Russland und Preußen kämpften.
== Anreise ==
{{quickbar table begin|width: 200px;}}
{{quickbar header|Entfernungen}}
{{quickbar item|heading=[[Cottbus]]|value=80 km}}
{{quickbar item|heading=[[Liberec]]|value=72 km}}
{{quickbar item|heading=[[Dresden]]|value=63 km}}
{{quickbar item|heading=[[Görlitz]]|value=48 km}}
{{quickbar item|heading=[[Zittau]]|value=46 km}}
{{quickbar item|heading=[[Hoyerswerda]]|value=36 km}}
{{quickbar table end}}
=== Mit dem Flugzeug ===
Der nächste Verkehrsflughafen ist der {{Marker |type=airport |name=Flughafen Dresden-Klotzsche |wikidata=Q657005}}. Nach der Ankunft fährt man entweder mit dem Auto ca. 50 km über die A 4 Richtung Görlitz oder mit der S-Bahn oder dem Bus 80 zum Bahnhof Dresden-Klotzsche und dort mit dem Zug (RE 1 oder RB 60) nach Bautzen.
Der ehemalige Militärflughafen Litten in unmittelbarer Nähe der Stadt Bautzen wird von Sportflugzeugen und für Veranstaltungen wie das „VW-Pfingsttreffen“ oder die „Flugtage Bautzen“ („Flugtage Litten“) genutzt.
=== Mit der Bahn ===
Mit dem Regionalexpress von Dresden Hauptbahnhof oder Görlitz bis Bahnhof Bautzen. Der {{Marker|type=train|name=Bahnhof|wikidata=Q320740}} liegt anderthalb Kilometer südlich des Zentrums; entsprechend ist es dann zu Fuß 10 bis 15 Minuten in die Altstadt.
=== Mit dem Bus ===
Aufgrund seiner Lage an der Ost-West-Magistrale A 4 ist Bautzen Haltepunkt zahlreicher Buslinien aus verschiedenen Teilen Deutschlands auf dem Weg Richtung Tschechien. Es gibt mehrere Fernbushalte. Dies ist zum Einen ein {{Marker|type=bus|name=Halt|lat=51.1740 | long=14.4285}} am Bahnhof, zum Anderen ein Halt an der Ausfallstrasse Richtung Autobahn ({{Marker|type=bus|name=Flixbushalt|lat=51.1817 | long=14.4150}})
=== Auf der Straße ===
Bautzen liegt an der Bundesautobahn {{RSIGN|DE|A|4|Bundesautobahn 4|40}} und damit an einer großen Ost-West-Achse. Die Stadt ist dadurch u.{{nnbsp}}a. von Dresden her aus dem Westen und von Görlitz aus dem Osten schnell und bequem zu erreichen. Von Norden reist man am besten über die Bundesstraßen {{RSIGN|DE|B|96}} oder {{RSIGN|DE|B|156}} an.
== Mobilität ==
Die Sehenswürdigkeiten der Altstadt von Bautzen liegen dicht beieinander und sind leicht zu Fuß zu erreichen. Bautzen verfügt mittlerweile auch über ein gut ausgebautes Netz von Radwegen. Es gibt zudem mehrere Stadtbus-Linien.
== Sehenswürdigkeiten ==
=== Türme und Basteien ===
Bautzen wird mit Recht auch als Türme-Stadt bezeichnet. Mehr als 20 Türme und Basteien zieren die Stadtsilhouette. Die insgesamt 17 Türme und Basteien der Altstadt machen dabei die mehr als 1000jährige Stadtgeschichte erlebbar.
* {{vCard | name = Alte Wasserkunst | type = tower, museum, technical monument | wikidata = Q436381 | hours = Jan.: Sa,So 10:00-16:00, Feb,Mar,Nov,Dez: tägl. 10:00-16:00, Apr-Okt tägl. 10:00-17:00 | price = Erw. 3,50 €, Schüler, Studenten, Schwerbeschädigte 2,- €, Kinder (bis 14 J.) 1,50 € | lastedit = 2022-03-12 | description = Markanter Blickfang in der Stadtansicht. Die Alte Wasserkunst diente früher der Wasserversorgung der Stadt. An der Stelle eines hölzernen Vorbaus von 1495/96 wurde die Alte Wasserkunst in der heutigen Form im Jahre 1558 erbaut. Der steinerne, siebengeschossige, 47 m hohe Rundturm diente gleichzeitig als Teil der Stadtbefestigung. 1965 wurde die Wasserkunst stillgelegt und dient heute als technisches Museum. Das denkmalgeschützte Bauwerk kann heute besichtigt werden und bietet außer dem Maschinenhaus auch eine Aussichtsplattform, die vom Keller über 184 Stufen erreichbar ist und einen sehr guten Blick auf die Dächer von Bautzen und das Lausitzer Bergland bietet. Außerdem geben wechselnde Ausstellungen von Mai bis Oktober, über zwei Ebenen im Turminneren, interessante Einblicke in die regionale Kunstszene.
}}
* {{vCard | type = tower | name = Alter Wasserturm | address = Mönchsgasse 4 | lat = 51.181943 | long = 14.421569 | description = Wasserturm unmittelbar an der Ruine der Mönchskirche }}
* {{vCard | type = tower | name = Burgwasserturm | address = Osterweg | lat = 51.182678 | long = 14.419012 }}
* {{vCard | type = tower | name = Gerberbastei | wikidata = Q1510314 | description = Sitz der Jugendherberge Bautzen. }}
* {{vCard | type = tower | name = Lauenturm | address = Innere Lauenstraße | wikidata = Q1807352 | description = Turm mit charakteristischer barocker Haube. }}
* {{vCard | type = tower | name = Matthiasturm | address = Schloßgraben | wikidata = Q44401596 | description = Turm der Ortenburg (siehe unten). }}
* {{vCard | type = tower | name = Mühlbastei | wikidata = Q1407655 | description = }}
* {{vCard | type = tower | name = Mühltor | wikidata = Q1266942 | description = }}
* {{vCard | type = tower | name = Neue Wasserkunst | wikidata = Q975040 | description = Auffälliger Turm mit Kuppelhaube aus dem 17. Jahrhundert. }}
* {{vCard | type = tower | name = Nicolaiturm | address = Nicolaipforte 3 | wikidata = Q1986328 | description = Turm der Stadtbefestigung bei der ehemaligen Nikolaikirche. }}
* {{vCard | type = tower | name = Rathausturm | address = Fleischmarkt 1 | wikidata = Q811923 | description = Barocker Turmaufsatz eines im Kern gotischen Turms des Rathauses in Bautzen. }}
* {{vCard | type = tower | name = Reichenturm | wikidata = Q1265032 | description = Schiefer Turm von Bautzen, prägt mit seinem charakteristischen Turmaufsatz die Stadtansicht. }}
* {{vCard | type = tower | name = Röhrscheidtbastei | wikidata = Q1520228 | description = }}
* {{vCard | type = tower | name = Schülerturm | wikidata = Q2259727 | description = }}
* {{vCard | type = tower | name = Turm der Berufsakademie | address = Löbauer Str. 1 | wikidata = Q828763 | description = }}
* {{vCard | type = tower | name = Wendischer Turm | wikidata = Q1382745 | description = }}
Alle Informationen zur Türme-Stadt Bautzen findet man unter: http://bautzen.info/tuerme-stadt/ .
=== Kirchen ===
* {{vCard | type = cathedral | name = Dom St. Petri | url = https://www.st-petri-bautzen.de/ | wikidata = Q317346 | description = Ostdeutschlands einzige Simultankirche (sowohl römisch-katholisch als auch evangelisch-lutherisch) ist eine spätgotische Hallenkirche mit dem höchsten Turm in Bautzen, auffälligem Knick in der Längsachse und schönen Maßwerkfenstern. (Über den Eingang auf der Westseite ist eine Turmbesteigung mit Blick auf Bautzen und Umgebung möglich.)
}}
* {{vCard | name = Domstift mit Domschatzkammer | type = church | wikidata = Q70366431 | url = http://www.kirchliche-museen.org/museen/profil.php?museum=4 | phone = +49 03591 35 19 50 | fax = +49 03591 35 19 522 | email = archiv@ordinariat-bautzen.de | description =
}}
* {{vCard | name = Michaeliskirche | type = church | wikidata = Q1546343 | lastedit = 2022-12-06 | description = Spätgotische dreischiffige Hallenkirche aus dem 15.{{nnbsp}}Jahrhundert.
}}
* {{vCard | name = Mönchskirche | type = church | wikidata = Q1958015 | lastedit = 2022-12-06 | description = Ehemalige gotische Franziskanerklosterkirche, als Ruine erhalten.
}}
* {{vCard | name = Nikolaikirche | type = church | wikidata = Q2316608 | lastedit = 2022-12-06 | description = Als Ruine erhaltene Kirche aus dem 15.{{nnbsp}}Jahrhundert.
}}
=== Burgen, Schlösser und Paläste ===
* {{vCard | type = castle | name = Ortenburg | wikidata = Q1255971 | description = Große Burganlage, im Kern aus dem 15.{{nnbsp}}Jahrhundert mit reicher Geschichte. }}
=== Bauwerke ===
[[Datei:Reichenturm 101.jpg|miniatur|hochkant=0.8|Reichenturm und -straße]]
* Alte und Neue Wasserkunst (siehe oben)
* Reichenturm (Aussichtsturm und „Schiefer Turm von Bautzen“, siehe oben)
* Kirchen (siehe oben)
* Zahlreiche barocke Bürgerhäuser, unter anderem „Handtuchhaus“
=== Denkmäler ===
* {{vCard|type=memorial |name=Rietschelgiebel-Figuren |address=im Hof der Ortenburg |url=http://www.bautzen.de/tourismus.asp?mid=84&uid=235&iid=517 }}
=== Museen ===
* {{vCard | name = Museum Bautzen | type = museum | wikidata = Q1471331 | url = https://www.museum-bautzen.de | address = Kornmarkt 1 | lat = 51.18033 | long = 14.42682 | phone = +49(0)3591 49850 | fax =+49 (0)3591 498540 | email = museum@bautzen.de | hours = Di-Mi,Fr-So: 10:00-18:00; Do: 10:00-20:00 | price = € 3,50/2,50 (Erw./erm.) | description =
}}
* {{vCard | name = Sorbisches Museum | name-local = Serbski muzej | type = museum | wikidata = Q2303149 | hours = Di-So 10:00-18:00 | price = Erw. 5,00 €, erm. 2,50 € (ab 6{{nnbsp}}J, Schüler, Studenten und Azubis, Schwerbehinderte, Wehrpflichtige und Zivildienstleistende) | lastedit = 2026-04-16
}}
* {{vCard | name = Gedenkstätte und Museum | type = museum, memorial | wikidata = Q20828999 | url = http://www.gedenkstaette-bautzen.de/ | description =Gefängnis Bautzen II (der berüchtigte Stasi-Knast) – ist heute ein Museum.
}}
=== Straßen und Plätze ===
* Hauptmarkt mit {{marker|name=Rathaus|wikidata=Q811923| show = copy}} und schönen Bürgerhäusern
* Reichenstraße zwischen Hauptmarkt und Reichenturm
=== Parks ===
=== Verschiedenes ===
== Aktivitäten ==
[[Datei:EvangelischeKirchgangstracht.JPG|miniatur|hochkant=0.8|Kirchgangstracht verheirateter (rechts) und unverheirateter (links) Sorbinnen um Bautzen]]
Bautzen und seine Umgebung sind besonders zur Osterzeit ein beliebtes Reiseziel, da hier die sorbischen und deutschen Osterbräuche, wie zum Beispiel das Osterreiten oder das „Eierschieben“ am Protschenberg noch mit sehr viel Liebe gepflegt werden.
Zu Pfingsten wird auf der Ortenburg jährlich ein Mittelalterlicher Markt mit Ritterspielen u. Ä. veranstaltet. Ebenso im Hof der Ortenburg findet alljährlich der Bautzener Theatersommer statt. Es werden vornehmlich unterhaltsame Theaterstücke unter freiem Himmel aufgeführt.
Natürlich kann man auch den Rest des Jahres viel unternehmen. Vor allem für Naturliebhaber gibt es einiges zu entdecken. Zu erwähnen wäre der Bautzener Stausee, wo man im Sommer baden, Windsurfen usw. kann. Es gibt auch sehr viele schöne Radwege (etwa um den Stausee oder an der Spree entlang).
* {{vCard | name = Geo Trail - Kletterpark und Hochseilgarten | type = ropes course | url = https://www.geo-trail.eu | address = Strandpromenade 8, 02625 Bautzen | directions = am Stausee Bautzen | lat = 51.2061 | long = 14.4668| phone = +49 0179 6742574 | email = info@geo-trail.eu | description =
}}
* {{vCard | name = Minigolf | type = minigolf | address = Strandpromenade 10, 02625 Bautzen | directions = am Stausee Bautzen | lat = 51.2069 | long = 14.4663 | phone = +49 0162 9079949 | email = monstergolf-bautzen@gmx.de | description =
}}
== Einkaufen ==
* {{vCard|type=shop|name=Bautz´ner Senfladen, Manufaktur & Museum |address=Fleischmarkt 5, 02625 Bautzen |phone= +49 (0)3591 597118|url=http://www.bautzener-senfladen.de/|hours=täglich 10:00-19:00, Jan-Mrz bis 17:00 |lat=51.18183 | long=14.42330| lastedit = 2016-10-19 |description=Die Geschichte des Bautz´ner Senf wird in mehreren Vitrinen gezeigt und es gibt eine Senfmühle aus dem letzten Jahrhundert. Senf probieren und kaufen kann man auch.
}}
* {{vCard|type=mall |name=Kornmarkt-Center |address=Kornmarkt 7, 02625 Bautzen |url=https://www.kornmarkt-center.de/ |hours=Mo–Fr 9:30–20:00, Sa 9:30–18:00 |lat=51.17999 |long=14.42545
}}
== Küche ==
=== Günstig ===
* {{vCard|type=restaurant |name=Gaststätte Zur Apotheke |address=Schloßstraße 21, 02625 Bautzen |phone=+49 03591 480035 |email=zur.apotheke@t-online.de |fax=|url=http://www.zur-apotheke-bautzen.de/ |hours=Mai – Okt: Mo ist Ruhetag, Di – So 11.30 – 14.00 Uhr + 17.30 – 23.00 Uhr; Nov – Mai: Mo + Di sind Ruhetage, Mi – Fr 17.30 – 23.00 Uhr, Sa + So 11.30 – 14.00 Uhr + 17.30 – 23.00 Uhr |price=|lat=51.18323 |long=14.42125 |lastedit=|description=
}}
* {{vCard|type=restaurant |name=Restaurant da Roberto |address=Kurt-Pchalek-Straße 18, 02625 Bautzen |phone=+49 03591 5640604 |email=|fax= |url=https://da-roberto-bautzen.xregional.de/ |hours=Do – Di 17.00 – 22.00 Uhr, Mi geschlossen |price=|lat=51.17879 |long=14.42978 |lastedit= |description=Italienisches Restaurant.
}}
=== Mittel ===
* {{vCard|type=restaurant |name=Mönchshof zu Bautzen |address=Burglehn 1, 02625 Bautzen |phone= +49(0)3591 490141 |email=info@moenchshof.de |fax=+49(0)3591 40342 |url=http://www.moenchshof.de/de/start.php |hours= täglich ab 11.00 Uhr |price=|lat=51.18163 |long=14.42113 |lastedit=|description=Deftige Gerichte im Mittelalterlichen Rahmen.
}}
* {{vCard|type=restaurant |name=Gaststätte Zum Karasek |address=Hintere Reichenstraße 2, 02625 Bautzen |phone=+49 03591 45066 |email= |fax=+49 03591 302843 |url=https://www.zum-karasek.de/restaurant-in-bautzen |hours=Di – Sa 11.00 – 23.00 Uhr, So 11.30 – 21.30 Uhr, Mo geschlossen |price= |lat=51.18156 |long=14.42491 |lastedit=|description=
}}
* {{vCard|type=restaurant |name=Restaurant Burghof |address=|phone=+49 03591 531336 |email=info@burghof-ortenburg.de |fax=+49 3591 531815 |url=https://burghof-bautzen.de/ |hours=Mo – Fr 11.00 – 14.00 Uhr + 17.00 – 21.00 Uhr, Sa 11.30 – 22.00 Uhr, So 11.00 – 14.00 Uhr |price=|lat=51.18310 |long=14.41907 |lastedit=|description=
}}
* {{vCard|type=restaurant |name=Zum Zollhaus |address=Äußere Lauenstraße 62, 02625 Bautzen |phone=+49 03591 460237 |email=service@zollhaus-bautzen.de |fax=|url=https://zum-zollhaus-bautzen.de/ |hours=|price=|lat=51.17724 |long=14.42306 |lastedit=|description=Übernachtungsmöglichkeiten vorhanden, da gleichzeitig eine Pension.
}}
* {{vCard|type=restaurant |name=Mythos |address=Hauensteingasse 1, 02625 Bautzen |phone=+49 03591 270757 |email=info@mythos-bautzen.de |fax=|url=https://www.mythos-bautzen.de/index.html |hours=Mo, Mi, Do 17.00 – 23.00 Uhr, Fr – So 11.30 – 14.30 Uhr + 17.30 – 23.30 Uhr, Di geschlossen |price=|lat=51.18178 |long=14.42624 |lastedit=|description=Griechisches Restaurant.
}}
* {{vCard|type=restaurant |name=Winter's Steakhouse |address=Dresdener Str. 50, 02625 Bautzen |phone=+49 03591 464057 |email=|fax= |url=http://www.winterssteakhouse.de/media/files/Speisekarte.pdf |hours=Fr – Mi 11.30 – 14.00 Uhr + 17.00 – 22.00 Uhr, Do geschlossen |price=|lat=51.17963 |long=14.40859 |lastedit=|description=
}}
* {{vCard|type=restaurant |name=Restaurante Truffle Bautzen |address=Kurt-Pchalek-Straße 1, 02625 Bautzen |phone=+49 03591 5984130 |email=zum-haseneck@gmx.de |url=https://www.truffle-bautzen.de/ |hours=Di-So 12:00-14:30 und 17:00-21:00 |lat=51.1809|long=14.4304 |lastedit=2026-04-16 |description=
}}
* {{vCard | name = Ocean Beach Bar | type = restaurant | url = https://www.beachbar-bautzen.de | address = Strandpromenade 5 02625 Bautzen | lat = 51.20616023030272 | long = 14.465022713859508 | phone = +49 0152 31715367 | email = beachbar-bautzen@gmx.de | description =
}}
=== Gehoben ===
* {{vCard|type=restaurant |name=Gaststätte Zum Karasek |address=Hintere Reichenstraße 2, 02625 Bautzen |phone=+49 03591 45066 |email= |fax=+49 03591 302843 |url=https://www.zum-karasek.de/restaurant-in-bautzen |hours=Di – Sa 11.00 – 23.00 Uhr, So 11.30 – 21.30 Uhr, Mo geschlossen |price= |lat=51.18156 |long=14.42491 |lastedit=|description=
}}
* {{vCard|type=restaurant |name=Restaurant Culinarium |address=Große Brüdergasse 10, 02625 Bautzen |phone=+49 03591 2704949 |email=info@culinarium-bautzen.de |fax=+49 03591 2704950 |url=https://culinarium-bautzen.de/ |hours=Di – Fr 11.30 – 14.00 Uhr + 17.00 – 22.00 Uhr, Sa 17.00 – 23.00 Uhr, So + Mo sind Ruhetage |price=|lat=51.18229 |long=14.42222 |lastedit=|description=
}}
== Nachtleben ==
=== Theater ===
* {{vCard|type=theater |name=Deutsch-Sorbisches Volkstheater |address=Seminarstraße 12, 02625 Bautzen |phone=+49 03591 5840 |email=|fax= |url=https://www.theater-bautzen.de/ |hours=|price=|lat=51.17766 |long=14.42483 |lastedit= |description=
}}
* {{vCard|type=theater |name=Burgtheater |address=Ortenburg 7, 02625 Bautzen |phone=+49 03591 584274 |email=|fax=|url=|hours=|price= |lat=51.18312 |long=14.42021 |lastedit=|description=
}}
=== Kneipen & Sonstiges ===
* Altstadt:
** {{vCard|type=bar |name=Sam's Bar |address=Fleischmarkt 4, 02625 Bautzen |phone=+49 03591 3818435 |email=sams.bar@hotmail.de |fax= |url=https://www.sams-bar.de/ |hours=Mi – Mo 19.00 – 2.00 Uhr, Di geschlossen |price=|lat=51.18193 |long=14.42437 |lastedit=|description=
}}
** La Bodega
** Schloss Schänke
** {{vCard|type=bar |name=Bar-Caracas |address=Schloßstraße 7, 02625 Bautzen |phone=+49 03591 530050 |email=|fax=|url=|hours=Di – Do 19.00 – 0.00 Uhr, Fr + Sa 19.00 – 2.00 Uhr, So + Mo geschlossen |price=|lat=51.18295 |long=14.42203 |lastedit=|description=
}}
** Alte Räucherei
** Bierakademie
* Weiteres Stadtgebiet:
** {{vCard|type=brewery |name=Bautzener Brauhaus |address=Thomas-Mann-Straße 7, 02625 Bautzen |phone=+49 03591 491456 |email=|fax= |url=https://www.bautzener.de/brauhaus |hours=Di – Fr 17.00 – 22.00 Uhr, Sa + So 14.00 – 22.00 Uhr, Mo geschlossen |price=|lat=51.17975 |long=14.43975 |lastedit=|description=
}}
'''Für die Jugend''':
* {{vCard|type=youth center |name=Steinhaus Bautzen |address=Steinstraße 37, 02625 Bautzen |phone=+49 03591 5319966 |email=steinhaus@steinhaus-bautzen.de |fax=+49 03591 5319967 |url=http://www.steinhaus-bautzen.de/start/ |hours=Mo – Fr 9.00 – 18.00 Uhr |price= |lat=51.18157 |long=14.43177 |lastedit=|description=
}}
== Unterkunft ==
=== Günstig ===
* {{vCard | name = DJH-Jugendherberge Bautzen "Gerberbastei" | type = youth hostel | url = https://www.jugendherberge-sachsen.de/jugendherbergen/bautzen-gerberbastei-45/portraet/ | address = Am Zwinger 1, 02625 Bautzen | lat = 51.18348840514818 | long = 14.424639635510928 | phone = +49 (0)3591 40347 | fax = +49 (0)3591 40348 | email = bautzen@jugendherberge.de | hours = ganzjährig (außer an Weihnachten) | checkin = 17:00-20:00 | checkout = bis 10:00 | price = ab 25,- €/ÜF (nur für DJH-Mitglieder) | subtype = wheelchair, wlan | lastedit = 2021-04-09 | description = Jugendherberge mit 115 Betten im historischen Zentrum von Bautzen in einem Wehrturm sowie in zwei Bürgerhäusern. Sie ist Teil der mittelalterlichen Stadtbefestigung.
}}
* {{vCard|type = hotel | name=Hotel „Alte Gerberei“| address=Uferweg 1| directions=weitere Innenstadt |lat=51.18028 |long=14.41999 | phone=+49 (0)3591 272390| fax=+49 (0)3591 2723921| email=info@hotel-alte-gerberei.de| url=https://www.hotel-alte-gerberei.de/| price=EZ ab 54 €, DZ ab 74 €
}}
* {{vCard| type = boarding house | name=Pension Stadtwall Bautzen| address=Flinzstr. 4A| directions=weitere Innenstadt |lat=51.18409 |long=14.43442 | phone=+49 (0)3591 44848| fax=+49 (0)3591 460090| email=info@pension-stadtwall.de| url=https://www.pension-stadtwall.de/| price=EZ ab 31 €, DZ ab 43 €
}}
* {{vCard| type = boarding house | name=Spreepension Bautzen| address=Fischergasse 6| directions=weitere Innenstadt |lat=51.17921 |long=14.42132 | phone=+49 (0)3591 48960| fax=+49 03591 489644| email=Frenzel.pension@t-online.de| url=https://www.spree-pension.de/| price=EZ ab 36 €, DZ ab 58 €
}}
* {{vCard | name = Haus Buchheim | alt = Pension „Am Schloss“ | type = boarding house, hotel garni | url = http://www.pension-am-schloss-bautzen.de/ | address = Schlossstr. 11, 02625 Bautzen | directions = innerer Altstadtkern | lat = 51.18309 | long = 14.42172 | phone = +49 (0)3591 4640499 | fax = +49 (0)3591 4640505 | email = info@pension-am-schloss-bautzen.de | price = EZ ab 55,- €/ÜF, DZ ab 74,- €/ÜF | subtype = 3, free parking | lastedit = 2021-04-09 | description = Pension im Zeitraum von 1664 bis 1709 erbauten Geburtshaus von Prof. Rudolf Buchheim (1820-1879), einem berühmten Sohn der Stadt Bautzen. }}
* {{vCard| type = boarding house | name=Pension „Stephan“| address=Schlossstr. 1| directions=innerer Altstadtkern| phone=+49 (0)3591 47590| fax=+49 (0)3591 47591| email=Pension.Stephan@t-online.de | url=http://www.pensionstephan-bautzen.de/| price=p.P. inkl. Frühstück: EZ 45 €, DZ 35 €
}}
=== Mittel ===
* {{vCard| type = boarding house | name=Pension „Dom-Eck“| address=Breitengasse 2| directions=innerer Altstadtkern |lat=51.18279 |long=14.42461 | phone=+49 (0)3591 501330| fax=+49 (0)3591 501334| email=info@wjelbik.de| url=https://www.wjelbik.de/| price=EZ 52-57 €, DZ 62-72 €
}}
* {{vCard| type = boarding house | name=Pension „Schloss-Schänke“| address=Burgplatz 5, 02625 Bautzen | directions=innerer Altstadtkern |lat=51.18261 |long=14.42101 | phone=+49 (0)3591 304990| fax=+49 (0)3591 490198| email=info@schloss-schaenke.net| url=https://www.schloss-schaenke.net/| price=EZ ab 55 €, DZ ab 69 €
}}
* {{vCard | name = Best Western Plus Hotel Bautzen | type = hotel, bar, restaurant | url = https://www.bwbautzen.de/ | address = Wendischer Graben 20, 02625 Bautzen | directions = in der weiteren Innenstadt | lat = 51.18137 | long = 14.42837 | phone = +49 (0)3591 492-0 | fax = +49 (0)3591 492100 | email = info@hotel-bautzen.bestwestern.de | subtype = 4, free wlan, parking, bicycle stand, conference, spa | lastedit = 2021-04-09 | description = Hotel mit 157 Zimmern auf 6 Etagen.
}}
* {{vCard|type=hotel |name=Hotel Villa Antonia |address=Lessingstrasse 1, 02625 Bautzen |phone=+49 03591 460888 |email=info@hotel-villa-antonia.de |fax=|url=https://www.hotel-villa-antonia.de/de/start.php |hours=|price=DZ ab 71 € |lat=51.17830 |long=14.43440 |lastedit=|description=Zum Hotel gehört das Restaurant Tiroler Stuben.
}}
=== Gehoben ===
* {{vCard | name = Hotel „Goldener Adler“ | type = hotel garni | url = https://goldeneradlerbautzen.de/startseite | address = Hauptmarkt 4, 02625 Bautzen | directions = innerer Altstadtkern | lat = 51.18153 | long = 14.42342 | phone = +49 (0)3591 48660 | fax =+49 (0)3591 486620 | email = kontakt@goldeneradler.de | price = DZ ab 89,- €/Ü | subtype = 4, free wlan | lastedit = 2021-04-09 | description = Tradition seit 1540.
}}
=== Campingplatz & Caravanstellplatz ===
* {{vCard|name=Natur- und Abenteuercamping am Stausee Bautzen|type=caravan site|url=https://www.camping-bautzen.de|address=Nimschützer Straße 41, 02625 Bautzen - Burk|lat=51.20250573158631|long=14.460056611805268|phone=+49 03591 271267|email=camping-bautzen@web.de|description=
}}
* {{vCard | name = Wohnmobilstellplatz Bautzen | alt = Parkplatz Schliebenstraße | type = caravan site | url = http://www.bautzen.de | address = Schliebenstraße 24, 02625 Bautzen | lat = 51.181939247125364 | long = 14.414905252261146 | description = 4 Wohnmobilstellplätze.
}}
== Lernen ==
In Bautzen befindet sich neben sechs Grundschulen, vier Mittelschulen, fünf Gymnasien und drei Förderschulen auch die ''Duale Hochschule Sachsen – Staatliche Studienakademie Bautzen''.
== Sicherheit ==
* {{vCard|type=police |name=Polizeirevier |address=Taucherstraße 38, 02625 Bautzen |phone=+49 03591 3560 |lat=51.17433 |long=14.43027
}}
== Gesundheit ==
=== Krankenhaus ===
* {{vCard|type=hospital |name=Oberlausitz-Kliniken GmbH |address=Am Stadtwall 3, 02625 Bautzen |phone=+49 03591 3630 |email=|fax=+49 03591 3632455 |url=https://www.oberlausitz-kliniken.de/ |hours=|price=|lat=51.18463 |long=14.43206 |lastedit=|description=
}}
== Praktische Hinweise ==
* {{vCard | type=tourist information | name=Tourist-Information Bautzen-Budyšin | address=Hauptmarkt 1, 02625 Bautzen | phone=+49 (0)3591 42016 | email=touristinfo@bautzen.de | fax=+49 (0)3591 327629 | url=https://www.bautzen.de/tourismus-kultur-freizeit/tourist-information/ | hours=Apr-Okt: Mo-Fr 9:00-18:00, Sa+So+Feiertag 9:00-15:00, Nov-Mar: 10:00-17:00, Sa+Advents-Sonntage 10:00-14:00 | lat= 51.18168 | long=14.42419 | lastedit=2021-04-09
}}
== Ausflüge ==
'''Interessante Orte:'''
* '''[[Kleinwelka]]''' (5 km nordwestlich, B 96) – Saurierpark, Irrgarten, Miniaturenpark.
* '''[[Neschwitz]]''' (14 km nordwestlich, B 96 über Kleinwelka) – Schloss und Park.
* '''[[Bischofswerda]]''' (20 km westlich, B 6) – Stadt an der Wesenitz; „Schiebocker Tage“.
* '''[[Löbau]]''' (20 km südöstlich, B 6) – König-Friedrich-August-Turm.
'''Weitere Ziele:'''
* Der [[Muskauer Heide#Weitere Ziele|Findlingspark Nochten]] wurde am ehemaligen Tagebau Nochten errichtet. Der Park bietet auf 17 Hektar blühende Heidemore und -dünen mit ca. 3000 Findlingen.
== Literatur ==
* Joachim Meffert: ''Die Ortenburg in Bautzen – Der archäologische Forschungsstand und die Ausgrabungen von 1999–2001. Arbeits- und Forschungsberichte zur sächsischen Bodendenkmalpflege 44, 2002, 75–177''.
* Karin Sczech: ''Archäologische Untersuchungen zu Bautzen in der Oberlausitz in slawischer Zeit. Archäologische Forschungen am GWZO. Berichte und Beiträge des Geisteswissenschaftlichen Zentrums Geschichte und Kultur Ostmitteleuropas e. V. 2003, 49–64.''
* Grit Richter-Laugwitz: ''Der 17. Juni 1953 in Bautzen'', hrsg. vom Stadtarchiv Bautzen, Bautzen 2004, {{ISBN|3-936758-04-2}}
* Andreas Bensch: ''Chronologie der Stadt Bautzen 1002–2001'', Bautzen 2001, {{ISBN|3-930625-31-8}}
* Christine Seele und Jürgen Matschie: ''Bautzen und seine Kirchen. Ein kleiner ökumenischer Kirchenführer'', Leipzig 1996, {{ISBN|3-7462-1118-2}}
* ''Deutscher Städteatlas''; Band: IV; 3 Teilband. Acta Collegii Historiae Urbanae Societatis Historicorum Internationalis – Serie C. Im Auftrag des Kuratoriums für vergleichende Städtegeschichte e. V. und mit Unterstützung der Deutschen Forschungsgemeinschaft, hrsg. von Heinz Stoob †, Wilfried Ehbrecht, Jürgen Lafrenz und Peter Johannek. Stadtmappe Bautzen, Autor: Karlheinz Blaschke, {{ISBN|3-89115-033-4}}; Dortmund-Altenbeken 1989.
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 51.18139| long= 14.42389| radius= 2000}}
{{IstInKat|Zentrale Oberlausitz}}
{{class-3}}
ipprt5dgilyahta16zdtbamp6b2iatd
Japan
0
4103
1769128
1759119
2026-04-17T02:10:47Z
Qualitätssicherung
50648
/* Telekommunikation */ Sonderrufnummern
1769128
wikitext
text/x-wiki
{{Reisewarnung|text=Reisen Sie nicht in die von der japanischen Regierung ausgewiesenen evakuierten Gebiete um das Kernkraftwerk Fukushima Daiichi I im Nordosten der Insel Honshū. [https://www.meti.go.jp/english/earthquake/nuclear/roadmap/pdf/20200116_01.pdf Karte]|datum=21.10.2025|D-A-CH=D|warn=T|tag=21|monat=10|jahr=2025}}
{{Quickbar Land
| Religion= 84 % sowohl [[Shintoismus|Shinto]] als auch [[Buddhismus in Japan|Buddhismus]], 16 % andere (einschließlich 0,7 % Christen)
| Zeitzone = MEZ+8, keine Sommerzeit
}}
'''Japan''' ({{JaS|日本国}}, ''Nihon-koku '' oder ''Nippon-koku'') ist ein Inselstaat in [[Ostasien]].
== Regionen ==
<imagemap>
Image:Japan prefectures.png|frame|right|Japans Regionen
poly 162 0 204 27 211 16 218 22 227 40 203 55 197 72 176 68 164 66 166 78 145 87 137 65 148 43 159 36 [[Hokkaidō]]
poly 148 141 154 146 152 151 152 162 146 165 151 173 159 169 169 172 178 170 183 151 189 110 173 84 168 79 150 88 144 103 146 125 [[Tōhoku]]
poly 150 173 139 181 142 186 148 194 151 197 151 199 149 204 160 217 173 208 177 193 181 183 179 172 171 169 166 173 161 168 152 175 [[Kantō]]
poly 99 201 108 203 111 209 115 211 120 226 137 225 148 219 152 212 151 204 148 199 151 193 145 192 142 190 143 185 139 184 139 178 148 173 145 164 153 162 150 153 154 147 149 143 139 147 133 145 126 160 113 165 98 193 [[Chūu]]
poly 101 197 84 198 77 201 80 211 77 221 79 226 87 230 95 243 104 250 113 238 121 229 119 221 116 215 113 212 108 211 109 205 107 204 [[Kansai]]
poly 79 203 81 212 76 219 77 225 71 230 57 236 49 237 43 245 30 242 26 239 24 229 37 217 54 204 67 205 [[Chūgoku]]
poly 86 230 79 227 65 232 55 234 48 244 43 247 49 261 59 269 72 258 83 251 87 237 [[Shikoku]]
poly 25 237 13 241 1 249 0 265 8 281 11 295 35 296 40 290 44 279 46 265 47 253 39 243 33 242 [[Kyūshū]]
poly 211 254 204 254 199 270 209 286 223 281 222 255 [[Okinawa (Präfektur)|Okinawa]]
desc top-left
</imagemap>
Japan besteht aus den vier Hauptinseln [[Hokkaidō]], [[Honshū]], [[Kyūshū]] und [[Shikoku]] sowie zahlreichen kleineren Inseln bzw. Inselgruppen, z. B. der Ryukyu-Inselgruppe ([[Okinawa (Präfektur)|Okinawa]] - subtropische Inselkette zwischen Japan und der chinesischen Provinz [[Taiwan]]) oder den [[Izu-Inseln|Ogasawara-Inseln]] und dreitausend Inselchen der [[Seto-Inlandsee]].
[[Honshū]], die größte und am dichtesten besiedelte Insel, wird meist in fünf (oder mehr) Regionen unterteilt. Zusammen mit den anderen drei Hauptinseln, die jeweils für sich eine Region bilden, ergibt sich die folgende Aufteilung:
# [[Tōhoku]] - Nordost-Honshū, bekannt für Skigebiete und heiße Quellen
# [[Kantō]] - die Küstenebene um [[Tōkyō]] und [[Yokohama]]
# [[Chūbu]] - gebirgiges Mittelland mit den japanischen Alpen und Japans viertgrößter Stadt [[Nagoya]]
# [[Kansai]] („West-Japan“) - das alte Kultur- und Wirtschaftszentrum Japans, um [[Ōsaka]], [[Kyoto]], [[Nara]] und [[Kōbe]]
# [[Chūgoku]] - westlichster Teil Honshūs, ländliche Region um [[Hiroshima]]
== Städte ==
[[File:Japan sea map.png|right|Karte von Japan]]
Die wichtigsten Städte Japans sind (der Größe nach):
* [[Tokio]] (= Tōkyō) - die Hauptstadt, modern und dicht besiedelt.
* [[Yokohama]] - Hafenstadt im Einzugsbereich von Tōkyō.
* [[Ōsaka]] - dynamische Business-Stadt in der Region Kansai.
* [[Nagoya]] - Industriestadt in der Region Chūbu.
* [[Kōbe]] - Hafenstadt in der Region Kansai.
* [[Kyoto]] - Japans ehemalige Hauptstadt, immer noch kulturelles Zentrum des Landes, viele Tempel und Gärten.
* [[Fukuoka]] - die größte Stadt auf Kyūshū.
* [[Hiroshima]] - Hafenstadt, Ziel der ersten Atombombe 1945.
* [[Nagasaki]] - Hafenstadt auf Kyūshū, Ziel der zweiten Atombombe 1945.
* [[Nara]] - die erste Hauptstadt eines vereinigten Japan, berühmt für den großen Buddha im Todaiji.
* [[Sapporo]] - größte Stadt Hokkaidōs, berühmt für das Schneefest.
* [[Sendai]] - größte Stadt der Region Tōhoku, bekannt als Wald-Stadt.
* [[Shimonoseki]] - Südwestspitze Honshūs, bekannt für die Delikatesse Kugelfisch.
* [[Kanazawa]]
== Weitere Ziele ==
* '''[[Nikkō]]''' – Kleinstadt mit einigen der schönsten Schreine und Tempel in Japan {{Symbol Unesco}}
* '''[[Izu-Halbinsel]]''' – bergige Halbinsel unterhalb Tōkyōs mit vielen naturbelassen Kliffs
* '''[[Fuji|Fuji-san]]''' – der höchste Berg und Wahrzeichen Japans sowie die ihn umgebenen fünf Seen
* '''[[Kumamoto#Aso-Kujū-Nationalpark|Aso]]''' {{Ja|阿蘇山|w=Aso-san|inKlammern=ja}} – größter aktiver Vulkan in Japan und einer der größten der Welt
* zahlreiche Nationalparks
== Hintergrund ==
Japan ist ein Land, das viele Menschen im Westen durch seine Kultur, seine Fremde und seine Ferne fasziniert. Und auch wenn einige Elemente der japanischen Kultur durch den Siegeszug japanischer Medien wie [[w:Manga|Manga]] und [[w:Anime|Anime]] in der westlichen Welt bekannt geworden sind, so erschließt sich das Land häufig erst bei einem persönlichen Besuch.
Japan kann auf eine mindestens 1500-jährige Zivilisation zurückblicken. Das Land wurde schon früh vom nahen China beeinflusst, dessen Hochkultur nach 300, über die [[Korea|koranische Halbinsel]] vermittelt wurde. Die Japaner übernahmen nicht nur Teile der chinesischen Schrift in Form der heute gebräuchlichen [[w:Kanji|Kanji]], sondern auch der Buddhismus fand in Japan Einzug und ist heute ein kaum wegzudenkendes Element der japanischen Kultur. Vom 17. bis Mitte des 19. Jahrhundert war Japan von der restlichen Welt praktisch völlig isoliert und bildete einen Feudalstaat unter Herrschaft der [[w:Shōgun|Shōgune]] mit der „himmlischen Majestät,“ dem [[w:Tennō|Tennō]] als rein symbolischen, „Kaiser.“ Ab 1868 führte Japan im Rahmen der [[w:Meiji-Restauration|Meiji-Restauration]] grundlegende Reformen durch, öffnete sich gegenüber dem Westen und entwickelte sich im Rahmen der einsetzenden industriellen Revolution zu einem modernen Feudalstaat. Wie im Westen strebte das japanische Kaiserreich nach Macht, expandierte nach Okinawa, Taiwan und Korea, in der Zwischenkriegszeit dann in die [[Nordostchina|Mandschurei]] was schließlich ab 1937 zum „China-Zwischenfall“ mit Besetzung weiter Küstenregionen führte. Die Reaktion der USA, eine vollständige Handelsblockade gegenüber Japan ab Frühjahr 1941, führte Anfang 1941 zum Präventivschlag auf Pearl Harbor und in Südostasien somit zum Eintritt Deutschlands und Italiens in den Zweiten Weltkrieg gegen die USA, als Hilfe für eine der Achsenmächte. 1945 kam es durch die amerikanische Luftwaffe, die seit der Eroberung [[Saipan]]s 1944 schon die aus Holz gebauten Wohnviertel mit Teppichen aus Feuerbomben überzog zum ersten und bisher einzigen Einsatz von Atombomben in einem bewaffneten Konflikt mit den Abwürfen über Hiroshima und Nagasaki, woraufhin Japan im September 1945, vier Monate nach Deutschland, kapitulierte. Eine Aufarbeitung der Kriegsgreuel fand nie statt, seit den 1980ern gilt: „Das waren unsere Großväter“ – wen juckt’s?
Im Rahmen der Friedensverhandlungen musste Japan alle seit 1895 erworbenen Kolonien aufgeben und auch eine [[w:Artikel 9 der japanischen Verfassung|Armee wurde dem Land verboten]], allerdings durfte man den Tennō behalten, nun wieder als rein repräsentatives Staatsoberhaupt. Er genießt, gerade weil er ohne Genehmigung des Hofstaates kein Wort öffentlich sagen darf, weiterhin hohes Ansehen in der Bevölkerung. Das Land entwickelte nach dem Krieg ein ungeheures Wirtschaftswachstum, und japanische Produkte sind aus unserer Welt kaum mehr wegzudenken, vor allem in den Branchen Unterhaltungselektronik und Automobilbau waren die Japaner in den 1970er-2010ern führend. Das Platzen der japanischen Immobilienblase in den 1989 führte zu einer langanhaltenden Rezession. Ein Folge davon war das fast dreißig Jahre andauernde Fehlen von Inflation, so daß Japan in den 2020ern, auch wegen günstigem Wechselkurs, zu einem bezahlbaren Reiseziel geworden ist.
[[File:20100727 Nikko Tosho-gu Three wise monkeys 5965.jpg|thumb|Das von den berühmten Affen in Nikkō praktizierte „Nichts Hören,“ „Nichts Sehen,“ „Nichts Sagen“ ist eine charakteristische Verhaltensweise im japanischen Alltag (und war hilfreich wenn man zur Samurai-Ära nicht wegen Aufmüpfigkeit „seinen Kopf zwischen die Beine gelegt“ bekommen wollte). Geschieht etwas in der Öffentlichkeit, das man mißbilligt so ignoriert man es, außer es handelt sich um einen extrem groben Verstoß gegen das 和 ''Wa'' – deutsch etwa: Eintracht, Einmütigkeit, Friede. (Im Privaten oder besoffen können Japaner sehr direkt werden.)]]
[[File:Kyoto caution.jpg|thumb|Verbote in Kyoto, gerichtet an Ausländer deshalb ohne japanische Schrift]]
In kaum einem anderen Industriestaat sind Tradition und Moderne so miteinander verwoben wie in Japan, und so findet man traditionelle buddhistische Tempel direkt neben modernen Hochhäusern. Trotz alledem ist Japan heute noch kulturell sehr isoliert - 97 Prozent der Bevölkerung sind ethnische Japaner, Einwanderung existiert in Japan praktisch nicht und Touristen sind außerhalb der Großstädte wie Tōkyō immer noch ein seltenes und ungewohntes Bild. Als die Ausländerquote 2024 die Drei-Prozentmarke überschritt ward die Besorgnis groß – etwa ein Drittel dieser „Fremden“ sind Nachfahren von Koreanern, die nach dem Krieg geblieben waren.<br>
Die japanischen Verhaltensregeln unterscheiden sich sehr stark vom unseren, wobei dem westlichen Ausländer, dem sogenannten ''[[w:Gaijin|gaijin]]'' {{Ja|外人|inKlammern=ja}} in der Praxis die meisten unabsichtlichen Patzer verziehen werden. Ein Grundsatz ist es die „Harmonie“ nicht zu stören, oder wie das Sprichwort sagt: „Ohne Besonderes – das ist vornehmer Mensch“ ({{Ja|無事是れ貴人|w=buji kore kin’nin}}). Denn „der herausstehende Nagel wird eingeschlagen“ ({{Ja|出る杭は打たれる|w=deru kugi wa utareru}}). Daß etwas unerwünscht oder verboten ist, zeigt in der Regel ein Schild in das Zeichen 禁 (oft in rot) mit erscheint, oft dazu dann ein Bild sei es ein Fahrrad, Hund oder eine Zigarette o.ä.<br>
Japaner glauben an die [[w:Nihonjinron|Einmaligkeit und „Reinheit“]] ihrer Rasse (was durchaus im Sinne von [[w:Alfred Rosenberg|Alfred Rosenberg]] verstanden werden kann), ebenso wie sie der Ansicht sind sie lebten im einzigen Land der Welt, das vier deutlich abgegrenzte Jahreszeiten hat. Die japanische Gesellschaft ist zutiefst rassistisch, wenn auch die allgemeine Höflichkeit es verbietet dies allzu direkt zu zeigen. Aussagen wie „die Ausländer/Koreaner/Chinesen halten sich nicht an die Regeln,“ „verursachen Unbequemlichkeiten, weil sie Müll auf der Straße wegwerfen“ (in einem Land in dem es keine öffentlichen Mülleimer oder Straßenkehrer gibt!), „Platz im öffentlichen Raum einnehmen“ oder „allgemein zu Verbrechen neigen“ wird jeder durchschnittliche Japaner anstandslos zustimmen.
== Anreise ==
=== Einreisebestimmungen ===
Für Staatsbürger der Schweiz, Österreichs und Deutschlands ist es nicht notwendig ein Visum in ihrem Heimatland zu beantragen. Bei der Einreise muss man ein Einreisedokument ausfüllen (Name, Passnummer, Wohnort in Japan z. B. Hotel, Flugnummer u. ä.) Damit bekommt man ein Touristenvisum für einen Aufenthalt von max. 90 Tagen. Bei Bedarf kann das Touristenvisum um drei Monate verlängert werden, man muss sich jedoch als “Alien Resident” bei den Behörden registrieren. Wenn man eine Adresse und vernünftigen Grund angibt ist die Verlängerung, möglich ab 45. Tag nach erster Einreise, bei jeder Dienststelle der Ausländerpolizei am selben oder folgenden Tag erledigt. Man bekommt aber nur eine pro Jahr. Einen Dolmetscher mitzubringen erleichtert den Prozess. Man braucht eine Steuermarke zur Bezahlung der Gebühr, die ab Juli 2026 auf bis zu 10000 ¥ (bisher 4-6000 ¥) angehoben werden wird{{Zukunft|2026|7}}. Solche kauft man im lokalen Schnapsladen oder ''conveni.''
Seit dem 20.11.2007 werden von allen Einreisenden Fingerabdrücke und ein Foto gespeichert. Seit Januar 2019 wird wieder eine Ausreisesteuer von 1000 ¥ erhoben (3000 ¥ ab Juli 2026{{Zukunft|2026|7}}), deren Einkünfte dazu genutzt werden sollen, den Tourismus weiter zu fördern. Die Steuer ist im Ticketpreis für Flugzeug bzw. Schiff enthalten.
;Zollvorschriften
Seit Oktober 2006 muss wieder ein Zolleinfuhrdokument ausgefüllt werden. Japanische Zöllner sind – mit weißen Handschuhen – ausgesprochen korrekt und höflich, dabei durchaus streng. Außer den üblichen Verboten bezüglich Sprengstoffen, Drogen usw. gelten strenge Vorschriften bezüglich frischen Lebensmitteln (pflanzenbasiertes kann evtl. nach Überprüfung am Quarantäneschalter eingeführt werden; Fleisch und seine -produkte sind de facto unzulässig). Die Strafen für Rauschgiftbesitz, auch kleinster Mengen zum Eigengebrauch, sind drakonisch und haben für Ausländer immer ein lebenslanges Einreiseverbot zur Folge. Hierzu zählen auch viele Arten von Medikamenten, z. B. [[w:Zolpidem|Zolpidem]] oder [[w:Codein|Codein]]-haltige Hustensäfte. Als „pornographisch“ und somit verboten gelten alle Bilder auf denen Schamhaare sichtbar sind. „Unbegleitetes Reisegepäck“ (engl.: “unattended personal luggage”) kann, sofern es bei Einreise schriftlich deklariert wird, später z. B. bei der Post zollfrei eingeführt werden.
Die [https://www.customs.go.jp/english/c-answer_e/keitaibetsuso/7104-2_e.htm '''Freimengen'''] sind in Japan vergleichsweise großzügig: 3 Flaschen Alkohol (à 760 ml), 400 Zigaretten, oder 100 Zigarren oder 500 g Tabak; sonstiges bis 200.000 ¥.
==== Work & Travel ====
Seit einigen Jahren gibt es für junge Leute bestimmter Staatsangehörigkeiten (Mitteleuropa nur Deutsche, Dänen und Österreicher, nicht Schweizer) zwischen 18 und 30 die Möglichkeit eines ''Working Holidays'' mit einer Aufenthaltsdauer von bis zu einem Jahr. Über die genauen Bestimmungen [https://www.de.emb-japan.go.jp/itpr_de/konsular_formulare.html informiert die Botschaft]. U. a. ist persönliche Vorsprache beim Konsulat, Reisekrankenversicherung (ca. 500 €) und der Nachweis ausreichender finanzieller Mittel (3000 €) notwendig. Wer zwischendurch ein Nachbarland besuchen möchte, muss zwingend vor Ausreise ein ''[https://www.isa.go.jp/en/applications/index.html Re-entry permit]'' beantragen, sonst wird das Visum bei Ausreise ungültig.
==== Kulturelle Aktivitäten ====
Eine besondere Aufenthaltserlaubnis sind Visa zum Erlernen „kultureller Aktivitäten,“ sei es Teezeremonie, Kalligraphie, Blumenstecken (''ikebana''), buddhistische oder Sprachstudien o. ä. Gemeinsam ist diesen, daß man an einer zugelassenen Schule, meist 20 Stunden pro Woche oder länger Unterricht nehmen muß. Erteilt werden diese für drei, sechs oder zwölf Monate, bei Verlängerung wird der Nachweis verlangt, daß man über neunzig Prozent der Stunden besucht hat. Arbeiten ist verboten, es müssen entsprechende Finanzen vorhanden sein.
=== Flugzeug ===
Die günstigste Anreisemöglichkeit stellt das Flugzeug dar. Die drei wichtigsten internationalen Flughäfen mit weltweiten Verbindungen sind der '''[[Flughafen Narita|Narita Airport]]''' in Tōkyō (NRT), der '''Kansai Airport''' in Ōsaka (KIX) und der '''Chūbu Centrair Airport''' in Nagoya (NGO). Der '''Fukuoka Airport''' (FUK) verbindet die südliche Insel Kyushu mit anderen asiatischen Ländern.
Weitere größere Flughäfen mit hauptsächlich regionalen bzw. innerasiatischen Verbindungen sind der '''Chitose Airport''' in Sapporo (CTS), der '''[[Naha#Mit dem Flugzeug|Naha Airport]]''' in Okinawa (OKA), der '''[[Flughafen Haneda|Haneda Airport]]''' in Tōkyō (HND) und der '''Itami Airport''' in Ōsaka (ITM).
Aufgrund der Zeitverschiebung kommen Direktflüge aus Europa immer am nächsten Tag an. Einzige Möglichkeit, mit nur einem Zwischenstopp ohne Nachtflug nach Japan zu kommen, ist über die Golfstaaten (mit Qatar Airways über [[Doha]] oder mit Emirates über [[Dubai]]). Wem ein Nachtflug zu anstrengend ist, hat sonst nur noch die Möglichkeit, die Reise in verschiedene Etappen aufzuteilen, und unterwegs vielleicht noch andere Länder zu besuchen.
Die schnellste Anreisemöglichkeit per Flugzeug über Sibirien ist durch die Zeitumstände seit 2022 entfallen.<br>
Seit China für viele Länder die Visumspflicht aufgehoben hat, gäbe es als „abenteuerliche“ Route die Möglichkeit per Billigflug mit türkischen Fluggesellschaften in eine der zentralasiatischen Republiken zu fliegen, dann „von hinten“ über Land durch China zu reisen und dann einen Billigflug von dort (oder Hongkong) nach Japan zu nehmen.
=== Bahn ===
Mit der [[Transsibirische Eisenbahn|Transsibirischen Eisenbahn]] ist Japan über Russland zu erreichen (aber seit Feb. 2022 schwierig). Die Fahrt ist ein Erlebnis für sich, je nach Route und Zwischenstopps sollte man hierfür aber eine bis zwei Wochen einplanen. Man kann dann von [[Wladiwostok]] - oder auch von [[Beijing]] oder [[Hong Kong]] - mit Schiff oder Flug weiter nach Japan.
=== Schiff ===
Schiffsverbindungen bestehen nach China (Shanghai – Kōbe/Yokohama) oder Südkorea normalerweise ab [[Pusan]]. Die wichtigsten Häfen sind [[Shimonoseki]], [[Hiroshima]], Hakata ([[Fukuoka]]) ggf. über [[Tsushima]] aus Korea. Die entsprechenden Fährverbindungen sind in Ortsartikeln erwähnt. Die Verbindungen aus der Provinz Taiwan und Rußland wurden eingestellt.
;Yachten
Im Ausland registrierte Yachten können nach dem Einklarieren unbeschränkt in Japan bleiben (die darauf befindlichen Ausländer aber maximal 90 Tage innerhalb von 180). 48 Stunden vor Ankunft muss man sich per Fax (!) voranmelden, wobei die Einzelheiten lokal geringfügig abweichen. Zu beachten ist, dass in ganz Japan nur etwa 120 Häfen für Ausländer „offen“ sind, zum Besuch der restlichen 95 % ist eine {{en|“closed port”}}-Sondergenehmigung zu beantragen. Das Verfahren wurde im Mai 2018 vereinfacht, es ist nun möglich einmal eine [https://www.mlit.go.jp/en/maritime/specialpermission.html Erlaubnis] (''naiko senpaku'') zu beantragen, die für alle Häfen gilt, sofern man zu nicht-kommerziellen Zwecken unterwegs ist. Besonders bei Booten unter 20 t ist man bzgl. Papierkrieg großzügig geworden.
== Mobilität ==
Japan hat hervorragend ausgebaute Verkehrssysteme. Auf den Hauptinseln sind praktisch alle Städte schnell und bequem per Zug zu erreichen; Flüge lohnen sich eher für Besuche in Hokkaidō oder Okinawa. Der Nahverkehr in den Ballungsräumen ist meist sehr gut ausgebaut; insbesondere in und um Tōkyō; zur Erkundung abgelegener ländlicher Gebiet kann ein eigener Mietwagen aber praktisch sein; hierfür gelten die unten erklärten Besonderheiten.
==== Adressen ====
In japanischen Städten nützt eine Adresse wenig, um ein Ziel tatsächlich zu finden. Die meisten Ziele werden angegeben, indem man den Weg vom nächsten Bahnhof oder einem bekannten Punkt aus beschreibt. Visitenkarten haben oft kleine Karten auf der Rückseite, um das Auffinden zu erleichtern (zumindest, wenn man Japanisch kann). In vielen Bahnhöfen und an den Rändern der Stadtteile sind Pläne angebracht, die helfen, nahegelegene Ziele zu finden.
=== Mit der Bahn ===
[[File:Shinkansen2800.jpg|mini|Tokaido - Shinkansen (Typ: Hikari) im Bahnhof [[Tōkyō]].]]
[[File:Chikan sign in Okinawa City Monorail station.jpg|thumb|Grapschen verboten in der Bahn in Naha (die Zeichen 痴漢 ''Chikan'' auf deutsch etwa „perverser Sack“ oder „Sittenstrolch“ bezeichnet Männer, die in vollen Zügen Frauen an den Hintern fassen)]]
Japan ist ein Land für Bahnfreunde. Die Züge sind pünktlich, sauber und schnell und erschließen den größten Teil des Landes. Auf dem gut ausgebauten Shinkansen-Hochgeschwindigkeitsnetz ist man meist schneller am Ziel als mit dem Flugzeug.
Für Besucher wie Einheimische ist der Zug daher meist die erste Wahl. Während die Einheimischen insbesondere beim Shinkansen kaum an den hohen regulären Fahrpreisen vorbeikommen, können Touristen mit dem ''[[Japan Rail Pass]]'' per “Flatrate” fahren und [[Streckennetzkarten in Japan|andere Sonderangebote]] in Anspruch nehmen.
Japan hat auf allen Eisenbahnlinien das - in Deutschland abgeschaffte - Sperrensystem beibehalten. Im Fernzug wird trotzdem genau kontrolliert, was aber die Möglichkeit bietet, ohne Aufschlag nachzulösen. Expresszüge, als “Limited Express” ({{Ja|特別急行|w=tokubetsu kyūkō}}) immer zuschlagpflichtig , haben oft Wagen (vollständig) “Reserved” und Wagen (vollständig) “Non reserved.”<br>Die Sitze (und Abstände) in Großraumwägen sind auf japanische Körpergrößen der 1970er ausgelegt. Wer als Europäer über 1,80 groß ist oder etwas „Überbreite“ hat wird sie nach einigen Stunden unbequem finden.
Seit 2024 besteht Rauchverbot im Zug. Mit dem Handy telefonieren ist ebenfalls unerwünscht.
==== JR und private Bahnen ====
Das japanische Eisenbahnsystem besteht aus den Strecken ''Japan Railways'' (JR) und verschiedenen privaten Bahngesellschaften.
Das kann zunächst etwas verwirrend sein: Insbesondere in Großstädten können sich die Bahnhöfe verschiedener privater Bahnen und der JR überschneiden. Dann gibt es in einem Bahnhof möglicherweise drei verschiedene Bahngesellschaften mit eigenen Fahrplänen und Ticketsystemen. (Zum Beispiel in Ōsaka: Kintetsu-Namba Station, Nankai-Namba Station, JR-Namba Station).
Die '''JR''' besteht aus den sieben regionalen Bahngesellschaften, die aus der neo-liberalen Zerschlagung der staatlichen Bahngesellschaft ''JNR'' hervorgegangen sind. Obwohl das JR-Netz von verschiedenen Gesellschaften betrieben wird, funktioniert es in der Praxis als einheitliches Netz.
Das JR-Netz ist so umfangreich, wie man es von einem nationalen Eisenbahnsystem erwartet, auch wenn es von verschiedenen privaten Gesellschaften betrieben wird. Wenn man einen JR-Pass hat, stellt man fest, dass es selbst in großen Städten wie Tōkyō oder Ōsaka immer einen JR-Bahnhof in der Nähe eines Zieles gibt. In ländlichen Regionen betreibt die JR auch Busverkehre.
Zusätzlich gibt es '''Privatbahnen,''' meist mit angeschlossener Kaufhaus- und Hotelkette mit gleichem Namen (z. B. ''Tōkyu'' oder ''Seibu'' in Tōkyō). Diese Bahnen füllen die Lücken des JR-Netzes in den Vororten der Großstädte und auf regionalen Strecken hervorragend aus.
Dabei gibt es keinerlei Verkehrsverbünde und so gut wie keine Kombikarten. Im Großraum Tōkyō teilen sich neunzehn Firmen den Betrieb von 45 Bahnstrecken. Die Privatbahnen sind vom JR-Netz getrennt und haben eigene Tarifsysteme, die Fahrkarten sind zwischen den Gesellschaften nicht übertragbar.
In den 2010ern hat man in der Großräumen jeder Linie ein eigenes Logo zuzuweisen und die Haltstellen zu numerieren, so daß die Orientierung erleichtert wird, obwohl inzwischen Netzpläne durchgängig auf Japanisch und in lateinischer Schrift ausgeschildert werden.
==== Fahrplanauskunft ====
Die beste Möglichkeit seine Bahnfahrt zu planen, bietet mit Einschränkungen die [https://www.hyperdia.com/en/ HyperDia]-Seite. Diese ist auf Englisch verfügbar und kennt praktisch alle Verbindungen und Preise aller Bahngesellschaften (und zusätzlich auch noch einige andere Verkehrsmittel wie Busse und Flugverbindungen). Auf diese Weise lassen sich die Verbindungen vergleichen und die beste Reisemöglichkeit finden.
An den (größeren) Bahnhöfen werden zusätzlich die nächsten Zügen und die Verfügbarkeit freier Plätze angezeigt. Alle modernen Anzeigetafeln schalten zwischen Japanisch und lateinischer Schrift um.
==== Fahrkarten und Reservierungen ====
Für Online-Tickets braucht man normalerweise eine japanische Mobilfunknummer, die man aber als Kurzzeitbesucher nicht kaufen kann (nur mieten s. u.). Man muss seine Fahrkarte also am Schalter oder am Automaten kaufen; das ist allerdings bis unmittelbar vor der Abfahrt problemlos möglich.
An JR-Bahnhöfen gibt es normalerweise Fahrkarten- und Reservierungsschalter (''midori no mado),'' bedeutendere Stationen haben ein ''Travel Center,'' wo man eher auf Touristen eingestellt ist. Die meisten Mitarbeiter sprechen genug Englisch für die wichtigsten Vorgänge. Falls nicht kann man sich meist mit Handzeichen verständigen. Oft hilft es, seinen Reisewunsch aufzuschreiben, hier und da gibt es auch Vordrucke für diesen Zweck.
Reservieren ist einfach und sehr zu empfehlen für gefragte Verbindungen (zum Beispiel am Freitagabend von Tōkyō nach Kyoto oder für den Zug von Nagoya nach Takayama). Für “Limited Express” und viele Shinkansen besteht sowieso Reservierungspflicht. Man bekommt sie dann automatisch mit der Fahrkarte. In einem typischen Shinkansen mit 16 Wagen gibt es zum Beispiel nur drei bis fünf Wagen die man ohne Reservierung benutzen darf. Ab und an bietet der reservierte Wagen auch zusätzlichen Komfort (z. B. 4 statt 5 Sitze nebeneinander).
Inhaber eines ''Japan Rail Pass'' können kostenlos reservieren. (Achtung: Mit dem Reservierungs-“Ticket” kann man die automatische Sperre nicht benutzen, sondern beim Wärter vorzeigen).
Auch im Fernverkehr gibt es teilweise Fahrkartenautomaten mit englischer Benutzerführung. Kreditkarten werden in der Regel nicht akzeptiert, man muss den Automaten also mit Bargeld füttern.
'''[[Japan Rail Pass]]''' - Diese zwingend im Ausland zu kaufende Karte ist nur für Touristen erhältlich und gilt im gesamten Netz der JR, inklusive der beiden langsameren Kategorien der Hochgeschwindigkeitszüge ''Shinkasen'' (die der schnellsten Kategorie sind auf fast allen Strecken ausgeschlossen). Dieser Pass ist ideal wenn man weitere Strecken zurücklegen will; der Wochenpass hat sich bereits mit einer Fahrt Tōkyō-Kyoto und zurück fast rentiert. Seit der massiven Preiserhöhung 2023 ist er nicht mehr das Schnäppchen das er einmal war.
'''Seishun 18-Kippu''' {{Ja|青春18きっぷ|w=„Jugend 18-Karte“}}- Ursprünglich eine Fahrkarte für Studenten, da sie nur in den Ferienzeiten erhältlich und gültig ist. Sie kann aber von Jedermann gekauft werden. Für 10.000 oder 12.050 ¥ bekommt man ein an drei oder fünf innerhalb des Gültigkeitszeitraums frei wählbaren Tagen gültiges Ticket. Man kann die Fahrkarte innerhalb von drei festgelegten Zeiträumen benutzen, die sich an den unterrichtsfreien Zeiten an den Universitäten orientieren: Die Frühlingsferien vom 1. März bis 10. April, die Sommerferien vom 20. Juli bis 10. September und die Winterferien vom 10. Dezember bis 10. Januar. Man darf an diesen Tagen so oft und so weit fahren, wie man möchte. ''Shinkansen'' und Expresszüge dürfen allerdings nicht benutzt werden. Trotzdem ein lohnendes Angebot für Leute mit mehr Zeit und weniger Geld!
Die einzelnen Bahngesellschaften bieten auch [[Streckennetzkarten in Japan|regional gültige Pässe]], die sich für Kurzzeitbesucher ggü. dem ''Japan Rail Pass'' selten lohnen dürften.
==== Wertkarten ====
Eine sinnvolle Anschaffung auch für Touristen sind aufladbare Wertkarten mit RFID-Technik. Viele Verkehrsunternehmen geben ihre eigenen heraus, die meisten sind untereinander kompatibel und anerkannt. Bekannte landesweite Marken, die fast überall funktionieren, sind Suica, Pasmo und ICOCA. Man kann damit nicht nur Bahn- und viele Stadtbusfahrten bezahlen, sondern oft auch Taxis oder kleine Einkäufe bezahlen.
==== Zugtypen ====
[[File:Shinkansen map 202405 en.svg|mini|Liniennetz des Shinkansen]]
Der '''Shinkansen''' {{Ja|新幹線|inKlammern=ja}} ist wohl der berühmteste Zug Japans. Mit Geschwindigkeiten von bis zu 340 km/h sind sie nach wie vor der schnellste Weg durchs Land zu reisen. Die Shinkasen fahren auf eigenen Gleisen getrennt vom restlichen Verkehr und sind extrem pünktlich und zuverlässig: Im Jahresdurchschnitt beträgt die Verspätung der Züge ungefähr 56 Sekunden was auch daran liegt, daß Lokführern die Verspätungen verursachen etwas vom Gehalt abgezogen wird.<br>
Den Fahrpreis bzw. Expreßzuschlag zurück gibt es aber nur bei Verspätungen von mehr als zwei Stunden, bzw. anteilig wenn der Zug unterwegs liegen bleibt und keine Weiterfahrtmöglichkeit besteht. Fragen sollte am ''Midori madō'' des Bahnhofs.
Es gibt drei Kategorien von Shinkansen, die bei den einzelnen Gesellschaften unterschiedliche Namen tragen. Die schnellste und teuerste Kategorie (Nozomi/Mizuho/Hayabusa) hält nur an ausgewählten Bahnhöfen, die meisten Plätze sind reservierungspflichtig. Die mittlere Kategorie (z. B. Hikari/Sakura/Hayate) hält an mehr Bahnhöfen, ist aber oft nur unwesentlich langsamer. Die langsamste Kategorie (z. B. Kodama/Tsubame/Nasuno) hält an allen Bahnhöfen und fährt oft nicht die komplette Strecke.
Züge vom Typ ''Nozomi'' und ''Mizuho'' können mit dem ''Japan Rail Pass'' '''nicht''' benutzt werden.
Im Shinkansen kann man kaum großes Reisegepäck mitnehmen. Normalerweise wird dies mit einem extra Transport voraus geschickt. Ein Handgepäckstück oder ein Rucksack ist allerdings kein Problem.
Die Züge selbst halten nur zwischen einer und drei Minuten auf den Bahnhöfen. Pünktliches Erscheinen und schnelles Einsteigen ist also Pflicht.
Auf anderen JR Linien, insbesondere den Vorortlinien, werden folgende Zugbezeichnungen verwendet:
* Expresszug {{Ja|特急|w=tokkyū|inKlammern=ja}} - hält an wenigen Bahnhöfen. Zuschlag- und teilweise reservierungspflichtig.
* Schnellzug {{Ja|急行|w=kyūkō|inKlammern=ja}} - hält an ungefähr jedem dritten Bahnhof. Zuschlagpflichtig. Alternativ fahren sie schnell ohne Halt 20, 30 oder 40 km aus der großstadt hinaus und halten danach an jeder Station, befördern also Pendler effizient.
* Eilzug {{Ja|快速|w=kaisoku|inKlammern=ja}} - hält an ungefähr jedem dritten Bahnhof. Nicht zuschlagpflichtig.
* Nahverkehrszug {{Ja|普通|w=futsū}} oder {{Ja|各駅停車|w=kakueki-teisha|inKlammern=ja}} - hält an jedem Bahnhof.
In Schnell- und Expresszügen gibt es teilweise ''Grüne Wagen'', die japanische Variante der ersten Klasse. Da man für fast 50 % Zuschlag nur ein bisschen mehr Beinfreiheit bekommt, wählen die meisten Fahrgäste normale Plätze.
Der letzte noch vorhandene Nachtzug ist der „Sunrise Seto/Sunrise Izumo“ zwischen Tōkyō und [[Izumo]] bzw. [[Takamatsu]] (der Zug wird in Okayama geteilt).
Der Zug hat Schlafabteile und offene, mit Teppich ausgelegte Schlafplätze (''nobi nobi''). Die ''nobi nobi''-Plätze sind für Besitzer eines Rail Passes kostenlos – man bringe tunlichst Ohrstöpsel. Für ein Schlafabteil muss man sämtliche Zuschläge selbst zahlen. Um zu Duschen kann man im Zug eine Wertkarte kaufen.
'''Nahverkehr'''
[[File:JREast-Musashino-line-JM34-Kita-fuchu-station-platform-20240113-112308.jpg|thumb|Einfahrende Züge halten punktgenau, so daß Zusteiger innerhalb der Markierungen richtig stehen und so die Aussteiger nicht behindern. In Bahnhöfen mit viel Betrieb hat man am Bahnsteig automatisch öffnende Türen installiert. Man wartet neben diesen.]]
Im Nahverkehr und in U-Bahn-Stationen muss man seine Fahrkarte an einem Automaten kaufen, der heute immer auf eine englische Anleitung umschaltbar ist. ''Diese Automaten akzeptieren keine Kreditkarten.''
Schaut man in so einem Fall einigermaßen hilflos, findet sich zum Glück fast immer ein netter Japaner, der seine Hilfe anbietet. Einige Hinweise:<br>
Normalerweise ist über dem Automaten ein großer Plan, auf dem der Standort rot und evtl. mit den Zeichen {{ja|当駅}} gekennzeichnet ist. Außenrum sind alle anderen Bahnhöfe zu denen man fahren kann. Darunter steht jeweils der Fahrpreis. Die näheren Bahnhöfe haben niedrigere Fahrpreise (die Fahrt kostet dann z. B. 140 ¥, für weitere Strecken steigt der Preis z. B. auf 2000 ¥). Wenn man seinen Zielbahnhof ausfindig gemacht hat, wirft man den zu zahlenden Betrag (oder mehr) in den Automaten. (Die meisten Automaten akzeptieren neben Münzen auch 1000 ¥-Scheine, einige sogar 5000 ¥- und 10000 ¥-Scheine). Dann leuchten Knöpfe mit den möglichen Fahrpreisen auf. Man drückt den Knopf mit dem gewünschten Betrag und nimmt Fahrschein und Wechselgeld. Wenn man den Preis nicht bestimmen kann, kauft man eine Fahrkarte mit dem minimalen Fahrpreis und zahlt am Ziel nach. (Dies gilt in Japan nicht als Schwarzfahren.) Nachzahlen kann man entweder an der besetzten Sperre oder einem Automaten.
In Kōbe, Kyoto, Nagoya, Ōsaka, Sapporo, Sendai, Tōkyō und Yokohama gibt es U-Bahnen. In Hiroshima, Nagasaki, Hakodate, u. a. Städten sind auch Straßenbahnen zu finden. Weiterhin gibt es auch Monorails z. B. in Naha, Hiroshima und zwei kurzen Linien in Tōkyō und anderen Städten.
Für manche Privatbahnen gibt es Mehrtageskarten. Für die Region Kansai mit den Städten Ōsaka, Kyoto, Himeji und Nara erhält man z. B. einen [https://www.surutto.com/ Drei-Tages-Pass] oder nur für Touristen den ''Kansai Train Pass,'' jeweils gültig für U-Bahnen und private Eisenbahnen.
=== Mit dem Flugzeug ===
Auf das Flugzeug sollte man bei weiteren Strecken zurückgreifen, wie z. B. Tōkyō - Okinawa, oder wenn dort kein Shinkansen fährt.
Dabei sollte man als Tourist allerdings nicht auf die normalen Inlandsflugtarife zurückgreifen, zumal diese auch sehr teuer sind. Stattdessen sollte man die zahlreichen Discountangebote ([https://www.japan-guide.com/e/e2364.html Discounttickets]) für Touristen in Augenschein nehmen, da diese teilweise sehr günstig sind.
=== Mit dem Bus ===
==== Fernverkehr ====
Die günstigste Möglichkeit, im Vergleich zu Flugzeug und Shinkansen, eine lange Strecke hinter sich zu bringen, stellen die (Nacht-)Busse dar. So kann man z. B. die Strecke von Tōkyō nach Hiroshima und zurück mit 12.000 ¥ bewältigen. Man ist dabei natürlich zwölf Stunden unterwegs, doch für Reisende, die im Auto gut schlafen können stellen sie eine gute Alternative dar: Die Nacht-Busse sind geräumig ausgelegt, haben recht komfortable Sitze und lichtundurchlässige Vorhänge, so daß gewöhnlich alle Fahrgäste innerhalb einer Stunde nach Abfahrt schlafen. Busverbindungen gibt es zwischen sehr vielen Städten Japans, Tickets erhält man auch in Reisebüros. Vom riesigen [[Tokio/Shinjuku#Anreise|''Expressway Bus Terminal'']] in Tōkyō-Shinjuku kommt man über Nacht in jede Stadt auf Honshū.
Der „Flix-Bus“ Japans ist ''Willer Express'' normalerweise mit 4er-Bestuhlung. Andere Unternehmen bieten mehr Komfort (25 versetze Einzelsitze pro Bus und eine Decke) zu fast dem doppelten Preis. Das kostet auf Langstrecken trotzdem nur etwa die Hälfte einer regulären Bahnfahrkarte.
==== Nahverkehr ====
[[File:Entetsu seiriken hakkoki.JPG|thumb|Modernes Busfahrkarten-System. Entweder man hält die Wertkarte bei Zustieg an den Leser oder man zieht unten aus dem Schlitz den Zettel mit der Nummer.]]
In den Großstädten muss man selten auf lokale Busse {{Ja|路線バス|w=rosen-basu|inKlammern=ja}} zurückgreifen. In kleinen Städten spielen sie dagegen eine wichtige Rolle und daher sollte das ungewöhnliche Bezahlsystem erwähnt werden. In den meisten Bussen muss man beim Einsteigen (durch die Hintertür) einen kleinen ''Fahrschein'' mit einer Nummer aus einem Automaten ziehen. Vorne im Bus befindet sich über dem Fahrer eine elektronische Anzeigetafel, die Nummern und Preise zeigt, die im Laufe der Fahrt steigen. Wenn man aussteigt, drückt man die Haltewunschtaste und sucht auf der Anzeigetafel den aktuellen Preis für die Nummer auf dem ''Fahrschein''. Diesen steckt man zusammen mit dem Geld in den Zahl-Automaten beim Fahrer und steigt durch die Vordertür aus. In der Regel muss man dabei exakt zahlen, dafür gibt es dann Automaten, die 1000 ¥-Scheine in Münzen wechseln. Wenn man nicht genug Kleingeld hat, sollte man rechtzeitig wechseln. Wertkarten sind hier hilfreich. Am einfachsten ist es natürlich, als Tourist eine Tageskarte zu lösen, die die meisten Unternehmen, die normalerweise ein örtliches Monopol haben, anbieten. Außerhalb der großen Städte fährt der letzte Bus meist schon um 18 Uhr!
Der Name der nächsten Haltestelle wird meistens im Bus angezeigt und durchgesagt – allerdings meist nur auf Japanisch. In der Regel kann man jedoch den Fahrer bitten, einen auf die Zielhaltestelle aufmerksam zu machen.
In Stadt-Bussen bezahlt man bei Zustieg vorne beim Fahrer, indem man Fahrgeld ''passend'' (es gibt beim Fahrer einen Wechselautomaten) in das Kästchen wirft.
Nutzt man das praktische, etwas verbilligte 11er-Ticket-Päckchen ''kaisōken'' (am Schalter vor dem Bahnhof, aber auch im Bus erhältlich), so wirft man eins davon in das Kästchen. Landesweit üblich ist, das ein ''kaisōken'' 11 (selten 12) Fahrten zum Preis von zehn kostet und auf einer bestimmten Bahn- oder Busstrecke gültig ist. Bleibt man also vier oder fünf Tage an einem Ort und pendelt vom Hotel in die Stadt spart man geringfügig Geld und Zeit.
=== Auf der Straße ===
[[File:HOKURIKU EXP(E8).svg|mini|2017 wurden die Autobahnen, die alle auch einen Namen haben, mit ''E'' für “Expressway” neu numeriert. Die entsprechende Beschilderung hier zeigt beispielhaft den ''Hokuriku''-Expressway.]]
[[File:Japan - Inverted gas pumps (3874821811).jpg|thumb|Zapf„säulen“ mit Schlauch von oben. Normalerweise mit Bedienung.]]
Auto fahren in Japan ist an sich sehr viel einfacher als man vermuten möchte, zumal heutzutage die meisten Autos mit Navigationsgeräten ausgestattet sind.
In Japan herrscht '''Linksverkehr''' und meistens eine recht defensive, allerdings auch etwas unumsichtige Fahrweise. Auch auf dem Land sind viele Verkehrsschilder neben japanisch auch englisch beschriftet. Mietwagen sind erschwinglich (ab 8000 ¥), Benzinkosten niedriger als in Europa, im August 2025 um 150 ¥/l, 10 Yen mehr an Autobahntankstellen.
Gerade auf dem Land bietet das Auto viele Vorteile und man kann Ziele erreichen die nicht oder nur schlecht an die öffentlichen Verkehrsmittel angebunden sind. Durch die relativ hohe '''Autobahnmaut''' und die recht niedrigen Tempolimits ist aber für Fernreisen der Shinkansen meist die bessere Wahl. Auch vom Stadtverkehr in den Ballungsgebieten Kantō und Kansai ist Ausländern ohne Japan- oder Japanischkenntnisse stark abzuraten, zumal die öffentlichen Verkehrsmittel hier hervorragend ausgebaut sind.
[[Internationaler Führerschein|Internationale Führerscheine]] Genfer Muster (das betrifft Österreicher) werden in Japan anerkannt. Deutsche und Schweizer (sowie Belgier, Franzosen, Italiener und Chinesen aus der Provinz Taiwan) können mit der japanischen Übersetzung ihres nationalen Führerscheins fahren. Man benötigt hierfür zwingend einen Kartenführerschein. Diese bekommt man nur noch online bei der [https://english.jaf.or.jp/driving-in-japan/drive-in-japan/about-dltas Japan Automobile Federation (JAF)]. Eine Übersetzung durch die JAF kann nur im Land beantragt werden und kostet 4000 ¥, die über einen Automaten im Convenience Store bezahlt werden muß. In manchen Büros ist eine Ausstellung innerhalb eines Tages möglich. <small>(Stand Juli 2025 plant die Regierung ab 2026 die Vorschriften für die Umschreibung deutlich zu verschärfen und Prüfungen zwingend vorzuschreiben. Inwieweit das für Kurzzeit-Besucher gilt ist noch nicht klar. {{Zukunft|2026|10}})</small>
Seit 2006 wird an vielen Stellen rigoros und prompt gegen '''Falschparker''' vorgegangen - anders als bei anderen Gelegenheiten hilft hier kein „Ausländerbonus.“ Strafen sind hoch ([https://wwwtb.mlit.go.jp/kyushu/content/000039671.pdf engl. Übersicht]), für falsch parken ist man schnell mit ¥ 10.000 dabei. In großen Städten wird an Hauptstraßen schnell abgeschleppt. Viele Autovermieter kassieren gar ¥ 25.000 oder 50.000 nachträglich von der Kreditkarte des Mieters, falls jener den Strafzettel nicht vor Rückgabe des Wagens bezahlt hatte.
Etwa die Hälfte japanische '''Tankstellen''' akzeptieren kein Teufelszeug wie ausländischen Kreditkarten. Seit 2020 gibt es immer mehr Automaten-Zapfsäulen, um Personal zu sparen. Deren Benutzerführung ist bei manchen Firmen nur auf japanisch, der Bedienungsablauf wie folgt: 1) Man zahlt im voraus bar oder mit einer der landesweiten Wertkarten eine bestimmte Summe; 2) es gibt zwei oder drei (farbkodierte) Schläuche für Treibstoffarten, als da sind Diesel ({{Ja|軽油}}), Normal ({{Ja|レギュラー}}) und Super (abgek.: {{Ja|ハイオク|w=high oku}}); 3) am Touchscreen betätigt man die Summe und Treibstoffart; 4) berührt auf Schlauchhöhe den Knopf, um sich von statischer Elektrizität zu befreien; 5) zapft wie gewohnt selbst; 6) entnimmt den Kassenzettel (darauf weist eine piepsige Stimme hin) aus dem Fach {{Ja|レシート |w=reshito}}; 7) sucht dann den Wechselgeldautomaten, oft markiert durch ein fettes ¥-Schild und/oder dem japanischen Zeichen für Rückgeld. Der Streifen- oder QR-Code auf dem Beleg wird gescannt, dann kommt irgendwo Restgeld heraus.<br>
Beachte, daß wenn in einem japanischen Auto die Benzinwarnleuchte angeht, nur noch für etwa fünfzehn Kilometer Sprit im Tank ist.
Motorrad-Verleih ist im Land des aufgehenden Motorradlächelns weniger üblich, eher bekommt man Roller. {{Siehe auch|Camping_in_Japan#Caravan_und_Wohnwagen|titel1=Feinheiten der Wohnmobilmiete}} in Japan.
Seit 1. Apr. 2023 gilt Helmpflicht für Radfahrer. Diese Vorschrift ist nicht strafbewehrt.
==== Taxi ====
Japanische Taxen sind extrem gepflegt, die Sitze oft mit Häkeldeckchen o. ä. überzogen. Der Fahrgast sitzt immer im Fond! Der Schlag (links) wird vom Fahrer durch einen Hebel geöffnet und geschlossen. Zwar ist das manuelle Öffnen/Schließen der Türen möglich wird aber, da der Mechanismus beschädigt werden kann zu bösen Reaktionen des (fast immer männlichen) Fahrers führen. <br>
Die Grundgebühr (an der Seitentür angeschrieben) liegt lokal unterschiedlich um 730 ¥ + 300 ¥/km {{Stand|2023}}. Nachtzuschläge von meist zwanzig Prozent sind 22–5 Uhr üblich. Taxifahrer, die sich erst selbständig machen können nachdem sie zehn Jahre unfallfrei für eine Firma gefahren sind, tragen weiße Glacé-Handschuhe. Was sie nicht haben müssen ist Ortskunde. Gerade in größeren Städten ist es wegen des undurchschaubaren Nummerierungssystems und dem fast völligen Fehlen von Straßennamen (Ausnahme Kyoto) unerlässlich, dass der Fahrgast eine Wegbeschreibung gibt. GPS und Navi hat die Situation etwas gebessert. Touristen sollten immer eine Visitenkarte ihrer Unterkunft mitführen, da diese üblicherweise eine kleine Umgebungskarte enthält. Beachte: Trinkgeld gibt man in Japan nicht, dafür wird man von den Fahrern auch nie beschissen. Sollte es doch Probleme geben: in jedem Taxi ist die Lizenz des Fahrers vorne bei der Windschutzscheibe klar sichtbar aufgestellt.
Man bekommt ein Taxi am Stand (meist vor Bahnhöfen) oder heranwinken. Nur Taxis mit rotem Schild ({{ja|空車}} = frei) halten an, grüne oder orange Zeichen {{ja|賃走}} heißen belegt.
Die Taxi-App ''GO'' hat einen Marktanteil von achtzig Prozent, die Fahrt kostet aber einige hundert Yen mehr als wenn man direkt ein Taxi nimmt.
=== Mit dem Schiff ===
Die [https://www.jlc-ferry.jp/en/kouro.html ''Japan Long Course Ferry Service Association''] ist eine Zusammenschluss von neun Reedereien, die Langstreckenfähren zwischen den vier Hauptinseln betreiben, aber nicht nach [[Okinawa (Präfektur)|Okinawa]] oder den [[Izu-Inseln]]. Angeboten werden bis zu 15 Strecken, einige nur im Sommer. <!-- prüfe ob wieder verfügbar (2023-08-12) Attraktiv war das 2019 eingeführte Angebot ''Japan Ferry Pass'' (JFP21) mit dem ausländische Touristen, außerhalb der Spitzenzeiten sechs Strecken während drei Wochen befahren werden konnten. Seit April 2020 arbeitet man an einem geänderten Konzept. Scheint 2023 nicht wieder verfügbar. -->
=== Zu Fuß ===
'''{{Hauptartikel|Wandern in Japan}}'''
== Sprache ==
{{Hauptartikel|Sprachführer Japanisch}}
Die Landessprache ist Japanisch, das in unterschiedlichen Dialekten – je nach Region – gesprochen wird. Die japanische Sprache verwendet neben den ursprünglich chinesischen Schriftzeichen (''Kanji'') zwei eigene Silbenschriftsysteme (Hiragana und Katakana). Letzteres wird heute vor allem zur Darstellung von Fremdwörtern verwendet. Straßen, Bahnhöfe und Ähnliches sind meist in ''Kanji'' und in lateinischer Umschrift (''Rōmaji'') beschildert. Auf den Bahnsteigen steht der Name auch in ''Hiragana,'' da Namenslesungen von der Normalsprache auch regional abweichen können, so daß sich selbst für Japaner nur so die korrekte Lesung erschließt. Zwar lernen heute alle Japaner Englisch in der Schule, dennoch sind die praktischen Englischkenntnisse eher gering, weil fast alle Schulen mehr Wert auf Grammatik denn Konversation legen; auch ist die Aussprache sehr schlecht. Dank der großen Hilfsbereitschaft gegenüber Touristen ist eine Verständigung meist trotzdem nicht schwer. Deutsche Sprachkenntnisse sind bei jungen Japanern sehr selten.
'''Aussprache:''' In deutschen Büchern wird Japanisch natürlich üblicherweise in der lateinische Umschrift Rōmaji angegeben, normalerweise im [[w:Hepburn-System|Hepburn-System]].
Hier ein paar Hilfen zur Aussprache dieser Umschrift: Im allgemeinen wird alles ausgesprochen wie geschrieben mit folgenden Ausnahmen. Im Japanischen werden Vokale entweder kurz oder lang ausgesprochen, die lange Aussprache wird durch den sogenannten Macron gekennzeichnet, ein Strich über dem Vokal, also beispielsweise „ō“ und „ū“. Dies ist für die Bedeutung sehr wichtig. Leider wird diese Aussprachehilfe in einigen Büchern und in von Amerikanern geschriebenen Texten oft weggelassen, dann weiß man nicht, ob es kurz oder lang gesprochen wird. Manche Lehrbücher übernehmen auch die japanische Praxis die Länge durch ein kleines ''u'' anzuzeigen, z. B. おぅ = ou, was aber als ō zu lesen wäre.
Ein End-''u'' wird in Ostjapan gerne verschluckt: also ''des’'' statt ''desu.'' Umschriftliches ''j'' spricht man wie den ersten Buchstaben von ''Journal'' aus, ''y'' wie ''j,'' ''sh'' wie ''sch,'' ''chi'' wie ''tschi.'' Ein ''s'' spricht man wie das ''ß'' von ''Fleiß'' aus und ''z'' wie das ''s'' in ''Sausewind''. Bei Diphthongen, wie ''ei'' wird das ''e'' auch als ''e'' gesprochen, also nicht ''ai.'' Das ''r'' wird eher wie eine Mischung aus ''l'' und ''r'' ausgesprochen, ein ''l'' gibt es im Japanischen nicht. Ein Gutturalstop wird durch Konsonantenverdoppelung angezeigt. Beispiel: ''Sapporo'' spricht man ungefähr wie ''ßa-porro'' aus.
Auf Bindestriche zwischen Silben kann in der Umschrift verzichtet werden. Ihre Verwendung vor allem in der Reiseliteratur und in Prospekten geschieht weder einheitlich noch konsequent. Zudem kann eine einzelne Silbe häufig mehrere voneinander völlig unterschiedliche Bedeutungen haben, die erst im Wortzusammenhang den richtigen Sinn ergeben. Durch den Wortzusammenhang werden etwaige Zweideutigkeiten in der Lesung zumeist vermieden.
'''Für Faule:''' Mit folgenden vier Wörtern kommt man schon ganz gut zurecht:
* ''Suimasen'' oder (sehr höflich) ''Sumimasen,'' umgangssprachlich auch ''Gomme’ne:'' „Entschuldigung“ in allen Formen:
** … dass ich Sie angerempelt habe
** … kann ich hier mal durch?
** … könnten Sie bitte?
* '''Arigatō:''' „Danke“. Sehr höfliche Form: ''Arigatō Gozaimasu.'' Eine einfaches ''domo'' reicht im Alltag.
* '''Konichi wa:''' „Hallo/Guten Tag“ '''Komban wa''' „guten Abend”
* '''Hai:''' „Ja“ oder auch „ich habe verstanden/gehört", „alles klar“ bedeutet nicht Zustimmung zum gesagten – will man wirkliche Zustimmung zum Gesagten ausdrücken verwendet man: „so des’“
* Ablehnung wird normalerweise nicht mit einem direkten „Nein“ (''Iie'') ausgedrückt. Stattdessen werden Umschreibungen (z. B. ''chigau'' (höfl. Form: ''chigaimasu,'' „anders“) benutzt, um den Gegenüber nicht vor den Kopf zu stoßen. ''Damme,'' bedeutet „laß das“ auch i.S.v. „nicht anfassen.“
* eine Frage stellt man in dem man ein ''-ka'' (mit steigendem Ton anhängt), z. B. ''… doku des’ ka'' „Wo ist …?“
; Japanische Namen
In Japan wird der Familienname vor dem Vornamen genannt. Im Kontakt mit Ausländern stellen Japaner aber häufig auf „unsere“ Reihenfolge um, so machen es auch die meisten Reiseführer. Um klarzumachen, was gemeint ist, wird der Familienname manchmal in Großbuchstaben geschrieben. Beispiel: Der bei uns unter dem Namen Akira KUROSAWA bekannte Regisseur heißt eigentlich KUROSAWA Akira.
; Anrede
Spricht man zu (oder über) jemand anderen, hängt man ''immer'' ein „Höflichkeits-Suffix“ an den Namen an. Fast immer richtig ist ''…-san'' hinter den Nachnamen (egal ob Mann oder Frau), das entspricht unserem Herrn oder Frau. Beispiel: „Kurosawa-san“ ist Herr Kurosawa oder Frau Kurosawa. Sich mit Vornamen anzusprechen, ist in Japan nur unter guten Freunden üblich – auch da wird ein -san angehängt.
Der eigene Namen wird '''immer ohne''' Suffix verwendet.
Das Japanische kennt eine größere Auswahl solcher Suffixe (z. B. …-sensei für Lehrer, Ärzte und Politiker) die verschiedene Grade von Respekt, Nähe, Rang und Stellung ausdrücken können. Mit ''-san'' liegt man aber fast immer richtig.
== Aktivitäten ==
Jeder Tempel oder Schrein hat sein jährliches Fest. In jeder Stadt werden ein oder zwei Mal jährlich mobile Schreine mit viel Geschrei und Musik durch die Straßen gezerrt.
=== Outdoor ===
'''[[Wandern in Japan|Wandern]]''' auf Tagestouren ist in Japan sehr beliebt, Fernwanderungen nehmen oft die Form von Pilgerfahrten einer Reihe von Tempeln an. Das Land besteht zu siebzig Prozent aus Bergen und Wäldern und bietet für den Naturliebhaber zahlreiche Highlights.
'''Bergsteigen''' ist in Japan sehr einfach, die meisten Berge sind ausgezeichnet erschlossen und verfügen über eine gute Infrastruktur. Der höchste Berg Japans, der Fujisan, kann auf dem offiziellen Wanderpfad ohne alpinistische Kenntnisse erklommen werden. Etwas ungewohnt für Bergsteiger, die sonst eher mit heimischen Gefilden vertraut sind, sind die relativ strikten Saisonzeiten. Außerhalb der Hochsaison, das ist in der Regel Juli bis September, schließen alle Wanderhütten im Land - so etwas wie eine Nebensaison kennt man in Japan nicht. Eine Bergwacht ist gänzlich unbekannt. Wer also außerhalb des Hochsommers die Berge erklimmen möchte, sollte genügend Proviant und Vorräte mitbringen. Umgekehrt kann der Andrang an den Wochenenden in der Saison sehr groß sein, wer also lieber alleine auf Wandertour geht, sollte die Wochenenden meiden.
'''Wintersport''' ist in Japan dank der relativ kalten Winter sehr gut möglich. Die bekanntesten Gebiete sind die sogenannten ''Japanischen Alpen'' auf den Osthängen der Insel Honshū sowie die Insel Hokkaidō mit seinem fast schon sibirischen Klima. Die Preise sind verglichen mit dem europäischen Alpenraum sehr günstig. Wer als Ausländer in Japan Skifahren möchte, sollte allerdings seine Ausrüstung selber mitbringen, da diese in europäischen Größen vor Ort kaum erhältlich ist. Die Zahl der Winrtrsportressort hat zwischen 2000 und 2025 um vierzig Prozent, von 700 auf 417 abgenommen, bei vielen älteren Anlagen besteht Investitionsstau.
=== Sport gucken ===
[[File:Kyotei - Sept 7 2021.webm|thumb|Professionelles Motorbootrennen]]
Für den passiven Zuschauer bietet Japan den passenden Sport für jedermann. Im kaum einem anderen Land lassen sich so viele Sportarten bewundern wie hier.
* '''[[w:Baseball in Japan|Baseball]],''' in Japan ''yakyū'' {{Ja|野球|inKlammern=ja}} genannt, ist der wohl beliebteste Sport des Landes und eine der wenigen Zentren dieses Sports außerhalb der Vereinigten Staaten. Es gibt im Land zwei Ligen mit je sechs Teams, die [[w:Central League|Central League]] und die [[w:Pacific League|Pacific League]], die ihre Wettkämpfe von April bis September austragen. Die besten Mannschaften aus beiden Ligen spielen anschließend von Oktober bis November in der [[w:Nippon Series|Nippon Series]] um den japanischen Meistertitel. Wer ein Baseballspiel anschauen möchte, kann Tickets normalerweise bis kurz vor Spielbeginn kaufen, ausverkaufte Stadien gibt es allenfalls bei sehr beliebten Matches. Anders als in Amerika gibt es eine Zeitbegrenzung wobei das letzte Inning keinesfalls später als 3½ Stunden nach Beginn des ersten anfangen darf und die Spieldauer generell auf 12, selten 15 Innings begrenzt ist.
* '''[[w:Fußball in Japan|Fußball]]''' fristete in Japan bis in die 1990er ein Schattendasein, belegt aber heute den zweiten Platz der beliebtesten Sportarten. Die japanische Profiliga im Männerfußball heißt J-League oder auf Japanisch ''J rīgu'' {{Ja|Jリーグ|inKlammern=ja}} und ist unterteilt in J1 League, J2 League und J3 League, daneben gibt es noch den [[w:Kaiserpokal|Kaiserpokal]] (''tennōhai'' {{Ja|天皇杯}}) als Pokalwettbewerb. Die japanische Fußballnationalmannschaft gehört zu den stärksten Mannschaften Asiens, ist aber international noch nicht so erfolgreich wie die europäischen oder südamerikanischen Kicker.
* '''[[w:Sumo|Sumo]]''' im Japanischen mit langem O, also ''sumō'' {{Ja|相撲|inKlammern=ja}}, gehört zu den traditionellen Sportarten des Landes. Das Ziel ist es, in einem Ringkampf den Gegner entweder umzuwerfen, so daß er mit einem anderen Körperteil als der Fußsohle den Boden berührt, oder den Gegner aus dem Ring zu stoßen. Der eigentliche Kampf dauert dabei häufig nur wenige Sekunden, die traditionellen Zeremonien rund um den Sumokampf nehmen einen bedeutend größeren Anteil ein. Da es im Sumo keine Gewichtsklassen gibt, sind schwere Kämpfer deutlich im Vorteil, weshalb professionelle Sumokämpfer sich einer besonderen Mastkur unterziehen und so viel Gewicht wie möglich zulegen - eine Tradition, die aufgrund der gesundheitlichen Risiken, die mit der Gewichtszunahme eingehen, zunehmend umstritten ist. Sumo ist traditionell eine Männerdomäne, Frauen ist die Teilnahme am Sumowettkampf und das Betreten des Rings generell untersagt. Pro Jahr finden sechs 15tägige Tourniere statt, drei in Tōkyō und drei in der Provinz. Gute Karten sind für Kurzzeitbesucher ohne Beziehungen nicht zu bekommen. Wer früh aufsteht kann Restkarten auf den billigen Plätzen ergattern. Die Kämpfe der obersten Klasse werden ca. 17.00-18.00 Uhr im Staatsfernsehen NHK live gezeigt.
* '''Pferderennen,''' in Japan ''keiba'' {{Ja|競馬|inKlammern=ja}} genannt, sind im Land äußerst beliebt. Dies auch weil hierbei Wetten erlaubt sind, wohingegen man sonst jeder Art von Glücksspiel sehr ablehnend gegenüber steht.
* '''Bootsrennen''' ({{ja|競艇|w=Kyōtei}}) sind eine weitere „Sportart“ bei der seit 1952 im „Stadion,“ einem 600 Meter langen ovalen Kurs, gewettet werden darf. Ein Teil des Profits verteilt die wohltätige ''Nippon Foundation,'' gegründet vom als Kriegsverbrecher angeklagten [[w:Ryoichi Sasakawa|Sasakawa Ryoichi]]. Sollte man sich an einem Renntag in einer der 24 Städte mit Stadien aufhalten kann dies eine nette Art sein einen Nachmittag zu verbringen. Der Eintritt an sich ist gering.
* '''Golf''' wurde von den Amerikanern bekannt gemacht. Aufgrund der beengten Platzverhältnisse ist Golf kein Volkssport wie in vielen englischsprachigen Ländern. Zur Zeit der “Bubble” in den 1980ern wurde es ''de rigeur'' für [[w:Salaryman|Salarymen]] vom mittleren Management aufwärts diesen Sport zu betreiben. Dabei wurden Anteile an Golfclubs, nötig zur Spielberechtigung, hochpreisige Spekulationsobjekte. Wer als Besucher spielen möchte, muß die entsprechenden Preise vor Ort erfragen. In besseren Clubs ist die Empfehlung eines Mitglieds nötig. Man sollte von Preisen von ¥ 20000-30000 nicht überrascht sein (saisonal und an Wochenenden teurer). Es wundert nicht, dass viele Gemeinden derartigen „Luxussport“ besteuern. In Tōkyō sind zum Beispiel, je nach Platzqualität, zusätzlich ¥ 400-1200 pro Runde fällig. {{Stand|2023|07}}
===Spiele===
Spiele sind in Japan ein durchaus beliebter Zeitvertreib, allerdings sind die japanischen Spiele im Westen häufig unbekannt.
* '''[[w:Go (Spiel)|Go]]''' {{Ja|碁|inKlammern=ja}} ist ein ursprünglich aus China stammendes Brettspiel, das heute in Japan ein ähnlich hohes Ansehen genießt wie Schach im Westen. Die Regeln sind schnell gelernt: auf einem Spielfeld mit üblicherweise 19 × 19 Linien (es gibt auch kleinere Spielfelder für Anfänger oder kurze Partien) werden abwechselnd Steine auf die Schnittpunkte gelegt (361 an der Zahl); wer am Ende das größte Territorium kontrolliert, gewinnt. Was einfach klingt, ist in Wirklichkeit ein hochkomplexes Spiel, nur wenige Spieler aus dem Ausland haben es bisher in die hohen japanischen Ränge geschafft und trotz des technischen Fortschritts schafften es Computer erst 2016, einen professionellen Go-Spieler zu besiegen, 19 Jahre später als beim Schach.
* '''[[w:Shōgi|Shōgi]]''' {{Ja|将棋|inKlammern=ja}} ist die japanische Variante des westlichen Schachspiels, die mit beschrifteten Steinen (''koma'' {{Ja|駒}}) statt mit Figuren gespielt wird. Der größte Unterschied ist, dass geschlagene Steine nicht einfach aus dem Spielfeld verschwinden, sondern als eigene Steine wieder in das Spiel gebracht werden können.
=== Baden ===
{{Scroll Gallery
|title = Japanische Bäder
|File:Washing up at the Japanese public bath.jpg|Gewöhnungsbedürftig ist es sich im Gemeinschaftsbad (ohne Duschen) sitzend einzuseifen und zu waschen. Man bekommt einen niedrigen Hocker aus Plastik (25–30 cm) und kauert auf diesem vor einem der niedrigen Wasserhähne aus denen man eine Schüssel befüllt mit der man sich dann übergießt. Trennwände wie die gezeigten sind selten.
|Japanese communal bathhouse SENTO Sentō 銭湯の浴室.jpg|''Sentō'' mit frisch renoviertem Wandgemälde was durch Spezialisten einmal jährlich erfolgt.
|Bath in the prison.png|Gemeinschaftsbad im Gefängnis
}}
Die japanische Badekultur, hier nicht im Sinne von „schwimmen gehen“, unterscheidet sich deutlich von unserer. Japan hat als Insel vulkanischen Ursprungs viele heiße Quellen, die seit alters her zur Entspannung und Heilung genutzt wurden. Dementsprechend dienen Bäder in Japan nicht der Unterhaltung (den Typus Spaßbad gibt es in Japan fast nicht), sondern der Erholung und auch der Geselligkeit; es ist nicht unüblich, dass Freunde oder Arbeitskollegen in Japan gemeinsam baden gehen und im Becken einen netten Plausch halten. Geredet wird im Becken nur in angemessener Lautstärke.
Bäder, die aus diesen heißen Quellen gespeist werden (in Europa würde man dazu Thermalbad sagen), heißen in Japan '''[[w:Onsen|Onsen]]''' {{Ja|温泉|inKlammern=ja}} und finden sich im ganzen Land. Seit 1948 verlangt die gesetzliche Definition, daß die Quelle mindestens 25 °C hat und ihre Erwärmung aufgrund geothermischer (vulkanischer) Aktivität erfolgt. Ein eventueller Mineralgehalt ist weniger wichtig, aber zumindest Spuren von (achtzehn definierten) Mineralien sollen präsent sein. Der größte Unterschied zum Westen ist, dass in Japan grundsätzlich '''nackt gebadet''' wird; die Bäder sind deshalb seit der amerikanischen Besatzungszeit nach Geschlechtern getrennt. In besonders entlegenen Regionen gibt es öffentliche heiße Quellen ohne jede Infrastruktur, die kostenlos benutzt werden können, häufig ist hier die Aussicht aus dem Badebecken das eigentliche Erlebnis. Solche Becken im Freien heißen ''rotemburo.'' Viele Reiseführer erwähnen, daß der „Zutritt für Personen mit Tätowierungen“ verboten ist. Das bezieht sich auf die großflächigen oft künstlerisch hochwertigen Tätowierungen, die japanische Gangster (''yakuza'') als „Berufskleidung“ haben. Ein Ausländer, der einen Anker am Unterarm oder ein Arschgeweih hat, wird seltenst Probleme bekommen, manche Badehäuser verlangen das Aufbringen von Pflastern. Etwa die Hälfte der Onsen lassen wegen der auch in Japan immer üblicher gewordenen Tätowierung der Allgemeiheit derart gekennzeichnete rein, man muß aber am Eingang sicherheitshalber fragen. Online-Hineise bietet [https://www.tattoofriendlyonsen.com/ tattoofriendlyonsen.com] oder [https://www.japanonsenexplorer.com japanonsenexplorer.com].<br>
Frauen deren Haar lang genug ist, um ins Wasser des Beckens zu hängen, sollten es hochknoten. ''Konyoku onsen,'' also Bäder für Männlein und Weiblein gemischt findet man manchmal in ländlichen Gegenden – gestarrt wird trotzdem nicht. In wirklich abgelegenen Ecken findet man manchmal auch [https://www.google.com/maps/d/viewer?mid=1ZBVjXbJKXFgt7AFBFQlSn5Zx3to&hl=en_US&ll=43.549493866961086%2C142.26725382663727&z=8 gratis der Allgemeinheit zur Verfügung] stehende Becken (im Freien)
Bei einem {{Ja|銭湯|w=sentō|inKlammern=ja}} handelt es sich um ein '''öffentliches Bad.''' Sie stammen aus der Zeit, als viele japanische Haushalte noch keine eigene Badewanne hatten; inzwischen werden sie leider immer seltener. Die Stadtverwaltung setzt für die Benutzung einen einheitlichen Preis fest, der 2025 z. B. in Tōkyō 550 ¥ betrug. Seife und Shampoo sind immer vorhanden, Handtücher kann man für üblicherweise 200+ ¥ mieten. Gerade die kleineren Nachbarschaftsbäder sollte man sich als Tourist nicht entgehen lassen. Geöffnet ist bei einem Ruhetag pro Woche normalerweise 15:00/16:00-22:00/23:00. Dabei ist die Badeetikette unbedingt zu beachten: '''zuerst ordentlich duschen, so daß keinerlei Seife verbleibt, erst dann in die heiße Wanne.''' Auch wenn man aus dem großen Becken heißes Wasser schöpft, um sich zu übergießen, macht man das so daß man außerhalb steht und das verwendete Wasser nicht wieder ins Becken zurückfließt. Alle sind nackt, Männlein und Weiblein getrennt. Dabei zeigt ein roter Vorhang die Frauen-, einer blauer die Männerabteilung an.<ref>{{Internet|Titel=銭湯の基本ルール7カ条|URL=https://www.setagaya1010.tokyo/rule/|Website=東京都公衆浴場業生活衛生同業組合 世田谷支部|Archiv-URL=https://web.archive.org/web/20210520051148/https://www.setagaya1010.tokyo/rule/ |Archiv-Datum=2021-05-20|Sprache=ja}}</ref> Auch hier wurden Tätowierte üblicherweise nicht geduldet, viele Betreiber haben inzwischen eingesehen, daß sie es sich nicht mehr leisten können Kundschaft zu vergraulen, so daß der Zutritt erlaubt wird..
Wer in Japan '''Badestrände''' sucht, wird sich wundern, wie wenige es im Land gibt. Häufig reicht die städtische Bebauung bis fast an den Meeresrand, oder das Land fällt steil zur Küste herab. Für den Strandurlaub fliegen viele Japaner deshalb ins Ausland oder Okinawa. Viele auf den Hauptinseln sind aus dunkler vulkanischer Asche. Falls die Strände bewirtschaftet sind, ist gnadenlos zum 1. September Saisonende. FKK-Strände gibt es keine.
Beim '''Schwimmen in Hallen- oder Freibädern''' gilt vielerorts noch Bademützenzwang (auch außerhalb des Wasser in der Halle). Solche werden an der Kasse normalerweise verkauft. Manche Bäder verlangen, daß man von ihnen für jeden Besuch ein Handtuch mietet. Oft gibt es getrennte Bereiche (Bahnen) für „Kampfschwimmer“ und normale Besucher. Am aller-ungewöhnlichsten ist die stündliche Zwangspause: für fünf oder zehn Minuten muß jedermann das Becken verlassen. Daß diese Zeit beginnt weiß man, wenn Musik erklingt. In einigen Orten gelten subventionierte Einheimischenpreise, dann wird an der Kasse der Ausweis verlangt.
Beachte, daß man im '''Soapland''' (früher ''Turko'' „türkisches Bad“ bis sich der Botschafter auftregte) falls man als Ausländer reindarf, „eingeseift“ wird, wobei dann schnell ¥ 45.000–70.000/70 Min. fällig werden. Die Brieftasche wird von den betreuenden „Damen“ eben ausgepült. Solche Betriebe haben oft einen Yakuza als Türsteher, mit dem selten gut Kirschen essen ist wenn man sich über die Preise beschwert.
== Einkaufen ==
Die japanische Währung ist der '''Japanische Yen,''' abgekürzt ¥ (oder '''JPY''' bei Wechselkursen). Im Japanischen wird das Zeichen 円 verwendet.
* '''Münzen:''' 1, 5, 10, 50, 100, 500 ¥. Es gibt zwei 500 ¥-Münzen: die alten sind silberfarben, die neuen goldfarben.
* '''Scheine:''' 1000, 2000 (außer Verkehr), 5000 und 10000 ¥. Im Laufe des Jahres 2024 beginnt die Ausgabe komplett neu gestalteter Banknoten. Selbst bei kleinen Einkäufen wird kaum ein Händler die Annahme eines 10000 ¥-Scheins verweigern.
Der Wechselkurs des Yen zum Euro lag lange Zeit bei ca. 1 € = 150 Yen. Seit der Finanzkrise gewann der Yen gegenüber dem Euro erheblich an Wert und verteuerte einen Urlaub in Japan für Reisende aus dem Euroraum. In den letzten Jahren zeigte jedoch der Yen eine anhaltende Schwäche gegenüber allen anderen Währungen, so verlor der Yen gegenüber dem Dollar in den 2020–23 fast 40 Prozent an Wert, und eine Trendwende ist bislang nicht in Sicht. Dies macht einen Einkauf in Japan für Urlauber aus westlichen Ländern wieder sehr attraktiv.
{{Tipp|Unglaublich aber wahr: Die meisten Geldautomaten werden abends abgeschaltet (wochentags: ca. 20:00-21:00 Uhr, Wochenende 18:00 Uhr). In einigen Städten gibt es Automaten, die bis 23:00 Uhr aufhaben. Das bedeutet, dass selbst an den beliebtesten Orten keine Möglichkeit mehr besteht, an Geld zu gelangen. Ausnahmen sind die Automaten in den '''Convenience Stores''' der Kette 7-eleven. In diesen Läden findet man meist einen roten Geldautomaten mit der Aufschrift ''7 Bank.''}}
Japan ist '''Bargeldland.''' Zwar nehmen Hotels und Geschäfte, die häufig ausländische Kunden haben, auch Kreditkarten an, in vielen kleinen Geschäften kann aber ''nur bar'' bezahlt werden. Selbst wenn man mit Kreditkarte zahlen kann, gilt dies meist erst ab einem Mindestbetrag und gegen eine geringe Gebühr. Es ist daher üblich, in kleineren Städten oder abgelegenen Gegenden sogar notwendig größere Geldbeträge herumzutragen. Dank der geringen Kriminalität ist dies aber ungefährlich.
In den meisten größeren Banken kann man Geld wechseln. Die Kurse sind überall ungefähr gleich (außer in Flughäfen, hier gilt die weltweit übliche Abzocke). Man sollte 15-30 Minuten Wartezeit einplanen. Es gibt keine Panzerglas-Kassen, der Kunde erhält nach Vortragen seines Anliegens ein Plastiktellerchen mit einer Nummernmarke und wartet entspannt im in allen größeren Filialen vorhandenen Ledersofa. Im Gegensatz zu Euro, Dollar oder Pfund werden andere asiatische Währungen oft nicht angenommen, allenfalls in den Wechselstuben im [[Flughafen Narita]]. Wenn man größere Geldbeträge wechseln will (z. B. mehr als 500 Euro), kann es zu Problemen kommen. Meist ist dies nur möglich, wenn man ein Konto bei der Bank hat.
[[File:Sake vending machine (3551551152).jpg|mini|left|''Sake''-Verkaufsautomat. Wie Bierautomaten schalten diese, in Tōkyō selten gewordenen, Geräte von 23:00-6:00 Uhr ab, bei vielen geht die Uhr nicht sehr genau (15-20 Minuten Toleranz).]]
[[File:Diaper vending machine (17174125212).jpg|mini|Verkaufsautomat für Windeln.]]
Viele japanische '''Geldautomaten''' akzeptieren keine ausländischen Karten. Geld bekommt man unter anderem bei der japanischen '''Postbank''' (JP Bank) also beim Postamt, den Automaten in den '''7-eleven''' (7 Bank) und bei der '''Citibank''' (in Deutschland jetzt Targo). Die Geldautomaten der japanischen Postämter haben neben japanischen auch englische Bedienungshinweise. Sie nehmen Karten des ''Cirrus-'' und ''Maestro''-Systems, sowie ''Mastercard, Visa, American Express'' und ''Diners Club.''
Japan ist bekannt für seine riesigen '''Konsumtempel,''' die ''depāto'' ({{Ja|デパート}}, vom englischen ''department store''). Hier gibt es auf mehreren Stockwerken alles, was das Herz begehrt, mit einem für deutsche Verhältnisse ungewohnten Service von Einweisern, die einen in die gewünschte Sektion leiten und dabei gleich den Fahrstuhl passend bedienen. Die meisten Touristen kommen nach Japan wegen der Manga und Anime; dabei geht es weniger um die Medien selbst (diese sind im Land nicht nur sehr teuer, sondern wegen der Sprachbarriere meist unverständlich) als um das zugehörige Merchandise wie z. B. Figuren aus den Anime oder Poster, die außerhalb Japans nur schwer oder gar nicht erhältlich sind. Auch für Elektronik kann sich ein Ausflug nach Japan lohnen: Kleingeräte wie z. B. Digitalkameras sind in Japan nahezu überall erhältlich und funktionieren weltweit; Großgeräte wie DVD-Player und Laptops waren lange auch wegen den unterschiedlichen Stromsystemen häufig problematisch (in Japan beträgt die Netzspannung nur 100 V). Bei Smartphones muss man aufpassen: japanische Smartphones geben bei Nutzung der Kamera ein lautes Geräusch ab, das sich nicht abschalten lässt - das dient der Unterbindung des sogenannten [[w:Upskirting|Upskirting]], in Japan ein großes gesellschaftliches Problem.
Was '''Kleidung''' betrifft, gehört der [[w:Kimono|Kimono]] {{Ja|着物|inKlammern=ja}} wohl zu den beliebtesten Mitbringseln. Es gibt Kimono sowohl als Konfektionsware als auch maßgeschneidert; einen günstigen Kimono kann man schon für ¥ 6000 bekommen (das ist dann aber oft eher ein ''yukata''), bei maßgeschneiderten, handgefertigten Frauenkimonos kommt man schnell in die Region ¥ 200.000 und aufwärts, es gibt nach oben hin nahezu keine Grenze. Aber Achtung: bei der Wahl des richtigen Kimonos kann man sehr viel schief machen. Ohne zumindest eine Fachanleitung aus dem Internet sollte man sich nicht in das Abenteuer stürzen. Selbstverständlich gibt es in Japan auch „normale“ Kleidung, wobei die Japaner durchschnittlich kleiner als Europäer sind, so daß es große Menschen schwer haben werden in Japan passende Kleidung zu finden. Männerschuhe über Größe 43 (japanisch 27,5) sucht man vergebens, abgesehen von wenigen Spezialgeschäften in den Großstädten.
'''Automaten''' stehen in Japan an jeder Straßenecke und verkaufen meist Getränke (normalerweise 100 bis 160 ¥ für 0,5 l) oder Tabakwaren. Zigaretten aus dem Automaten gibt es nur noch mit der speziellen Ausweiskarte ''TASPO'' oder dem japanischen Führerschein. Es gibt auch Automaten für ungewöhnliche Dinge wie Batterien, Reis im 2- oder 5-Kilo-Sack oder Manga; in der Praxis sieht man sie aber eher selten. Bezahlt werden kann mit Münzen (10 ¥ oder größer), oft auch mit Scheinen (1000 ¥, manchmal auch größer). Manchmal, insbesondere in und bei Bahnhöfen, können auch Nahverkehrs-Wertkarten (z. B. Suica, Pasmo, …) verwendet werden.
Die '''Mehrwertsteuer''' beträgt aktuell 10 %. Seit der letzten Erhöhung können Preise sowohl mit als auch ohne Mehrwertsteuer angegeben werden. Bei Einkäufen ab 5000 ¥ (pro Tag und Laden) kann in vielen Fällen '''[https://www.japan.travel/de/plan/japans-tax-exemption/ Tax Free]''' eingekauft werden - dann wird die Mehrwertsteuer nicht berechnet. Für den steuerfreien Einkauf muss der Reisepass vorgelegt werden. Der Tax-Free-Beleg muss bei der Ausreise bei Zoll abgegeben werden. Der Zoll kann dabei auch die Ware zeigen lassen, in der Praxis ist das aber unüblich.<br />
Es besteht ein staatliches Tabak- und Salzmonopol. Die Regierung verdient so an Rauchern doppelt, da auch eine Tabaksteuer erhoben wird. Nach der Erhöhung im Oktober 2021 kostet eine Schachtel 600 ¥.
'''Trinkgelder''' sind unüblich. Ein Trinkgeld erscheint vielen Japanern wie ein Almosen und kommt einer Beleidigung gleich. Selbst wenn man versucht, Trinkgeld zu geben, stößt man dabei auf heftigen Widerstand und es wird jeder Yen abgerechnet. In einigen teuren Restaurants kommt zur Rechnung noch 10 % Bediengeld.
== Küche ==
[[File:Wooden and plastic chopsticks.jpeg|mini|Japanische Stäbchen sind kürzer als die chinesischen und laufen spitz zu (oben.) Die Restaurant-Wegwerfvariante (''waribashi;'' unten) ist aus Bambus und wird nach dem Auseinanderbrechen aneinander gerieben, um eventuelle Splitter zu lösen.]]
Die japanische Küche hat die Welt erobert. Frisches '''[[w:Sushi|Sushi]]''' {{Ja|寿司|inKlammern=ja}} schmeckt deutlich besser als die in Deutschland erhältliche Kaufhausware. '''Tempura''' {{Ja|天ぷら|inKlammern=ja}} bekommt man heute an Orten, wo man es nicht erwartet. Aber die japanische Küche hat viel mehr zu bieten: es gibt eine große Auswahl an chinesischen '''Nudeln''' {{Ja|麺|men|inKlammern=ja}} – ''rāmen'' {{Ja|ラーメン|inKlammern=ja}}, dünne ''Soba'' {{Ja|そば|inKllamern=ja}} aus Buchweizen und dicke ''Udon'' {{Ja|うどん|inKlammern=ja}} aus Weizen – und eine ganze Reihe ''domburi'' {{Ja|丼|b=Reisschüssel|inKlammern=ja}}-Gerichten sowie Japans beliebtestes Gericht, den ''Curryreis'' {{Ja|カレーライス|w=karē raisu|inKlammern=ja}}. Er schmeckt sehr japanisch bzw. danach, wonach er farblich und in Konsistenz aussieht.
Darüber hinaus sollte man sich nicht den Genuss von '''Shabu-Shabu''', einer Art Fondue mit Brühe (teuer), '''Nabe''', bei der das Fleisch und das Gemüse (am Tisch) in einer Brühe gegart wird, aber diese auch mitgegessen wird und auch das in der Kansai-Region beliebte '''Okonomiyaki,''' was leckere herzhafte Pfannkuchen mit Weißkraut vermischt sind, entgehen lassen.<br>
Hinsichtlich Fisch gilt: „Ein Fisch, der nach Fisch riecht, ist nicht mehr frisch“ – und wird deshalb auch nicht mehr gegessen. Vor Gräten muss man kaum Angst haben, diese werden entweder beim Filetieren entfernt oder durch die Zubereitung (scharfes Braten/Grillen) unschädlich gemacht. Stark riechendes Essen ist Japanern generell suspekt, weswegen Lammfleisch praktisch nicht erhältlich ist. Knoblauch verwendet man vor allem „beim Koreaner“, dann aber kräftig.
;Reis
Japaner haben ein besonderes Verhältnis zu Reis, der Teil auch des Frühstücks ist. Man ist der Ansicht, dass nur die speziell japanische Art des Kurzkornreises ''uruchimai'' {{Ja|粳米|inKlammern=ja}} für menschlichen Verzehr geeignet ist. Dieser ist stark poliert (abgeschliffen) und wird vor dem Kochen eingeweicht und gewaschen. Japanische Bauern erhalten hohe Subventionen, die Einfuhr ausländischen Reises war bis vor wenigen Jahren verboten.<ref>Und erfolgt heute nur durch das Landwirtschaftsministerium. In den 1980er verstieg sich der damalige Vize-Minister Hata Tsutomu zu der Aussage, dass japanische Därme länger seien als die von Ausländern, es Japanern daher nicht möglich sei, ausländische Produkte zu verdauen. ([http://www.nytimes.com/1988/03/06/weekinreview/the-world-japanese-are-special-types-they-explain.html NY Times 6.3.1988]) Letzterer Glaube führte dazu, dass es ansässigen Ausländern als Ausnahmeregel gestattet ist, pro Familie jährlich 50 kg Reis zum privaten Gebrauch einzuführen, z. B. den im Lande nicht erhältlichen Langkorn- oder Basmatireis.</ref> Importreis wird allenfalls in verarbeiteten Produkten verwendet. Für einen Produzenten kann es ähnlich fatal sein, wenn die Kundschaft herausfindet, dass er ausländischen Reis verwendet, wie für einen bayerischen Brauer, wenn er sich nicht an das [[w:Reinheitsgebot|Reinheitsgebot]] hielte. Der zu Mahlzeiten gereichte weiße Reis wird ''immer'' pur gegessen. Saucen und Gemüse im/mit verwendet man nur bei „ausländischen“ Gerichten wie dem unsäglichen “Curry-Reis.” Ausnahme sind die oft dem Reis beigelegten Nori-Blätter, diese taucht man in die Sojasauce, wodurch sie weich werden, und isst sie zu dem Reis.<br>
Spezieller Klebreis {{Ja|もち米|w=mochigome|inKlammern=ja}} wird für die Herstellung von süß gefüllten Reisbällchen ''Mochi'' {{Ja|餅|inKlammern=ja}} verwendet. Ungeschälter, also Vollkornreis, wird praktisch nicht konsumiert, er gilt als nur für Sträflinge geeignet. Die früher unter armen Leuten übliche Beimischung billiger Gerste kommt ebenfalls nicht mehr vor.
=== Tischsitten ===
[[File:Japanese Sashimi of Whale meat.jpg|mini|Bis in die frühen 1970er Jahre ein Hauptbestandteil der Schulspeisung, heute eine teure Delikatesse: '''Wal,''' hier als Sashimi zubereitet (2012).]]
Japaner essen alle traditionellen Gerichte mit '''Stäbchen,''' die Hauptausnahmen sind Curryreis und gebratener Reis, die mit einem Löffel gegessen werden. Mit Stäbchen zu essen ist überraschend einfach zu lernen, man braucht aber eine Zeit lang, ehe man es wirklich beherrscht. Auf ein Tabu sei noch hingewiesen: Stäbchen dürfen niemals senkrecht in eine Reisschale gesteckt werden, da der Reis damit zur Totenmahlzeit gewidmet wird. Außerdem sollte man etwas, das einem mit Stäbchen gereicht wird, nicht mit Stäbchen entgegennehmen, weil auch dies Teil des Bestattungsritus ist! Des weiteren schütten die Japaner niemals Sojasauce über den Reis. (Versucht man es, löst sich der ansonsten klebrige Reis auf und man kann dann die Körner einzeln mit den Stäbchen aufpicken…) Sushi hingegen kann man in Sojasauce stippen. Die Japaner achten allerdings darauf, dass auch bei Sushi der Reis nicht in Berührung mit der Sojasauce kommt, was bei einem Selbstversuch durchaus zu einer akrobatischen Einlage geraten kann. Das Motiv dabei ist wahrscheinlich, in der gemeinsam benutzten Sojasauce keine Reiskörner zu hinterlassen.
Nudelsuppe zu '''schlürfen''' wird nicht nur akzeptiert, sondern erwartet. Die Japaner sagen, es kühlt die Suppe und verbessert ihren Geschmack.
Sich bei Tisch oder nur in der Nähe zu '''schneuzen''' ist eine Todsünde. Man verlasse dafür den Raum.
Als ausländische Sitte vermehrt nach dem Krieg eingebürgert hat sich, analog zu „Gutem Appetit,“ vor dem Essen „Itadakimasu“ zu sagen, wörtlich „ich empfange,“ aber auch mit „ich fange jetzt an“ übersetzt werden kann. Deshalb sagt man es auch nicht, wenn jemand anderes anfängt zu essen, sondern nur, wenn man selbst isst (oder läßt es sein). Wenn man fertig ist, sagt man wenn man höflich gegenüber der Hausfrau sein will: „Gochisō-sama deshita“, was in etwa bedeutet „Es war sehr lecker!“ Wenn man satt ist, heißt es: „Onaka ga ippai desu.“ („Mein Bauch ist voll.“)
=== Restaurants ===
[[File:JP-Speisen-Auswahl.jpg|mini|Plastikmodelle helfen bei der Auswahl der Speisen]]
[[File:Restaurant in Shin Osaka (2785576933).jpg|mini|Schnellrestaurant für japanische Nudeln. Man löst im voraus eine Marke aus dem Automaten (2008)]]
In Japan gibt es unglaublich viele Restaurants. Dies sind normalerweise Familienbetriebe, nicht solche wo die Pächter alle paar Jahre wechseln (abgesehen von Kettenrestaurants). Sie sind normalerweise auf eine Art Speise beschränkt. Aus kulturellen und praktischen Gründen laden Japaner Gäste fast nie nach Hause ein. Wenn man sich trifft, geht man meist auch essen.<br>
So bald man ein Restaurant betritt schallt dem Gast laut: „Irashai(mase)“ („Willkommen“) entgegen. Eine Reaktion darauf ist nicht nötig.
Viele japanische Restaurants bieten mittags ''teishoku'' {{Ja|定食|inKlammern=ja}} oder Mittagsmenüs an. Diese beinhalten normalerweise Fleisch oder Fisch, eine Schale Misosuppe, eingelegtes Gemüse und Reis. So ein Gericht bekommt man oft schon für 800 ¥ und es stillt selbst den größten Hunger.
Japanische '''Fast Food''' Restaurants bieten ordentliche Qualität zu vernünftigen Preisen. Hier muss man manchmal Tickets aus einem Automaten ziehen, bevor man sich setzt. Einige Ketten sind (teilweise nicht überall zu finden):
* '''Yoshinoya''' {{Ja|吉野家|inKlammern=ja}}, '''Matsuya''' {{Ja|松屋|inKlammern=ja}}, und '''Sukiya''' {{Ja|すき家|inKlammern=ja}} sind auf das Rindfleischgericht ''gyūdon'' spezialisiert. Sie wurden von der BSE-Krise hart getroffen und haben einen Großteil ihres Angebots auf Schweinefleisch umgestellt.
* '''Tenya''' {{Ja|てんや|inKlammern=ja}}, bietet gutes Tempura u. a. ab 800–1100 ¥.
* '''Mos Burger''' sieht wie eine weitere Schnellimbisskette aus, hat aber eine interessante Karte – wie wäre es mit einem „Hamburger“ der aus gegrilltem Aal im Reisbrötchen besteht?
* '''Ōtoya''' {{Ja|大戸屋|inKlammern=ja}} ist fast zu gut um es Fast Food zu nennen. Bestellen ist etwas verwirrend: In einigen Läden bestellt man am Schalter bevor man sich einen Tisch sucht, bei anderen kommt ein Kellner an den Tisch.
* '''Meshiya-don''' {{Ja|めしや丼|inKlammern=ja}} ist ähnlich billig und gut wie Ōtoya.
* “Viking” {{Ja|ヴァイキング|inKlammern=ja}} ist die generische Bezeichnung für ein “All you can eat”-Buffet.
Daneben gibt es überall Filialen der einschlägigen amerikanischen Fast-Food-Ketten, die jedoch ihre Produkte japanischem Geschmack anpassen. Z. B. Schwarze Hamburger gefärbt mit Tintenfischtinte.
; Liefern lassen
[[File:Sushi delivery mobile (2798914572).jpg|mini|left|Motorrad zum Essen ausliefern. Das typische Gestell am Gepäckträger gleicht Schwankungen aus, so daß z. B. Suppen nicht verschüttet werden]]
Fast alle Familienbetriebe – sie sind oft spezialisiert auf eine Art Gericht, z. B. nur ''Ramen'' oder ''Tonkatsu'' – stellen im näheren Umkreis von etwa einem Kilometer auch kostenfrei mittels Motorrad zu. Anruf genügt. Um bestellen zu können, muss man genug Japanisch können, um eine Anfahrtsbeschreibung zu geben. Das ggf. gebrachte Geschirr wird nach Gebrauch vor die Haustür gestellt. Es gibt auch Pizzalieferdienste (Franchiseunternehmer).
; Im Restaurant
{{Tipp|Wer es sich leisten kann oder einen japanischen Bekannten/Geschäftspartner mit sehr dickem Spesenkonto hat, sollte sich den Besuch eines ''Ryōtei-'' {{Ja|料亭|inKlammern=ja}} oder ''Kappō''-Restaurants gönnen, in dem die ehemals höfische ''Kaiseki''-Küche {{Ja|懐石|inKlammern=ja}} zelebriert wird. (Achtung: Die Rechnung für drei oder vier Personen kann leicht in den sechsstelligen Yen-Bereich gehen.)}}
Im Restaurant bekommt man nach dem Essen die Rechnung, die man an der Kasse zahlt, wenn man geht. Wer zahlen möchte, verlangt die Rechnung mit: „O-kanjō, onegaishimas’“ <br />Wie die Speisen heißen? Kein Problem, muss man nicht wissen. In besseren Gaststätten gibt es reich bebilderte Speisekarten, oft mit einer englischen Beschriftung. Ansonsten gibt es oft anschauliche Plastikmodelle, die der Realität sehr nahe kommen. Einfach dem Kellner zeigen, was man möchte.
; Getränke
Leitungswasser ist so sauber, dass es bedenkenlos getrunken werden kann, auch wenn es manchmal etwas nach Chlor schmeckt. In den meisten Restaurants bekommt man ein Glas Wasser mit Eiswürfeln oder grünen Tee (''O-cha'') gratis serviert. Als Getränk gibt es überall grünen Tee (gratis zur normalen Mahlzeit) und Reiswein (traditionell im 180 ml Fläschchen), aber auch Softdrinks, nicht nur die in Europa üblichen Varianten. Japaner mögen auch normales Bier, ''Asahi Beer'' ist durchaus mit norddeutschem zu vergleichen, der Bayer wird eher zu ''Yebisu'' neigen.
== Nachtleben ==
Ausgehen in Japan gestaltet sich etwas anders als in Europa, da jeweils andere Dinge für wichtig genommen werden. Beim Geld sollte man nicht allzu sehr knausern, da man in Japan für mehr Geld auch meistens einen spürbaren Mehrwert erhält. Vor allem beim Essen gilt: Je teurer, desto besser. Natürlich sollte man sich nicht gleich ein Luxus-Essen bestellen, wenn man den Unterschied gar nicht merkt.
Es ist unüblich alleine auszugehen. In den großen Städten gibt es Ausgehviertel in denen sich eine Kneipe an die nächste reiht, oft nahe Umsteigebahnhöfen.
'''Xenophobie:''' Es kommt durchaus vor, daß man als Ausländer gerade am Abend in kleine Kneipen nicht hineingelassen wird (Wirt/in kreuzt die Arme). Entspannen ein paar Brocken Japanisch die Situation nicht, trage man sein Geld woanders hin. Begründet wird derartiges Verhalten offiziell mit „man habe Angst dem ehrenwerten ausländischen Gast nicht angemessen bedienen zu können,“ in vielen Fällen handelt es sich jedoch schlichtweg um Rassismus.
=== Kneipen, Bars ===
[[File:Entrance to Omoide Yokocho.jpg|thumb|Die Kneipengasse ''Omoide Yokocho'' („Besoffenen-Gasse”) in Shinjuku, unter Ausländern besser bekannt als “Piss Alley”]]
Das Mindestalter für Alkohol und Tabak ist „20,“ wobei hierbei jedoch die traditionelle Alterszählung gemeint ist, d. h. westliches Alter + 1 Jahr bei Geburt + 1 Jahr zum ersten erlebten Neujahrstag. Das Volljährigkeitsalter wurde offiziell auf 18 gesenkt, ist man unterwegs, so wird selten genau hingesehen und noch seltener nachgefragt. (Das Mindestalter für sexuelle Handlungen nach dem Strafgesetzbuch ist 13, nach anderen Vorschriften 16, auch hier fragt niemand knutschende Schüler, die ins Love Hotel einchecken.)
In Deutschland reicht schon ein Bier und man gibt sich zufrieden. Japaner wollen aber nicht nur Alkohol trinken, sondern auch gut essen. Daher geht man in eine '''Izakaya''' genannte Kneipenart (z wie weiches s gesprochen), wo neben etlichen Alkohol-Sorten auch diverse Leckereien serviert werden. Für Europäer ist das normalerweise ein tolles Erlebnis, weil das Essen vielfältig ist und ziemlich gut schmeckt. Zudem erscheint die Inneneinrichtung sehr aufwändig, reicht von traditionell bis modern und ist meist auch sehr stilvoll. Die meisten Läden sind von nationalen Izakaya-Ketten, daneben gibt es auch einige private Izakayas. Für einen schönen Abend sollte man schon 2500+ ¥ pro Person Minimum einplanen (ein Bier allein 7–800 ¥).
In den großen Metropolen gibt es „Themen-Izakayas.“ Wenn das Thema einer Izakaya z. B. Gefängnis ist, wird man bei Eintritt in Handschellen abgeführt und in eine Zelle mit Eisengitter gesteckt, wo man auf halbstündliche Geisterbahn-Einlagen wartet, während man es sich gut gehen lässt. Weitere Themen sind z. B. Krankenhaus, Gothic, etc. Das sollte man unbedingt mal ausprobieren, diese Izakayas sind allerdings schwer aufzufinden und meistens ein wenig teurer als normale Izakayas.
Auch sehr beliebt bei Japanern ist '''Nomi-hōdai''' (''nomu'' = „trinken“), In einer festgelegten Zeitspanne (meistens stundenweise) kann man hier in Izakaya-ähnlicher Atmosphäre soviel trinken wie man will (1500 bis 4000 ¥ pro Stunde). Das Essen ist hier oft ein festgelegtes Menü (“course”), das nach und nach serviert wird. Bei billigen Läden ist hier jedoch das Essen manchmal nicht so toll.
An dieser Stelle sollte noch '''Tabe-hōdai''' (''taberu'' = „essen“) erwähnt werden ({{en|”All you can eat”}}), das in manchen Restaurants angeboten wird, oft in Verbindung mit Nomi-Hodai. Manchmal muss man alles aufessen, was man bestellt hat, sonst muss man extra bezahlen. Je nach Restaurant gibt es andere Bedingungen, was kompliziert erscheint, einen aber nicht davon abhalten sollte, es mal auszuprobieren.
Nomi-Hodai ist auch beliebt in Verbindung mit '''Karaoke.'''
Wenn man nur Karaoke machen will, ist das relativ billig (300 ¥/Stunde ?). Dazu kauft man dann ein Schälchen mit ¥ 100-Münzen, um die Maschine zu füttern. Drinks und kleine Snacks können normalerweise bestellt werden. Man sollte Karaoke unbedingt mal ausprobieren. Man singt nicht vor versammelten Publikum, sondern bekommt mit seinen Freunden eine kleine Box, wo man sich austoben kann. Macht Spaß!
Wer lieber auf den '''europäischen''' Ausgeh-Stil Lust hat, ist wohl mit den Irish-Pubs oder den anderen europäischen Bars gut bedient. Dort trifft man auch die meisten Ausländer. Normalerweise gibt’s einige Biersorten und das gewohnte Angebot an frittiertem Knabberkram. In solchen Bars wird des öfteren Sportfernsehen gezeigt, wobei meistens Baseball zu sehen ist. Zu erwähnen ist hier die Kette [https://www.pub-hub.com/index.php/en ''Hub''], die in Tōkyō in fast jedem Stadtzentrum wie auch in Kyoto, Kōbe, Nagoya und Ōsaka mindestens eine Filiale unterhält. Wen das Heimweh ganz arg quält, der kann auch in eine der deutschen Bars gehen, wird aber wahrscheinlich von der Würstchen-Qualität enttäuscht sein.
Daneben gibt es noch die '''Alkohol-Bars,''' die auch Japaner häufiger frequentieren. Dort werden Cocktails wie die ganze Palette von härteren Alkoholika serviert. Hier ist zu beachten, dass man dort pro Person häufig einen festgelegten Service-Betrag zahlen muss (ab ca. 400 ¥ aufwärts), der nachher auf die Rechnung aufgeschlagen wird.
Kleine Kneipen verlangen oft „Gedeck,“ man bekommt für diese ¥ 500–1000 Eintrittsgeld einen kleinen Snack.
; Geisha und Prostituierte
[[w:Geisha|Geishas]] sind <u>keine</u> Prostituierten, allenfalls hatten sie solchens in den unmittelbaren Nachkriegsjahren nötig, sondern hochgebildet in japanischer Musik, Künsten und Konversation hervorragend geschulte Unterhalterinnen für Männerrunden (mit dickem Spesenkonto). Was man speziell im Gion-Viertel von Kyoto für Touristen bietet ist ein eher schwacher Abklatsch.
Prostitution war im alten Japan ein anerkannter, wenn auch in großen Städten auf bestimmte Viertel beschränkter ehrenwerter Beruf. Die jung hierher gegebenen Mädchen wurden oft herausgeheiratet, was keinerlei Stigma für sie brachte. Japaner haben zu Sex ein sehr entspanntes Verhältnis – man tut es (gerne auch gleichgeschlechtlich oder außerhalb der Ehe), aber redet nicht darüber. Die amerikanischen Moralisten, die mit MacArthur nach dem Krieg das Land verwalteten setzten schließlich nicht nur Geschlechtertrennung in Badehäusern, sondern auch ein allgemeines Verbot durch, das 1954 in Kraft trat. Seitdem findet sie unter verschieden Etiketten weiterhin statt, die als ''Yakuza'' bekannte Mafia – als „Freund und Helfer“ der Polizei, die nicht allzu genau hinsieht – sorgt für geordneten Ablauf in begrenzten Bereichen, echte Bordelle gibt es daher nicht, eher “Soaplands” oder “Clubs.” In jedem Fall ein teueres „Vergnügen.“ Straßenprostitution (''tachimbo'') findet kaum statt. Als Besucher kann man sich leicht fern halten. Etliche Etablissements lassen Fremde sowieso nicht hinein: „Denn alle Ausländer haben AIDS.”
Eine Besonderheit in Japan sind '''Hostess-Bars,''' die es in verschiedensten Variationen gibt. Man erkennt die Gegenden solcher Bars daran, dass an jeder Straßenseite an den Hochhäusern Türme von kleinformatigen Schildern mit kreativ-lustigen Namen hängen, oft mit weißer Schrift auf schwarzem Grund. Nachdem man per Aufzug bei der gewünschten Bar angekommen ist, bezahlt mal erstmal ein Eintrittsgeld (>3000 ¥?). Dann darf man sich mit den Hostessen unterhalten und ihnen teure Drinks spendieren. Natürlich gibt es auch Strip-Bars etc., aber oftmals geht es erstmal nur ums Reden mit Frauen (was nach Sperrstunde geschieht wird individuell abgemacht). Man könnte Hostessen somit als eine Art moderne Geishas betrachten. Hostess-Bars stellen eine beliebte Beschäftigung für japanische Geschäftsleute dar, die abends nicht nach Hause wollen und Geld übrig haben.
=== Nachtclubs ===
Die coolsten Clubs gibt es natürlich in Tōkyō und Osaka. Bei Ausländern beliebt war lange das tokioter Viertel ''Roppongi,'' die Szene ist hier nach 2010 Richtung Shibuya abgezogen. Bei angesagten Clubs muss man schon mal mit einem happigen Eintrittsgeld von 3000 ¥ rechnen. Drinks sind auch nicht billig. Allerdings bekommt man dafür meistens ein Club-Erlebnis der Extra-Klasse. International bekannte DJ-Künstler, super Sound- und Lichtanlagen.
Es gibt aber auch speziell für Ausländer angelegte Clubs wie die ''Gaspanic''-Kette. Dort muss man keinen Eintritt berappen, allerdings wird Wert darauf gelegt, dass der Umsatz stimmt.
=== Spielhallen ===
Glücksspiel ist außer für Lotterie und im engen Umfang Pferdewetten verboten. Japan ist trotzdem berühmt für seine Spielhallen. Der westliche Besucher staunt zuallererst über die [[w:Pachinko|Pachinko-Hallen]], das offiziell als Geschicklichkeitsspiel gilt: Bei einem Mordsgetöse spielen Japaner an gleichförmigen Automaten ein undurchsichtiges Spiel mit kleinen Silberkugeln, wobei es auf Geschicklichkeit und Glück ankommt. Hat man genug davon gewonnen tauscht man sei Körbchen nach Gewicht gegen einen Sachgewinn aus. Diese sind in der Regel wenig attraktiv, so daß die meisten erfolgreichen Zocker für Schokoladestückchen optieren, die in verschiedenfarbigen Folien eingewickelt zu haben sind, denn komischerweise gibt es in der nächsten Seitengasse immer jemanden, der, an einer kleinen Durchreiche sitzend, verdammt viel Geld für 5-Gramm-Stückchen bunt eingewickelter Schokolade zahlt. Die Pachinko-Wirtschaft ist fest in koreanischer Hand.
Daneben gibt es die Spielautomaten-Hallen für Jugendliche und jung Gebliebene (alle Japaner?). Hier gibt es vom 3D-Ballerspiel bis zum Tanzgame alles, was das Spielerherz begehrt. Da mittlerweile der technische Fortschritt der privaten Spielekonsolen zuhause soweit fortgeschritten ist, dass sich der Gang in die Spielhalle nicht mehr unbedingt lohnt, befindet sich diese Branche im Umbruch.
Beliebt sind heute computergestützte Multiplayer-Kartenspiele, die allerdings für Europäer etwas unverständlich erscheinen.
Des Weiteren gibt es Bowling, Billard, Manga-Cafés und noch einige verrückte andere Sachen, die man am besten selbst entdecken sollte.
== Unterkunft ==
Neben den üblichen Jugendherbergen und Hotels findet man verschiedene typisch japanische Herbergen: ''Ryōkan,'' ''Minshuku'' (familiengeführte Pensionen), ''Koku minshukusha,'' ''minpaku'' (privat vermietete Zimmer), ''shukubō'' (Tempelunterkünfte, oft teuer) ''Kapselhotels'' und ''Love Hotels.'' Abgerechnet wird immer pro Person. Vielfach ist die Mehrwertsteuer von 10 % nicht im Preis.<br>
Immer mehr Städte erheben seit 2022 eine Übernachtungssteuer ({{ja|宿泊税|w=shukuhakuzei|inKlammern=nein}} in Badeorten {{ja|入湯税}}). Sie ist normalerweise vom Zimmerpreis abhängig und wird stufenweise erhoben. Es nicht üblich sie vorher in den Preisen auszuweisen.
Wenn man in Japan eine Unterkunft reserviert, sollte man bedenken, dass viele kleinere Betriebe ungern Ausländer aufnehmen, da sie Sprachschwierigkeiten und kulturelle Missverständnisse fürchten. Das ist zu einem gewissen Grad institutionalisiert: in den Datenbanken der Reisebüros ist vermerkt, welche Hotels Ausländer aufnehmen, und wenn diese belegt sind, erhält man den Hinweis, alles sei ausgebucht. Wenn man nicht auf Englisch anruft, sondern einen japanischen Bekannten oder ein Fremdenverkehrsbüro bittet, die Buchung zu erledigen, hat man bessere Chancen.<br>
Check-in-Zeiten sind spät, oft erst ab 15 oder 16 Uhr. Dafür darf man dann früh zeitig, meist um 10 Uhr abreisen.
Beachte: auch in Unterkünften zeiht man immer die Schuhe aus. Löcher in den Socken (auch kleine) gehen gar nicht.
'''Ryōkan''' - {{Ja|旅館|inKlammern=ja}} sind '''traditionelle japanische Gasthöfe''' und eine Übernachtung in einem ist der Höhepunkt vieler Japanreisen. Da man ein bisschen über japanische Sitten und Etikette wissen sollte, wenn man in einem Ryōkan übernachtet, nehmen viele keine ausländischen Gäste auf (vor allem wenn sie kein Japanisch sprechen), andere sind hingegen auf solche Gäste ausgerichtet. Eine Nacht in einem Ryōkan mit Abendessen und Frühstück kostet im günstigsten Fall 20.000 ¥ pro Person. Nach oben gibt es keine Grenze.
In einem Ryōkan gibt es meist einen ziemlich strengen Zeitplan und man muss bis 17:00 Uhr ankommen. An der Türschwelle (''genkan'') wechselt man die Straßenschuhe gegen die Hauspantoffeln. Nach der Anmeldung wird man in sein Zimmer geführt. Die Zimmer sind immer einfach aber elegant ausgestattet und mit ''Tatami''-Matten ausgelegt. Die Tatami darf man niemals nicht mit Schuhen oder Pantoffeln betreten, entweder barfuß oder in Strümpfen.
Vor dem Abendessen kann man ein Bad nehmen; abhängig von der Größe des Ryōkan gibt es Gemeinschafts- oder Einzelbäder, sie sind aber fast immer nach Geschlechtern getrennt. Vor dem Bad wechselt man in den ''Yukata''-Bademantel. Im Bad zieht man sich aus, wäscht sich gründlich unter der Dusche. Erst wenn man völlig sauber ist, steigt man ins Badewasser.
Nach dem Bad wird das Abendessen serviert - meist wird es aufs Zimmer gebracht. In vielen Ryōkan besteht das Essen aus hervorragend zubereiteten und präsentierten Gerichten der Saison. Wenn man nicht weiß, wie man ein Gericht isst, sollte man nachfragen.
Nach dem Essen kann man noch mal in die Stadt gehen; in Badeorten ist es ganz normal, nur im ''Yukata'' und mit ''Geta''-Pantoffeln herumzulaufen. Als Ausländer wird man damit aber für noch mehr Aufsehen sorgen als sonst. (Tipp: Unterwäsche drunter tragen.) Viele Ryōkan haben eine Sperrstunde, man sollte also rechtzeitig zurückkommen.
Währenddessen wird ein Futon auf dem Tatami ausgerollt. Ein japanischer Futon ist einfach eine Matratze, nicht das flache Bett, das im Westen oft unter diesem Namen verkauft wird. Es ist zwar etwas härter als ein westliches Bett, wird aber dennoch von vielen als sehr angenehm empfunden.
Frühstück wird meist zu einer festen Uhrzeit im Speisesaal serviert.
'''Minshuku''' - ''Minshuku'' {{Ja|民宿|w=„Pension“|inKlammern=ja}} sind die preiswerte Version des Ryōkan: das Essen ist einfacher, man isst im Speisesaal zu Abend und die Gäste rollen ihr Futon selbst aus (obwohl man hier für Ausländer oft eine Ausnahme macht). Daher sind Minshuku billiger und man zahlt ungefähr 6000–12.00 ¥ (einschließlich zweier Mahlzeiten). Minshukus gibt es auf dem Land häufiger als in den Städten. Buchungen sind z. B. über eine Agentur möglich, deren Angestellte auch Englisch sprechen.
'''Shukubō''' {{Ja|宿坊|inKlammern=ja}} sind Pilgerunterkünfte. Meist befinden sie sich auf dem Gelände eines buddhistischen Tempels oder eines Shintōschreins. Sie ähneln Ryōkans, aber das Essen ist vegetarisch und man hat eventuell die Möglichkeit, an Aktivitäten des Tempels teilzunehmen. Manche Shukubō nehmen nur ungern Ausländer auf, in dem wichtigen buddhistischen Zentrum auf dem Berg [[Kōya]] (in der Nähe von Ōsaka) ist dies jedoch kein Problem. Preise bis 60.000 ¥ sind dort 2025 Standard. Andernorts rechne man mit 15.000+ ¥. Speziell hierzu:
* [https://templestay-japan.com/ templelodging.com]
* [https://eng-shukubo.net/ Am Kōya-san] (Englisch spricht man im Rengejō-in)<!-- geprüft 2025-07-30 -->
'''Kapselhotels''' - Kapselhotels sind die raumsparendste Schlafmöglichkeit, die man sich vorstellen kann: gegen eine niedrige Gebühr (3000–5000 ¥) mietet man eine '''Kapsel,''' die etwa 2×1×1 Meter groß ist. In einem Raum befinden sich Dutzende, wenn nicht Hunderte solcher Kapseln in zwei Reihen übereinander. Kapselhotels sind immer nach Geschlechtern getrennt und nur wenige nehmen Frauen auf.
Wenn man das Kapselhotel betritt, zieht man die Schuhe aus, stellt sie in ein Schließfach und zieht Sandalen an. Oft muss man den Schlüssel dieses Schließfaches am Check-In abgeben, damit man nicht verschwindet ohne zu zahlen! Beim Check-In wird einem ein weiteres Schließfach zugewiesen, in das man sein Gepäck packen kann, denn in den Kapseln ist kein Platz dafür. Zudem haben sie oft keine Tür, sondern nur einen Vorhang.
Viele Kapselhotels sind mit einem Bad verbunden, das unterschiedlich luxuriös und/oder dubios sein kann. Oft zahlt man z. B. 2000 ¥ Eintritt fürs Bad, aber die Kapsel kostet dann nur 1000 ¥. In billigeren Kapselhotels muss man 100 ¥-Stücke einwerfen, damit die Dusche läuft. Wie in Japan nicht anders zu erwarten, gibt es Automaten, die Zahnpasta, Unterwäsche und so weiter verkaufen.
In der Kapsel findet man meist einige Schalter für das Licht, den Wecker und den immer eingebauten Fernseher.
'''Love Hotels''' ist etwas euphemistisch, genauer wäre '''Sex Hotel.''' Es gibt sie in und bei Vergnügungsbezirken, aber die meisten sind nicht in diesen Gebieten. Viele sind an Autobahnabfahrten oder an großen Bahnhöfen. Man kann ein Zimmer pro Nacht („Stay“) oder pro Stunde („Rest“) mieten.
Normalerweise sind sie sauber, sicher und sehr diskret. Einige haben Phantasiethemen wie Burgen, Disney, Sport, etc. Als Reisender kann man nicht einchecken, die Koffer abstellen und ausgehen. Wenn man geht, geht man; daher sind Love Hotels nicht so praktisch wie richtige Hotels. „Stay“-Preise gelten oft erst ab 22:00 Uhr und wenn man zu lange bleibt, muss man zusätzlich teure „Rest“-Preise zahlen. Beliebte Love Hotels in den Städten sind am Wochenende oft ausgebucht.
Warum gibt es sie überall? Japan litt lange Zeit an Wohnungsnot und man lebte immer noch in Großfamilien. Wenn man 28 ist und immer noch bei den Eltern wohnt, will man wirklich seine Freundin nach Hause mitbringen? Oder wenn mal als verheiratetes Paar mit zwei Kindern im Schulalter in einer 40-Quadratmeter-Wohnung mit hellhörigen Wänden lebt, will man es wirklich zu Hause machen? Daher gibt es die Love Hotels.
'''Westliche Hotels''' - Normale Hotels sind sehr teuer. Die meisten gehören zu Ketten und sind nahe an Bahnhöfen. In ''Business Hotels'' zahlt man deutlich über 30.000 ¥ pro Nacht, sie sind praktisch gelegen (oft nahe großen Bahnhöfen), aber die Zimmer sind ziemlich klein – oft kann man mit ausgestreckten Armen beide Wände gleichzeitig berühren. Manche Ketten wie ''Dai-Ichi'' oder ''Toyoku'' haben günstigere Räumlichkeiten, in Provinzstädten ab 8000–10.000 ¥. Luxushotels dagegen versuchen allen Wünsche des Reisenden zu erfüllen, aber die Zimmerpreise beginnen oft erst ab 50.000 ¥ p.P. Wirklichen Luxus im Sinne von perfektem Service („gut“ ist er in Japan immer) bekommt man für das Geld auch im gehobenen Ryōkan mit deutlich mehr Stil.
'''Jugendherbergen''' - Jugendherbergen (ユースホステル ''yūsu hosteru'' oder einfach ''yūsu,'' abgekürzt „YH“) sind vergleichsweise teuer in Japan, insbesondere wenn man dort auch zu Abend isst und frühstückt und nicht HI-Mitglied ist; der Preis kann dann über 6000 ¥ für eine Nacht liegen. Wie überall sind einige Jugendherbergen Betonklötze, die wie Besserungsanstalten geführt werden, andere dagegen wunderbare Häuser in schöner Landschaft. Es gibt sogar einige Tempel, die nebenbei eine Herberge betreiben. Bevor man sich für eine Herberge entscheidet, sollte man sich auf der Seite [https://jyh.jp/japanyh_e.php Japan Youth Hostel] umschauen. Die meisten Jugendherbergen haben eine Sperrstunde.
'''[[Camping in Japan|Camping]]''' gibt es, ist aber für Japaner vergleichsweise „exotisch.“ Es gibt jedoch rund 3000 Plätze im Lande, die während der Sommerferien (ca. 20. Juli bis 1. Sept.) gut belegt sind. Auf dem Land, abseits von Ortschaften, ist es durchaus möglich diskret für eine Nacht ein Zelt aufzubauen. Wohnmobile im europäischen Sinne gibt es kaum, sie sind für japanische Straßen einfach zu groß.
* [https://www.japan.travel/de/travel-directory/Camping/ Campinginfo der JNTO] <!-- zggr. 2025-07-30 -->
'''Minpaku''' – privat vermietete Unterkünfte. Seit Sommer 2018 gilt ein Gesetz, das die private kommerzielle Vermietung von Wohnraum genehmigungspflichtig macht. Vermieter müssen eine gewisse Ausstattung bieten, Schilder anbringen und Gästeregister führen. Des Weiteren kann die jeweilige Gemeinde zusätzliche Auflagen, wie Begrenzung der Tage an denen pro Jahr vermietet werden darf, o.ä. erlassen. Die prinzipiell gesetzestreuen Japaner halten sich weitgehend an solche Regeln, so daß die Zahl günstiger Unterkünfte geringer geworden ist.
'''Ungewöhnliche Übernachtungsmöglichkeiten:''' sind z. B. manche Badeanstalten, meist in den Ausgehvierteln der großen Städte, wo man zum Nachttarif vergleichsweise günstig auch im Ruheraum (auf Tatami mit ggf zu mietdender Decke) bleiben kann oder in einem Internetcafé, die immer separate Kämmerchen pro Gast bieten sein Nickerchen macht. Das ist für Angestellte, die mit ihrem Abteilungsleiter ein Bierchen zu viel hatten und den letzten Zug in die Vororte verpaßten billiger als ein Taxi heim. In den ehemaligen Wanderarbeitervierteln, Sanya in Tōkyō oder Kamagasaki in Osaka haben, seit die Zahl der Obdachlosen durch Sozialhilfereform stark gesunken ist, “Flop Houses” („Absteigen“) begonnen, ihre billigen Zimmer (¥ 2000+) der Allgemeinheit zu öffnen. Hier kann man in echten Dreckslöchern landen. „Platte machen“ auf Parkbänken oder Baustellen geht nicht. In Parks gibt es keine Ruhe, weil selbst um drei Uhr früh jemand seinen Köter ausführt, um Baustellen sind unüberwindlich hohe Zäune. Im ländlichen Shikoku gibt es entlang der Pilgerroute wenige öffentliche Hütten.
;Übernachtungssteuer
Japanische Gemeinden wollen am Tourismusboom – die Zahl der Besucher hat sich in den 2010ern fast verdoppelt – insofern profitieren, als dass immer mehr von ihnen eine Übernachtungssteuer einführen. Diese ist üblicherweise nicht im Übernachtungspreis eingerechnet. In Tōkyō wird bereits seit 2002 pro Nacht in Unterkünften, die mehr als zehntausend Yen kosten 200 ¥/Nacht fällig. Ende 2018 verlangte man z. B. in Kyoto für Unterkünfte billiger als 20.000 Yen 200 ¥/Nacht p.P., in der Preisklasse 20.000-50.000 Yen 500 ¥/Nacht. Kutchan in Hokkaido, zu dessen Gebiet das [[Sapporo#Niseko|Schiresort Niseko]] gehört, verlangt eine 2%ige Abgabe.<br />
Hinzu kommt seit Januar 2019 eine Ausreisesteuer von 1000 ¥.
== Feiertage ==
Japan hat im Jahr 16 gesetzliche Feiertage ({{Ja|休日|w=kyūjitsu}} oder {{Ja|祝日|w=shukujitsu}}), an denen öffentliche Ämter, Post, Schulen und Banken (auch Geldautomaten) geschlossen bleiben. Viele Büros machen dicht, Geschäfte und Supermärkte bleiben ohne Einschränkung geöffnet. Viele Bahnen fahren nach anderen Fahrplänen (die oft mit den Sonntagsfahrplänen identisch sind).
Fällt ein Feiertag auf einen Sonntag, ist der darauf folgende Montag ebenfalls Feiertag. Außerdem gilt landesweit für Museen usw., daß, falls ein Feiertag auf einen der regulären Schließtage fällt an jenem geöffnet, dafür dann am folgenden Werktag geschlossen wird. Um Neujahr, meist 29./30. Dez. bis 3. Januar hat praktisch alles geschlossen. Die Ausnahme sind Shintōschreine, die sind 1.–3. Januar überlaufen. Das gilt auch für ''setsubun,'' Neujahr nach dem traditionellen Kalender Anfang/Mitte Februar.
Wegen ihres sparsamen Jahresurlaubs nutzen Japaner die Feiertage intensiv zum Reisen im eigenen Land, Hochsaison mit entsprechenden Preisanstiegen und frühzeitig ausgebuchten Unterkünften sind Neujahr und die so genannte [[w:Goldene Woche (Japan)|Goldene Woche]] vom 29. April bis 5. Mai, in der kurz hintereinander vier Feiertage aufeinanderfolgen. Auch Flüge von und nach Japan kosten dann das Doppelte. Jeder Einzeltag, der zwischen zwei Feiertage fällt ist ebenfalls ein arbeitsfreier Tag. Eine weitere Urlaubssaison ist um ''O-Bon,'' das Allerseelenfest Mitte August. Üblich ist, daß dann viele Städter aufs Land „in die Heimat“ (''furosato'') in das Dorf fahren aus dem man in den 1960/70ern in die Großstadt zog und vielleicht noch ein uralter Onkel ein Stück Reisfeld bewirtschaftet.
{{Feiertage Anfang}}
{{Feiertag | datum=01-01 | {{Ja|正月|w=shōgatsu}} | Neujahr }}
{{Feiertag | zweiter Montag im Januar | {{Ja|成人の日|w=seijin no hi}} | Tag der Volljährigkeit. Im Vorjahr „20“ gewordenen nehmen an einer Zeremonie im Rathaus teil.}}
{{Feiertag | datum=02-11 | {{Ja|建国記念日|w=kenkoku kinenbi}} | Staatsgründungsgedenktag, legänder 660 v.u.Z., zugleich Tag der Verkündung der ersten Verfassung 1889 }}
{{Feiertag | datum=02-23 | {{Ja|建国記念日|w=tennō tanjōbi}} | Kaisergeburtstag }}
{{Feiertag | datum=03-21 | {{Ja|春分の日|w=shunbun no hi}} | Frühlingsanfang, 20. oder 21. wird durch Astronomen im Jahr zuvor berechnet }}
{{Feiertag | datum=04-29 | {{Ja|みどりの日|w=midori no hi}} ab 2007 ''Shōwa no hi''| „Tag des Grüns“ war bis 1988 „Kaisergeburtstag“ Hirohitos}}
{{Feiertag | datum=05-03 | {{Ja|憲法記念日|w=kenpō kinen-bi}} | Verfassungsgedenktag }}
{{Feiertag | datum=05-04 | {{Ja|国民の休日|w=kokumin no kyūjitsu, ab 2007 midori no hi}} | Tag der Nation }}
{{Feiertag | datum=05-05 | {{Ja|こどもの日|w=kodomo no hi}} | Kindertag, streng genommen der Knaben. Fahnen in Karpfenform werden aufgehängt }}
{{Feiertag | dritter Montag im Juli | {{Ja|海の日|w=umi no hi}} | Tag des Meeres, gedenkt der sicheren Heimkehr des meiji-tennō von einer Inspektionsreise nach Norden, zugleich taufte er in Yokohama das erste im Lande gebaute moderne Kriegsschiff }}
{{Feiertag | dritter Montag im September | {{Ja|敬老の日|w=keirō no hi}} | Tag der Achtung der Alten, früher 15. Sept. }}
{{Feiertag | datum=09-23 | {{Ja|秋分の日|w=shūbun no hi}} | Herbstanfang, 22. oder 23. Sept. }}
{{Feiertag | zweiter Montag im Oktober | {{Ja|体育の日|w=taiiku no hi}} | Tag des Sports }}
{{Feiertag | datum=11-03 | {{Ja|文化の日|w=bunka no hi}} | Kulturtag }}
{{Feiertag | datum=11-23 | {{Ja|勤労感謝の日|w=kinro kansha no hi}} | Tag der Arbeit }}
{{Feiertag | datum=12-23 | {{Ja|天皇誕生日|w=Heisei-tennō no tanjōbi}} | Geburtstag des Heisei-Kaisers }}
{{Feiertage Ende}}
Nicht arbeitsfrei sind: das Mädchenfest (雛祭, hinamatsuri) am 3. März, Sternenfest („Tanabata“) sm 7. Juli und „Sieben-Fünf-Drei“ (七五三, ''shichi go san'') am 15. November
An diesem Tag ist es üblich, dass Eltern drei- oder siebenjähriger Mädchen sowie fünfjähriger Jungen mit diesen zum Shintō-Schrein gehen, um für deren Gesundheit, Sicherheit und glückliche Zukunft zu beten.
Daneben gibt es noch tausende von lokalen Festen, die '''Matsuri''' genannt werden. Sie sind Volksfeste, welche meist einen traditionellen Hintergrund haben. Diese sind über das ganze Jahr verteilt und würden diesen Artikel sprengen, allerdings kann man sagen, dass in jedem Dorf oder Stadtteil mindestens ein solches Fest pro Jahr abgehalten wird, wenn nicht sogar mehr.
=== Weihnachten ===
Obwohl Japan kein christlich geprägtes Land ist, ist das Weihnachtsfest auch in Japan bekannt, es wird dort aber etwas anders gefeiert als im Rest der Welt. In Japan gilt Weihnachten nicht als Familienfest, sondern als das Fest der Liebe und hat dort eine ähnliche Rolle wie der Valentinstag im Westen (wobei es den Valentinstag in Japan auch gibt, er sich aber dort auf das Schenken von Schokolade beschränkt). Junge Pärchen aus dem ganzen Land treffen sich traditionell am 24. Dezember, um gemeinsam auszugehen oder etwas zu essen; Restaurants sind deshalb an diesem Tag in der Regel voll ausgebucht. Da es in Japan aus kulturellen Gründen weder Gans noch Ente gibt, dient stattdessen Hähnchen als traditionelles Weihnachtsessen, dies aufgrund einer erfolgreichen Marketingkampagne einer gewissen amerikanischen Schnellrestaurantkette in den 1970er-Jahren. Sehr verbreitet ist auch der {{en|“Christmas Cake”}}, fast immer eine Sahnetorte mit Erdbeeren, weil es ist doch „Jesus sein Geburtstag.” ({{en|“Christmas Cake”}} ist auch umgangssprachlich für „alte Jungfer“ also eine unverheiratete Frau über 26 – denn wie besagten Kuchen mag man eine solche nach dem 26. nicht mehr.)
Eine Bescherung gibt es an Weihnachten in Japan nur für die (kleinen) Kinder. Erwachsene bekommen keine Geschenke zu Weihnachten (auch nicht von den eigenen Kindern).
== Sicherheit ==
Japan hat eine geringe Kriminalitätsrate und man kann - auch nachts und als Frau - ohne Bedenken durch die dunkelsten Gassen gehen, alleine reisen und öffentliche Verkehrsmittel benutzen. Von der organisierten Kriminalität der ''[[w:Yakuza|Yakuza]]'' bekommt man als Tourist, insbesondere als westlicher, nichts mit, außer man versucht, gewaltsam an Türstehern in Vergnügungsvierteln vorbeizukommen. In großen Menschenansammlungen empfiehlt es sich trotzdem, alle Wertsachen direkt am Körper tragen (Geldbörse, Kamera etc.). Die Polizei ist sehr präsent, Polizeihäuschen (= ''Kōban''), erkennbar an den außen angebrachten roten Sirenen, gibt es auch in kleineren Orten bzw. jedem Stadtviertel. Allerdings kann es hier zu Sprachproblemen kommen, da die meisten Polizisten kein Englisch sprechen. Die immer vorhandene Hilfsbereitschaft ermöglicht aber in den meisten Fällen einen Weg, mit ihnen zu kommunizieren. Die Polizisten helfen übrigens auch weiter, wenn man sich verlaufen hat, und erklären den Weg z. B. zum nächsten Bahnhof. Vieles mit dem man in Mitteleuropa die Polizei beschäftigen würde wird nicht angezeigt, denn jede noch so geringe Vorstrafe bedeutet unweigerlich lebenslange soziale Ächtung und Karriereende. Gegebenenfalls einigt man sich nach formeller Entschuldigung privat durch „Geschenke,” das kann z. B. nach einem Auffahrunfall eine teure Melone sein oder eben auch bei Diebstählen durch einen Teenager ein brauner Umschlag mit viel buntem Papier drinnen.<br>
Ausweiskontrollen „einfach so“ finden auch bei Langnasen höchst selten statt. Wird man als Ausländer von einem Polizisten z. B. fahrradfahrend herausgewunken, hat man meist wirklich etwas falsch gemacht (bei Rot über die Ampel, falschrum in die Einbahnstraße was in Seitenstraße auch alle Japaner machen). Meist hilft untertäniges Verhalten, Entschuldigung mit Verbeugung. Bei schwereren Bagatellen kommt man zwar mit auf’s Revier, kann sich dann aber oft mit einem Entschuldigungsschreiben nach wenigen Stunden „freikaufen.“ Bei echten Verbrechen, wie Ladendiebstahl oder Cannabisbesitz auch kleinster Mengen landet man als nicht im Lande Wohnender immer wegen Fluchtgefahr in U-Haft, die schon einmal ein Jahr dauern kann. Abschiebung und lebenslanges Wiedereinreiseverbot bei Verurteilung gratis obendrauf. Japanische Gefängnisse sind zwar extrem sauber, aber mit der Disziplin eines preußischen Kasernenhofs ca. 1911.
Höher als die Wahrscheinlichkeit, Opfer eines Verbrechens zu werden, ist eine Beeinträchtigung durch die zahlreichen Naturphänomene Japans. Dazu gehören [[w:Erdbeben|Erdbeben]], [[w:Tsunami|Tsunamis]], [[w:Taifun|Taifune]] und [[w:Vulkan|Vulkane]]. Da Japan über sehr effiziente Warnsysteme verfügt (z. B. werden Tsunamis schon ab einer Höhe von 50 cm angezeigt), lassen sich aktuelle Gefahrengebiete als Tourist vermeiden. Auch architektonisch ist Japan auf diese Ereignisse bestmöglich vorbereitet, deshalb sollte man diese Gefahren nicht überbewerten. Spürbare '''Erdbeben''' kommen durchschnittlich einmal pro Monat vor, was aber von den Japanern als alltägliches Vorkommnis betrachtet wird. Eine ernsthafte Gefahr geht nur von sehr starken Beben aus, die deutlich seltener vorkommen, aber gleichzeitig auch '''Tsunamis''' verursachen können. Es gibt geologisch betrachtet aktive '''Vulkane''' in Japan, wie z. B. den [[Fuji]], aber dieser ist schon seit Jahrzehnten nicht mehr ausgebrochen. '''Taifune''' treten häufig in den Monaten von Juni bis November auf. In den Städten und im Binnenland bedeutet das vor allem sintflutartige Regenfälle, an den Küsten kann es auch zu stärkeren Sachschäden kommen.
== Gesundheit ==
{{Quickbar Notruf}}
Die hygienischen Bedingungen Japans sind hervorragend und so gut wie oder besser als in Europa. Leitungswasser ist genieß- und trinkbar. Allerdings mag man sich, wenn man im Erdgeschoss unterkommt, Insektenspray geben lassen, da bei den wärmeren Temperaturen auch Ungeziefer seinen Weg in diese Unterkunft findet. Kakerlaken sind insbesondere aus Häusern mit Tatami nicht wegzubekommen. Die in vielen dieser Matten lebenden kleinen (2-3 mm) braunen Käfer sind harmlos. Japanische Insekten und Schlangen sind, außer in [[Okinawa_(Präfektur)#Gesundheit|Okinawa,]] im allgemeinen nicht giftig oder abstoßend, sondern nur lästig. Auch der nächtliche ziemlich laute „Gesang“ der Zykaden kann gewöhnungsbedürftig sein.
Normalerweise sind außer den Standardimpfungen (Tetanus, Diphtherie) keine besonderen Impfungen notwendig. Weitere Impfungen sind ggf. [https://www.auswaertiges-amt.de/de/service/laender/japan-node/japansicherheit/213032#content_5 in besonderen Fällen und/oder bei längerem Aufenthalt angebracht].
Man sollte für den Aufenthalt eine Auslandskrankenversicherung abschließen, da das Gesundheitssystem Japans einerseits sehr gut, aber andererseits auch sehr teuer ist.
Der Kauf von Arzneimitteln ist in Japan problemlos möglich und Apotheken sind vor allem in den Städten sehr einfach zu finden. Viele Ärzte geben einem direkt Pülverchen mit – manchmal portionsweise in Pergamintütchen ohne jeden Beipackzettel oder Beschriftung. Allerdings kann es aufgrund der Sprachschwierigkeiten manchmal schwierig sein, die gewünschte Medizin zu bekommen. Deshalb sollte man sich die wichtigsten Worte, wie z. B. Kopfschmerzen, Gliederschmerzen, Schnupfen, vorher auf Japanisch einprägen und im Laden fragen. Die Angestellten werden daraufhin gerne die Medizin für die jeweilige Situation aushändigen.
Auch gegenüber den japanischen Ärzten sollte man keine Vorurteile hegen. Manche behaupten sogar, sie seien fähiger als die deutschen! Die Zeit als jeder japanische Arzt Deutsch konnte ist vorbei. Grund war, dass man bis 1948 für ein Medizinstudium in Japan Deutsch lernen musste, dies war die Unterrichtssprache weil der deutsche Leibarzt des Meiji-tennōs, als er nebenbei die medizinische Fakultät der kaiserlichen Universität aufbaute, der Ansicht war, Japanisch sei einfach keine Sprache um eine Wissenschaft zu unterrichten. Gute Zahnärzte sind schwerer zu finden. Krankenhaus heißt auf Japanisch ''Byōin'' (nicht ''Biyōin'', das wäre der Frisiersalon). Die japanischen „Krankenhäuser“ sind aber oft eher größere Arztpraxen, auch wenn es natürlich auch große Kliniken wie in Deutschland gibt. Abtreibungskliniken {{Ja|妊娠中絶|inKlammern=ja}} sind in Großstädten häufig, der Eingriff wird auf Verlangen und bis zur 22. Woche anstandslos durchgeführt, die erst 1999 zugelassene „Pille“ ist immer noch unbeliebt. In Japan vertriebene Kondome sind deutlich kleiner (besser gesagt enger) als europäische. Um „Notfälle“ zu vermeiden sollte man bei Bedarf entsprechende Vorräte mitführen.
Hilfreich ist der [https://www.jnto.go.jp/emergency/eng/mi_guide.html Guide for when you are feeling ill]. Aufgeführt sind nach Orten getrennt Institutionen in denen man fremde Sprachen beherrscht.
=== Rauchverbote ===
Etliche Stadtverwaltungen haben entlang von Hauptverkehrsstraßen und Verkehrsknotenpunkten wie U-Bahnhöfen Rauchverbotszonen eingerichtet, die üblicherweise „das Rauchen im Gehen“ mit 1000 ¥ Strafe belegt. Die prinzipiell gesetzestreuen Japaner befolgen diese der Müllvermeidung dienenden Vorschriften.
Seit Juli 2019 besteht Rauchverbot in allen staatlichen Gebäuden, Krankenhäusern und Schulen. Hier liegt die Strafandrohung allerdings bei bis zu 300.000 ¥. Ab April 2020 wurde dies in gewissem Umfang auf Bars und Restaurants (mit der Ausnahme von Familienbetrieben), Hotellobbys, Bahnhöfe sowie Büros ausgeweitet.
== Klima und Reisezeit ==
{{Scroll Gallery
|title = Klimadiagramme (Süd nach Nord)
|Klimadiagramm-deutsch-Hiroshima-Japan.png|Hiroshima
|Klimadiagramm-deutsch-Nagoya-Japan.png|Nagoya
|Klimadiagramm-deutsch-Tokio-Japan.png|Tōkyō
|Klimadiagramm-deutsch-Niigata-Japan.png|Niigata
|Klimadiagramm-deutsch-Sapporo-Japan.png|Sapporo
|Klimadiagramm-deutsch-Wakkanai-Japan.png|Wakkanai
}}
Japaner sind davon überzeugt, dass ihr Land das einzige der Welt ist in dem man vier Jahreszeiten „genießen“ kann. Das ist tatsächlich richtig, da sie einen sehr kalten Winter (mit Schneefall), einen sehr heißen Sommer (bis zu 40 Grad und hohe Luftfeuchtigkeit), einen angenehmen Herbst und Frühling erleben. Als Frühlingsanfang gilt der Beginn der Pflaumenblüte, die „Regenzeit“ {{Ja|梅雨|w=Tsuyu|inKlammern=ja}} ist im Juni/Juli. Der regionale Beginn jeder Saison (ihr Fortschreiten nach Norden) wird in den Abendnachrichten angesagt. Nachdem es in Japan für alles eine „offizielle Saison“ gibt, gelten dann entsprechende Verhaltensregeln: So darf man ab Beginn der ''Tsuyu'' im Büro ohne dunkles Jackett, eventuell sogar in kurzem, weißem Hemd arbeiten. Solche Laschheit endet in Tōkyō exakt am 1. September, ebenso wie der Badebetrieb an den Stränden, egal ob es noch 35 °C hat oder nicht. Natürlich unterscheidet sich diese Darstellung zwischen den verschiedenen Regionen. Im Norden auf Hokkaidō sind deutlich kühlere Temperaturen anzutreffen, denn es bläst ein „sibirischer Wind.“ Im Süden auf Kyushu kann es fast subtropisch warm werden. In [[Niigata]] und Hokkaido können durchaus in höheren Lagen drei Meter Schnee fallen, wohingegen Tōkyō ein Klima wie Rom hat.
Auch wenn Breitengrade nicht unbedingt ausschlaggebend sind für das vorherrschende Klima, ist die Nord-Süd Erstreckung Japans doch mehr als erstaunlich. Im Breitengradvergleich liegt Sapporo, die Hauptstadt der nördlichen Insel Hokkaidō etwas südlicher als München, während die südlichsten [[Miyako-Inseln]], auf dem selben Breitengrad wie Dubai liegen.
Ein Besuch Japans sollte am besten im Herbst (September, Oktober) erfolgen, da zu dieser Zeit angenehme Temperaturen vorherrschen und die für Japan berühmte rote Laubfärbung zu beobachten ist. Im Frühling ist der Anblick der Kirschblüte im April ebenfalls sehr reizvoll – die in Parks unter den Bäumen auf Plastikplanen sitzenden besoffenen Massen sind meist weniger schön anzusehen aber nie aggressiv. Die Temperaturen zu dieser Zeit sind dann ebenfalls sehr angenehm. Von einem Besuch im Sommer sei sehr abzuraten, denn trotz klimatisierter Züge und Gebäude sind die schwülen Wetterverhältnisse sehr anstrengend und beeinträchtigen die erfolgreiche Erkundung Japans.
== Regeln und Respekt ==
Es besteht Passzwang für Ausländer ab 16 Jahren. Solche, die sich vorübergehend in Japan aufhalten, haben ihren Reisepass immer mit sich zu führen; in Japan lebende Ausländer ihre Aufenthaltskarte. Dass man deswegen von der Polizei aufgehalten wird kommt nicht vor. Hat man jedoch aus anderen Gründen mit dieser Institution zu tun, so kann man festgehalten werden, bis jemand das Ausweisdokument bringt.
Höflichkeit und Form spielen in Japan eine große Rolle. Allerdings wird glücklicherweise von Ausländern normalerweise nicht verlangt, mit allen Formen und Floskeln vertraut zu sein (Es gibt allein drei verschiedene Höflichkeitsstufen in der Sprache!). Wenn man also versucht, sich ein bisschen Mühe zu geben, wird einem so ziemlich alles verziehen.
Man sollte als Tourist aber lieber nicht versuchen, sich zu verbeugen, da dies sehr genau und hierarchisch geregelt ist und man unfreiwillig komisch wirken kann. Also besser einfach mit dem Kopf nicken und höflich lächeln!
Körperkontakt wird in Japan als etwas sehr Intimes angesehen, also mit Händeschütteln, Schulterklopfen oder Umarmungen lieber zurückhaltend sein und abwarten wie sich der Gegenüber verhält. Ihre Gefühle zeigen Japaner wenig, das Einzige was immer korrekt ist, ist lächeln. Erst im privaten Umfeld ist mit lockererem Umgang zu rechnen.
Spricht man jemanden mit Namen an (oder spricht man über jemanden), wird ein ''…san'' an den Namen angehängt - an den eigenen Namen allerdings nie.
Wenn man jemanden zum ersten Mal trifft bzw. vorgestellt wird, sagt man höflich: „Hajimemashite. Watashi wa ''XY'' to mōshimasu. Dozo yoroshiku onegai shimasu.“ (etwa: „Sehr erfreut Sie kennenzulernen. Mein Name ist ''XY''. Bitte seien Sie mir gewogen.“). Dabei ist, so vorhanden, die Übergabe einer Visitenkarte, immer mit beiden Händen, sowie eine leichte Verbeugung, üblich.
Zum guten Ton gehört es auch, Gastgeschenke zu machen. Wenn man ein solches Geschenk überreicht, sagt man: „Tsumaranai mono desu ga… Dozo.“ (etwa: „Es ist nur eine Kleinigkeit, aber bitte nehmen Sie es an.“ Wörtlich: „Es ist ein langweiliges Ding (Sache, Objekt, etc), aber bitte nehmen Sie es an.“). Erhält man ein Geschenk, bedankt man sich folgendermaßen: „Domo arigatō gozaimasu.“ Es ist unüblich in Gegenwart des Schenkenden das Geschenk auszupacken. Damit vermeidet man auch eine ungewollte Gefühlsäußerung.
[[File:玄関 (5251168372).jpg|thumb|''Genkan,'' die Schuhablage im Eingangsbereich.]]
Hilfe wird oft nicht ungefragt angeboten, sondern eher dafür gesorgt, dass ein Vorfall der ein Einschreiten erfordert der zuständigen Person (Polizist, Busfahrer usw.) auch bekannt wird. Allerdings kann und darf man ruhig jemanden fragen. Straßenadressen in Wohnbezirken sind eigentlich nur den Postboten bekannt, selbst wenige Häuser entfernt Wohnende wissen oft nicht die Hausnummern. Eine (private) Einladung der keine Wegbeschreibung beigegeben ist, ist eigentlich nicht ernst zu nehmen.
Schlürfen, besonders von Nudelgerichten ist üblich und ein Zeichen, dass es schmeckt. Schneuzen bei Tisch ist dagegen absolut unerträglich, man begebe sich hierfür hinaus oder auf die Toilette.
'''Schuhe aus!''' Beim Betreten einer Wohnung werden immer die Schuhe ausgezogen. Es ist daher keine gute Idee nach Japan in Schnürstiefeln zu reisen. Slipper sind praktisches Schuhwerk. Wer Füße größer als 43 hat sollte auch seine eigenen Schlappen mitbringen. Das Vorhandensein eines kleinen durch eine Stufe abgesenkten Bereichs bei der Haustür (''genkan'' – also in allen Privathaushalten) ist ein sicheres Zeichen, dass die Schuhe auszuziehen sind. Eine absolute Todsünde ist Betreten von Reisstrohmatten (''tatami'') mit Schuhen oder Schlappen. Auch stehen in Toiletten spezielle Schlappen bereit, die keinesfalls beim Heraustreten angelassen werden dürfen.
=== Sauberkeit und Hygiene ===
Japan ist ein sehr sauberes Land. Im Straßenbild sind so gut wie keine Graffiti zu finden, auch weggeworfene Papiere, Zigarettenstummel, Kaugummireste sucht man glücklicherweise meist vergebens, Abfalleimer allerdings auch.
Toiletten sind in Japan auch in stark frequentierten touristischen Orten oder auf Bahnhöfen sehr ordentlich. Für die meisten Europäer sind die traditionellen Toiletten von der Benutzung her ungewohnt, aber immer mehr setzen sich Toiletten im ''western style'' durch, deren Sitze mit Heizung und Spülung einen ungewohnten Komfort bieten. Auf öffentlichen Toiletten, z. B. in Bahnhöfen, sollte man aber wissen, dass in manchen Toiletten kein Papier vorhanden ist: das gibt es nur gegen 100 ¥ aus einem Automaten im Vorraum. Ansonsten ist die Benutzung kostenlos.
=== Mülltrennung ===
Mülltrennung wird in Japan noch sehr viel feinteiliger betrieben als in Deutschland. Jede Gemeinde hat ihre eigenen Regeln. Mit mindestens fünf Sorten ist in jedem Fall zu rechnen, es gibt auch einige kleinere Orte die über vierzig Arten Müll trennen. Da wird dann beim Papier z. B. unterschieden zwischen Zeitungen und Zeitschriften (wegen Heftklammern) usw. Kurzzeitbesucher betrifft das weniger, schon deshalb weil es kaum öffentliche Abfallbehälter gibt. Ist man aber vielleicht auf einem Campingplatz steht man dann vor der „vollen Auswahl“, die oft durch Bilder klar verständlich ist.
== Praktische Hinweise ==
=== Reisen mit Behinderung ===
Eine Behinderung zu haben gilt in der japanischen Gesellschaft immer noch als [https://the-ipf.com/2016/10/13/culture-shame-disability-japan/ „Schande.”] Familienangehörige werden oft regelrecht versteckt. „Behinderter“ heißt {{Ja|障がい者|w=shōgaisha}} wobei das Hiragana がい das stark negativ behaftete Zeichen 害 ersetzt.
Andrerseits hat man als erstes Land in Bahnhöfen und an Straßenkreuzungen die genoppten Pflastersteine eingebaut, die Blinden mit Stock den Weg weisen. Wer einen Blindenhund ins Land bringen möchte informiere sich auf der englischen Seite des [https://www.mhlw.go.jp/english/policy/care-welfare/welfare-disabilities/assistance_dogs/index.html Arbeitsministeriums], das Verfahren für Impfungen und Quarantäne bedarf mindestens eines halben Jahres Vorbereitung (Mikrochip, Impfungen, Tests und Anmeldung 40 Tage vor Ankunft, noch mehr Untersuchungen). Ist das alles in Ordnung dauert die Quarantäne 12 Stunden, sonst 180 Tage.
Die Zugänglichkeit von Webseiten, auch offizieller Stellen, ist oft schlecht z. B. durch Einsatz von Bildern für Text.
Für Rollstuhlfahrer ({{Ja|車いす|w=kuruma isu}}) hat sich im öffentlichen Raum, also Flughäfen, größere Bahnhöfe, Amtsgebäude, renovierte Museen usw. seit 2000 viel getan. Aufzüge oder Rolltreppen zu Bahnsteigen fehlen vielfach noch. Auch haben neue Busse inzwischen Einsteighilfen. Im Shinkansen ist im Wagen 11 der Durchgang breit genug. Im Bereich der Privatwirtschaft sieht es deutlich schlechter aus, hier ist man ohne Begleitperson aufgeschmissen. Die Hotelauswahl oder Restaurantwahl bedarf gewisser zusätzlicher Vorausplanung. Das liegt auch am allgemeinen Platzmangel und der engen Bebauung. Gerade der traditionelle ''genkan'' macht Zutritt zu Häusern schwierig.
=== Telekommunikation ===
[[File:ISDN phone - Hibiya Park - Tokyo, Japan - DSC09755.JPG|mini|Kombinierte Münz-Kartentelefone des gezeigten Typs waren auch 2014 noch weit verbreitet.]]
'''Mobiltelefone''' - Alle Telefone neueren Datums können problemlos in Japan verwendet werden. Die Netzabdeckung und der Netzausbau sind sehr gut.
SIM-Karten mit Telefonfunktion (auch Prepaid) dürfen nur an Personen mit einem Wohnsitz in Japan verkauft werden. Für Touristen gibt es lediglich einige Angebote mit reinen Daten-Sims ([https://prepaid-data-sim-card.wikia.com/wiki/Japan mehr dazu im Prepaid-Sim-Wiki]).
Es ist daher empfehlenswert, eine japanische Karte oder gleich ein japanisches Mobiltelefon zu mieten. Der Grund ist, neben den deutlich günstigeren Verbindungsgebühren die japanische Telefonnummer, welche man während der Mietdauer zur Verfügung gestellt bekommt. In Japan gilt die Telefonnummer als Identitätsnachweis. Eine Tatsache, von der man auch als Ausländer profitieren kann, z. B. bei spontaner Hotelbuchung.
Auch viele Vermieter von Ferienwohnungen stellen einen mobilen Router für das Internet zur Verfügung den man unterwegs mitnehmen kann.
Der Mietpreis pro Tag für eine Karte liegt z. B. bei [https://www.softbank-rental.jp/en/ Softbank] bei 110 ¥/Tag {{Stand|2025|09}}, nur für Gespräche, Datenpakete kosten extra mit Tagesmaximum 990 ¥.
Die Buchung ist unproblematisch im Internet möglich, bereits einige Tage vor Abreise bekommt man die Telefonnummer zugeschickt, die Abholung der Karte oder des Telefons erfolgt nach Ankunft an einem der Schalter in den internationalen Flughäfen (Tōkyō, Ōsaka, Nagoya).
'''Telefon''' - Telefonzellen sind in den großen Städten noch häufig anzutreffen, aber auch in kleineren Orten findet man solche vor. Telefonanrufe nach Deutschland sind aber ziemlich teuer (ca. 200 ¥ pro Minute). Deshalb sollte man sich alsbald eine Telefonkarte zulegen. Empfehlenswert ist z. B. die '''MCI Global Card''', die in den Preislagen von 3000 oder 5000 ¥ erhältlich ist (Tarif ins deutsche Festnetz ca. 24 ¥ pro Minute).
Die einfachste Möglichkeit ist, in einen solchen Laden zu gehen und eine Telefonkarte zum Telefonieren nach Deutschland zu verlangen. Der Händler sucht dann die günstigste Telefonkarte aus seinem Angebot heraus.
Auf japanische Telefonzellen kann man nicht angerufen werden, d. h. das Prinzip anklingeln und dann von Deutschland per Call-by-Call-Nummer zurückgerufen werden, funktioniert in Japan nicht!
Sonderrufnummern: Mit '''0120''' beginnende Telefonnummern sind kostenfrei. ''NaviDial'' ({{ja|ナビダイヤル|w=nabi daiyaru}}) sind für Kundensupport, aber z.B. auch die Beratung zur Verhinderung von Selbstmorden in Tokyo. Sie beginnen mit '''0570''' und kosten 33 Yen/Minute (44 Y/Min. ab 1. Okt. 2026). Anrufer werden durch Bandansage („nabi daiyaru de otsunagi shimasu“) vor diesen Kosten gewarnt, um dann in (den weltweit üblichen) Wartescheifen ausgenommen zu werden. '''050''' sind Voice-over-IP-Nummern, beliebt bei Telemarketing und ähnlich unseriösen Betrieben.
'''Fax:''' der Gebrauch von Faxgeräten war bis 2021 in Japan noch weit gebräuchlich, was angesichts der schlechten Bildqualität besonders bei der Übertragung handgeschriebenen japanischen Textes schwer verständlich ist. Eine Regierungskommission hat dann empfohlen zumindest bei Behörden nur noch eMails zu verwenden.
'''Internet''' - Die meisten Hotels bieten einen kostenlosen Internetzugang über WLAN an. Auch manche Jugendherbergen bieten einen kostengünstigen Internetanschluss an, und in einigen Städten werden auch kostenlose Hotspot-Zugänge für Touristen angeboten. Eine weitere Alternative sind Ketten wie Starbucks, die für ihre Kunden Internetzugänge bereitstellen. Insgesamt sind aber öffentliche Hotspots immer noch seltener als z. B. in Deutschland.
Internetcafés sind in Japan mittlerweile rarer, man sollte am besten an der Touristeninformation nachfragen: Diese suchen dann die Adresse eines Cafés heraus und weisen den Weg. Internetbenutzung ist in fast allen Manga-Cafés (Manga-Kissa) möglich, die sehr verbreitet sind. Diese sind oft so günstig (5 Stunden 1000 ¥), dass man dort auch mal entspannt die Rest-Nacht in einem Massage-Stuhl verbringen kann, wenn man die letzte Bahn verpasst hat. In vielen Hotels gibt es für Gäste einen meist zeitlich beschränkten kostenfreien Internet-Zugang.
=== Post ===
Überall in Japan sind [https://www.post.japanpost.jp/index_en.html Postämter] noch zahlreich, mit hilfsbereitem Personal, wenn auch oft nur rudimentären Englischkenntnissen. Öffnungszeiten sind 8:00/9:00 bis 16:00/17:00, selten 18:00. Man bietet zahlreiche in Deutschland lange schon vergessenen Dienstleistungen. Gewöhnliche Luftpostbriefe nach Deutschland kosten 2022 unter 20 g 110 ¥, bis 50 190 ¥ (Übergröße 260 ¥). Die Laufzeit liegt bei 6 Tagen, in der Gegenrichtung, dank der höheren japanischen Effizienz, meist bei nur 4 Kalendertagen. Ein 2 kg-Päckchen schlägt auf dem Seeweg (2-3 Monate) mit 1080 ¥ zu Buche, Luftpost kostet 2870 (6 Tage).<br>
[https://www.post.japanpost.jp/int/charge/list/index_en.html Aktuelle Tarife] (engl.).
In größeren Postämtern ist auch Geldwechsel gängiger Weltwährungen möglich. Beachte, dass die von der Post betriebenen Geldautomaten nachts, meist ab 23:00 Uhr (sonntags teilw. 20:00) abgeschaltet werden. Dies meist nicht lange, es kann aber vor Feiertagen bis 7:00 Uhr dauern.
=== Auslandsvertretungen ===
* Deutschland ist mit einer Botschaft in [[Tōkyō#Praktische Hinweise|Tōkyō]] (mit Zuständigkeit für den Norden des Landes) sowie einem Generalkonsulat in [[Ōsaka#Praktische Hinweise|Ōsaka]] (mit Zuständigkeit für den Süden des Landes) vertreten.
* Österreich verfügt lediglich über eine Botschaft in Tōkyō mit Zuständigkeit für ganz Japan.
* Die Schweiz verfügt über eine Botschaft in Tōkyō mit Zuständigkeit für ganz Japan. Das Konsulat in [[Ōsaka]] stellt keine Reiseausweise aus.
== Literatur ==
* Hadamitzky, Wolfgang; Rudat-Kocks, Marianne; ''Japan-Bibliografie: Verzeichnis deutschsprachiger japanbezogener Veröffentlichungen;'' Leiden (Brill); Reihe A: Monografien, Zeitschriften, Karten 1477–1985. Reihe B: Aufsätze. 1611–1985.
== Weblinks ==
{{Stand|2023|11}}
* [https://www.japan.travel/de/de/ Nationale Tourismusorganisation Japans]
* [https://www.de.emb-japan.go.jp/NaJ/NaJ2311/index.html Neues aus Japan, Zeitschrift der japanischen Botschaft]
* [https://web-japan.org/nipponia/archives/en/index.html NIPPONIA, Webzeitung vierteljährlich, englisch]
* [https://www.accessible-japan.com/ accessible-japan.com] Reisen mit Behinderug (engl.)
* [https://www.japan-accessible.com/ japan-accessible.com]
* {{Koch-Wiki|1=Kategorie:Japanische_Küche|2= Japanische Küche im Koch-Wiki}}
== Einzelnachweise ==
<references />
{{Navigationsblock|Navigationsleiste Japan Präfekturen}}
{{Related|Japan kennenlernen}}{{Related|Japan Rail Pass}}
{{GeoData| lat= 33.16715| long= 138.3871| radius= 1e+06}}
{{IstInKat|Ostasien}}
{{class-3}}
aruue8xgmlltucbb58s09a9m01qp66u
Marseille
0
4712
1769029
1762518
2026-04-16T15:43:39Z
Qualitätssicherung
50648
/* Ausflüge */ + Frioul-Inseln
1769029
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Marseille''' ist die zweitgrößte Stadt [[Frankreich]]s und das wirtschaftliche Zentrum der Region [[Provence-Alpes-Côte d'Azur]]. Die Stadt ist Verwaltungssitz des Departement Bouches-du-Rhône (13). Mit 2.600 Jahren ist Marseille die älteste Stadt Frankreichs. Die Stadt der Kunst und der Kultur war 2013 Europäische Kulturhauptstadt.
== Stadtteile ==
== Hintergrund ==
{{mapframe|43.2975|5.37|zoom= 12|width= 300|height= 450}}
{{Mapshapes|Q275267}}
[[Bild:Marseille Cathedrale.jpg|thumb|297px|Kathedrale La Major]]
Lateinisch: Massilia
Statistisch bildet Marseille in Frankreich (ohne Überseegebiete) mit ca. 240 km² die fünftgrößte Kommune des Landes, weit vor Paris (105 km²), allerdings sind große Teile davon unbewohnt (insbesondere sei hier das Massiv der [[Nationalpark Calanques|Calanques]] erwähnt). Nichtsdestotrotz verfügt die Stadt zwischen Callelonge im Süden und L'Éstaque im Norden über eine beachtliche Ausdehnung.
== Anreise ==
=== Mit dem Flugzeug ===
{{vCard|type=airport |name=Flughafen Marseille-Provence |wikidata=Q651190 | show = symbol | before =Der | url = https://www.marseille.aeroport.fr/ |description=liegt ca. 15 km nord-westlich der Stadt in der Gemeinde Marignane. Er ist einer der größten Flughäfen im Süden Frankreichs. Vom Flughafen Marignane erreicht man Marseille (Gare Saint-Charles) mit einem Schnellbus in ca. 25 Minuten (8,50 €). }}
Zum Flughafen Marignane gibt es gute Flugverbindungen aus [[Flughafen München|München]], [[Flughafen Frankfurt am Main|Frankfurt]] mit [[Lufthansa]]/Lufthansa City Line und [[Düsseldorf]] mit [[Eurowings]]. Zudem wird nahezu jeder bedeutende Flughafen in Frankreich angeflogen (Umsteigeverbindungen nach Deutschland über Paris, Lyon, Strasbourg). MRS gilt auch als wichtig(st)er Knotenpunkt für Flüge nach Korsika.
=== Mit der Bahn ===
Der {{Marker|type = station|name = Hauptbahnhof Marseille St. Charles |lat = 43.303356|long = 5.380228|wikidata = Q371217}} ist der Endpunkt der Strecke TGV-Méditerranée, welche die Stadt mit Avignon und Lyon verbindet. Paris erreicht man in wenig mehr als drei Stunden (tagsüber im 1-Stunden-Takt). In nördlicher Richtung existieren u. a. direkte TGV-Verbindungen nach Lille, Brüssel, Lyon, Nantes, Rennes, Toulouse (über Avignon-TGV), Le Havre, Frankfurt am Main über Strasbourg und Paris-Charles-de-Gaulle.
Richtung Osten verkehren sowohl TGV- wie auch herkömmliche Fern- und Regionalzüge auf einer Trasse über Aubagne und Bandol nach Toulon (hier sehr dichter Takt) und weiter über Nizza und Monaco nach Italien (teilweise direkte Züge bis Ventimiglia). Aufgrund der niedrigen Bahnpreise in Italien ist eine Anreise aus Süddeutschland auf diesem Wege oft günstiger.
Ferner gibt es stündliche Regionalzugverbindungen nach Avignon (Achtung: verschiedene Streckenführungen!), teilweise verlängert nach Lyon bzw. sogar Paris (Fahrzeit ca. 12 Stunden!). Über Arles und Nimes verläuft die einzige Hauptlinie Frankreichs in Ost-West-Richtung, welche nicht über Paris führt, hier werden mehrmals täglich Verbindungen nach Montpellier und weiter nach Narbonne-Perpignan-(nachts auch direkt nach Port Bou in Spanien) bzw. Carcassonne-Toulouse-Bordeaux angeboten.
Zuletzt existiert eine vergleichsweise schlecht bediente Trasse nach Aix-en-Provence (hier empfiehlt sich der Bus von Cartreize), die von dort weiter in die Alpen führt (Gap-Briançon-Grenoble).
Das französische Tarifsystem ist sehr undurchsichtig, so dass sich der günstigste Preis meist nur erfragen lässt. Es sei aber insbesondere auf die [http://www.voyages-sncf.com Internetseite] der französischen Bahn verwiesen, auf welcher günstige Angebote (Paris-Marseille ab 19 €, etc.) erworben werden können.
=== Mit dem Bus ===
Der Busbahnhof Marseilles befindet sich neben dem Hauptbahnhof in nördlicher Richtung und verfügt neuerdings über einen direkten Zugang aus dem Bahnhofsgebäude. Es existieren Busverbindungen in nahezu jeden Ort der Provence (eventuell mit Umsteigen in Aix-en-Provence), allerdings sollte beachtet werden, dass die letzten Busse abends ca. um 19 Uhr fahren. Lediglich Aix-en-Provence wird bis Mitternacht bedient.
Der Schnellbus zum Flughafen fährt an den Buchten 13 und 14 im Busbahnhof ab, Kartenverkauf (man spricht Englisch) direkt gegenüber im Hauptbahnhof.
Auch die französische Bahn führt in Zusammenarbeit mit dem Conseil Régional Busverkehre insbesondere Richtung Aix und darüber hinaus in die Alpen durch. Ferner existieren Verbindungen nach Osten (bis Nizza). Die Preise sind, verglichen mit der Bahn, teurer. allerdings kommt man häufig auch schneller an sein Ziel.
Marseille ist auch an das Netzwerk von [https://www.eurolines.de eurolines]/ Deutsche Touring angebunden, so existieren etwa direkte Verbindungen nach Frankfurt und Berlin. Auch Italien, Spanien, Ungarn, Rumänien, Kroatien, Slowenien und Marokko haben direkte Busverbindungen mit Marseille.
=== Auf der Straße ===
Marseille bildet den Endpunkt der "Autoroute du Soleil" {{RSIGN|FR|A|7}}, die (in Paris als {{RSIGN|FR|A|6}} beginnend) Lyon mit Valence, Montélimar und Avignon verbindet und an der Porte d'Aix am Place Jules Guèsde nach 310 km in den Stadtverkehr übergeht. Sie ist ab Salon-de-Provence mautfrei.
Kurz hinter dem [[Flughafen Marseille-Provence]], an dem man in nördlicher Richtung vorbeifährt, besteht auch die Möglichkeit, auf die {{RSIGN|FR|A|55}} zu wechseln, die als weniger stauanfällig gilt und direkt zum Alten Hafen führt. Will man die Stadt nur durchfahren (Richtung Toulon), so empfiehlt es sich dringend, die A55 zu benutzen, da man über zwei Tunnel (Tunnel du Vieux-Port, Tunnel du Prado-Carénage (MAUT!) direkt auf die folgende Autobahn gelangt.
In/aus Aix-en-Provence gelangt man über die mautfreie {{RSIGN|FR|A|51}} zum Autobahndreieck bei St. Antoine, wo man in die {{RSIGN|FR|A|7}} einmündet [Achtung, hier befinden sich stationäre Radaranlagen: Tempo 90!].
Für Fahrten über St. Tropez hinaus empfiehlt sich trotz der landschaftlich reizvolleren Fahrt die Küste entlang (A50 bis Toulon-West, {{RSIGN|FR|A|57}} ab Toulon-Ost), insbesondere in östlicher Richtung die Fahrt über Aix-en-Provence und die {{RSIGN|FR|A|8}} Richtung Fréjus, Cannes und Nizza, da sonst Toulon durchfahren werden muss (keine Umgehung). In westlicher Richtung besteht eine Untertunnelung des Zentrums.
In westlicher Richtung besteht die ebenfalls mautfreie Autobahn in Richtung Martigues, die dort zu einer vierspurig ausgebauten Bundesstraße wird. Sie bildet die Hauptverbindung Richtung Camargue, Montpellier und Spanien (alternativ kann auch -mautpflichtig und länger- über Salon und die {{RSIGN|FR|A|8}} gefahren werden)
[[Bild:Laika ac Marseille (9488477655).jpg|mini|Vieux-Port (Alter Hafen)]]
=== Mit dem Schiff ===
Vom neuen Hafen, dem Port de la Joliette verkehren regelmäßig Fähren nach [[Nordafrika]] (Algier, Oran, Béjaja, Skikda, Annaba, Tunis, Souuse, Sfax, Bizerte, Tanger), nach [[Korsika]] (Ajaccio, Bastia, Calvi, Ile-Rousse, Propriano, Porto-Vecchio) sowie nach [[Sardinien]] (Porto-Torres, teilweise über Korsika).
Aufgrund der langen Fahrzeiten und folglich höheren Preise sollte bei Fahrten nach (Ost-)Korsika allerdings auch die Möglichkeit eines Landtransfers nach [[Toulon]] oder [[Nizza]] in Betracht gezogen werden. (Ehemalige) Inselbewohner profitieren gerade von Marseille aus jedoch von speziellen Tarifen, was die sehr guten Verbindungen mit der Insel trotz der Konkurrenz durch Flugzeug und die anderen Häfen erklärt.
==== Kreuzfahrtschiffe ====
Der Hafen verfügt über drei Anlaufstellen für Schiffe, an denen 10 Schiffe gleichzeitig andocken können. Eine Anreisebeschreibung zum Kreuzfahrtterminal findet man [https://www.marseille-tourisme.com/al/praktische-informationen/kreuzfahrten/anreise-zu-ihrem-kreuzfahrtschiff/ hier].
* Die Anlaufstelle La Joliette, in nächster Nähe zum Stadtzentrums, war bisher kleineren Jachten der Premiumklasse für Zwischenstopps auf einer Ferienreise vorbehalten, nun können auch Kreuzfahrtschiffe bis zu einer Länge von 220 Metern anlegen. In der Nähe des Terminals gibt es die Tram- und Metro-Station ''Joliette'', außerdem fahren die Buslinien 35, 49 und 55.
* Das Terminal du Cap Janet für Schiffe bis zu 220 Meter Länge als Anlauf- oder Endhafen.
* Die Anlaufstelle {{marker|type = port|name = Môle Léon Gourret|lat = 43.342760|long= 5.334058}} und ihr Terminal, das am Quai die größten Passagierschiffe aufnehmen kann.
== Mobilität ==
[[File:Marseille_-_Metro_-_Netzplan.png|mini|[[File:U-Bahn.svg|20px]] (2009)]]
[[Bild:Marseille Altes Rathaus.jpg|mini|Altes Rathaus]]
[[File:Réseau de tramway de Marseille (début 2026).svg|mini|[[File:Tram-Logo.svg|20px]] (2026)]]
[[File:Navette maritime de Marseille.svg|thumb|Haltepunkte der ''LaNavette'']]
=== Öffentlicher Nahverkehr ===
Marseille verfügt über zwei [https://www.rtm.fr/ Métrolinien] und drei Straßenbahnlinien, daneben existieren viele Buslinien, die Verbindungen in die Vororte und die Umgebung gewährleisten. Es gibt einen [https://www.rtm.fr/sites/default/files/planaxeslourds.pdf Übersichtsplan für Metro und Tram als pdf]. Eine deutschsprachige Bespreibung existiert [[w:Métro_Marseille|hier]].
==== Metro ====
- Métro 1 beginnt im Nordosten (La Rose), durchquert die Stadt in einem Bogen (u. a. wird der Hauptbahnhof St-Charles und der Alte Hafen « Vieux Port » bedient), um wieder nach Osten abzubiegen und über Krankenhaus „La Timone“ und dem zweitwichtigsten Bahnhof « La Blancarde » nach « La Fourragère » zu fahren.
- Métro 2 beginnt im Nordwesten (Gèze) und durchquert die Stadt nach Südosten bis zur Station « Sainte-Marguerite Drômel ». Sie bedient insbesondere den (Fähr-)Hafen "Joliette", den Bahnhof "St-Charles" und den « Rond-Point du Prado », von dem aus man den Stadtstrand am Prado mit Bussen sowie den Haupteingang des Stade Vélodrome zu Fuß erreicht.
Beide Linien treffen sich in ''Castellane'' und am Hauptbahnhof. Sie verkehren Mo.-Do. von ca. 5-21 Uhr, Fr.-So. ca. 5-24.00 Uhr.
- Métro 3 Arenc – Capitaine Gèze, Castellane – La Gaye
==== Buslinien ====
Der Großteil der Buslinien fährt am « Centre Bourse » in der Nähe des alten Hafens und am Place de Castellane ab. Am Centre Bourse befindet sich ein Informationsbüro der Verkehrsgesellschaft [http://www.rtm.fr rtm] für aktuelle Änderungen.
Für Touristen interessant erscheinen insbesondere die Buslinien 35 (nach l'Éstaque), 60 (zur Kirche Nôtre-Dame-de-la-Garde "Bonne Mère") und 83 (entlang der Corniche), die allesamt (von verschiedenen Haltestellen!) direkt am alten Hafen (nicht am Centre Bourse!) abfahren. Um in die Calanquen zu gelangen, empfiehlt es sich, ab Centre Bourse Bus 21 bis zur Endstation "Luminy" (Fahrzeit ca. 45 Minuten), Bus 20 (ab Montrédon, zu erreichen mit Bus 19 ab Prado) nach Callelongue oder Bus 22 ab Prado bis zur Endstation Les Baumettes zu benutzen. Von den Endstationen steht dem Besucher jedoch noch ca. 1 h Fußweg bis zum Meer bevor!
==== Straßenbahn ====
Eine für je 60 Minuten in allen Netzen nutzbare Einzelfahrt kostet 1,70 €, beim Busfahrer 2,00 €. Es gibt auch „Streifen“- (10 Fahrten: 15 €), Gruppenkarten für 4 Personen (4,90 €), Tageskarten (5,20 €), 3-Tages-Karten (10,80 €), die vorzugsweise am Automaten erworben werden können (Beim Kauf im Bus wird das Geld nur abgezählt angenommen). Die Fahrkarten werden auf eine Magnetkarte aufgebucht, wodurch der Fahrschein beim ersten Aufbuchen 0,10 € teurer ist. Aufpassen: Die Fahrscheine müssen zu Beginn jeder Fahrt entwertet werden, auch nach einem Umstieg! Sie sind dafür aufzubewahren und in einem gut lesbaren Zustand zu erhalten. {{Stand|2026|03}}<!-- Fahrpreise netterweise seit 2018 kaum erhöht -->
Für die sehr günstigen Wochen- und Monatskarten benötigt man ein Passfoto, eine Adresse (Hoteladresse aufschreiben!) und gute Französischkenntnisse. Aus Deutschland bekannte „Zonen“ oder „Ringe“ existieren nicht. Ein Einzelticket erlaubt 60 Minuten freie Fahrt im gesamten Netz. Im Gegensatz zu Paris ist das Umsteigen zwischen U-Bahnen und Bussen beliebig möglich, erneutes Entwerten des Fahrscheins nicht vergessen, dies zählt nicht als zusätzliche Fahrt, macht man es jedoch nicht, fährt man schwarz.
=== Fähren ===
Im alten Hafen gibt es eine 300 Meter lange Fährstrecke, 7.00-20.20 Uhr, alle 20 Minuten, 50 ¢/pro Fahrt.
'''LaNavette'' sind Fähren in der Bucht. Sie kosten 5 (Umsteigeberechtigung 90 Min.) oder 8 € (Umsteigeberechtigung 3 Std.). Betriebszeiten sind szündlich, aber nur im Sommer (Ende April bis Ende September) 7-19 Uhr, im Hochsommer auch später bis ca. 22 Uhr.
'''Le Bateau''' fährt das ganze Jahr zur îles du Frioul und Château d’If.
=== Mit dem Auto ===
Obgleich das Auto sicherlich unschätzbare Vorteile genießt, sollte man sich überlegen, mit dem Auto nach Marseille (bzw. ins Zentrum der Stadt) zu fahren:
- Das historische Zentrum der Stadt ist relativ klein und gut zu Fuß zu erkunden
- Der Parkdruck ist groß. Einen Parkplatz zu finden, gleicht einem Lottogewinn
- Verwirrende Straßenführungen (Einbahnstraßen!)
- Diebstahlgefahr (insbesondere in den "Quartiers Nord", aber auch in der Innenstadt)
- auch der südliche Fahrstil ist nicht jedermanns Sache
- und zuguterletzt: Marseillais, ob Fußgänger oder Autofahrer, machen sich nicht viel aus Verkehrszeichen, inkl. Ampeln. Deshalb auch Vorsicht, wenn die Ampel grün ist!
Fazit: Für Fahrten in die Calanques, nach l'Éstaque oder die Provence ein unschätzbarer Vorteil, für Marseille selbst eher ein Klotz am Bein.
=== Zu Fuß ===
Stadtpläne sind im Office du Tourisme am Alten Hafen in verschiedenen Sprachen kostenlos erhältlich und enthalten auch einige interessante Vorschläge für Besichtigungen. Weite Teile Marseilles (auch interessante Stadtteile wie das Panier oder Noailles) lassen sich am besten zu Fuß erkunden.
=== Mit dem (Leih-)Fahrrad ===
[[File:Le Vélo - Bicycle Rental Station.JPG|thumb|Le Vélo - Bicycle Rental Station]]Wer sich vom teilweise chaotisch anmutenden Verkehr nicht abschrecken lässt, kann Marseille außerhalb des direkten Innenstadtbereichs (z. B. für den Strand, einen Besuch des Friedhofs St.Pierre oder des Dock-Viertels) sehr gut mit dem Fahrrad erkunden. Marseille verfügt über das gut ausgebaute und günstige Mietfahrradsystem [http://www.levelo-mpm.fr/ Le Vélo]. Man kann an einer beliebigen Station ein Fahrrad entnehmen und an jeder anderen Station wieder abstellen, die erste halbe Stunde ist dabei sogar kostenlos (Stand März 2013). Die Hürde ist leider allein die französischsprachige Navigation an den Leihautomaten (Stand März 2013) und eine französischsprechende Telefonhotline.
Die Fahrräder sind robust und dabei einfach zu bedienen, folgende Tipps könnte man beherzigen:
* An den Mietstationen '''vor dem Buchen''' ein Fahrrad aussuchen
* Überprüfen: Äußerlich O.K.? Luftdruck O.K.? Beide Bremsgriffe einmal betätigen: Fühlt man einen Druckpunkt oder ist vielleicht ein Zug gerissen? Lässt sich der Drehgriff der Schaltung betätigen? Ist die Sattelstütze zu verstellen (Knopf hineindrücken, dann die Sattelstütze verschieben)?
* Es wird ein Pfand von 150€ über die EC-Karte angekündigt: Das ist wie in Deutschland bei Tankautomaten und beschreibt ein Maximum. Tatsächlich wird nur die Nutzungsgebühr berechnet. Den Beleg sollte man in jedem Fall aufbewahren.
* Es versteht sich von selbst wie bei allen anderen Fahrzeugen: Außerhalb der Mietstation gut und möglichst überwacht anschließen (Schloss ist am Fahrrad angebaut). Am besten: Einfach an der nächsten Mietstation wieder zurückgeben und man hat keinen Stress mehr.
* Bei der Rückgabe unbedingt darauf achten, dass der Automat die Rückgabe bestätigt (langer Piepton).
* Bei Problemen für Gäste ohne Französischkenntnisse an das Touristenbüro wenden.<br />
Dann die Verkehrshinweise in Ergänzung zu oben: Defensiv fahren. Es geht bunt zu, aber anders als in Deutschland besteht ein Verkehrsteilnehmer selten auf seinem Vorfahrtsrecht und bedrängt einen schwächeren Verkehrsteilnehmer (Autos gegen Radfahrer oder Fußgänger, Radfahrer gegen Fußgänger). Ein Radweg ist daher auch nur ''Verhandlungsbasis'', er wird auch von Fußgängern benutzt. ''Mit Rücksicht und Kommunikation macht Fahrradfahren in Marseille großen Spaß!''
=== Barrierefrei ===
In einer 2005 veröffentlichen Studie wurde Marseille zu einer der am schlechtesten auf die Bedürfnisse behinderter Menschen angepassten Städte in Frankreich gewählt. Von den Sehenswürdigkeiten bis hin zur Métro ist noch kaum etwas ausgestattet.
== Sehenswürdigkeiten ==
[[Bild:Marseille Notre Dame.jpg|thumb|Basilika Notre-Dame de la Garde]]
=== Die Kathedralen ===
[[Image:Notre-Dame de la Garde Innenansicht.JPG|thumb|Innenansicht von Notre-Dame de la Garde]]
[[Image:Notre-Dame de la Garde Votivbilder.JPG|thumb|Votivbilder in Notre-Dame de la Garde]]
* {{vCard | name = Basilika Notre-Dame de la Garde | wikidata = Q975925 | description = Die Kirche ist im neobyzantinischen Stil gebaut und befindet sich auf einem 162 m hohen Kalksteinfelsen südlich der Altstadt. Sie ist von Norden über Treppen zu erreichen und entstand in den Jahren 1853 bis 1864 an der Stelle einer mittelalterlichen Wallfahrtskapelle. Architekt war Henri-Jacques Espérandieu. Der 41 m hohe Turm wird von einer 9 m hohen, vergoldeten Marienfigur gekrönt. Das Innere ist mit Marmor, Mosaiken und Wandbildern verziert. Von der Terrasse hat der Besucher einen eindrucksvollen Blick über die Stadt und das Mittelmeer mit den Inseln Ratonneau, Pomègues und dem Château d'If.
}}
* {{vCard | type = cathedral | name = Kathedrale La Major | wikidata = Q1419757 | description =
}}
* {{vCard | type = church | name = Kirche Saint-Laurent | wikidata = Q1764669 | description =
}}
* {{vCard|type=monastery |name= Abtei Saint-Victor |wikidata=Q1858504 |address=Place Saint-Victor, 13007 Marseille |phone= +33 4 96 11 22 60 |email=|fax=|hours=|price=|lat= 43.290420|long= 5.365502|lastedit=|description=}}
=== Die Altstadt und das Panier Viertel: Le Panier ===
* {{vCard|type = building|name = Maison Diamantée |wikidata=Q3278694 |address= 3 Rue de la Prison, 13002 Marseille| phone = +33 4 91 13 20 13|lat = 43.297001|long = 5.369357|description = Das Diamantenhaus.
}}
* {{vCard|type=palace |name=Pavillon Daviel |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Der Justizpalast von Marseille.
}}
* {{vCard|type=see |name=Grand’Rue |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard|type = building|name =Hôtel de Cabre|wikidata=Q2109073 |address= 27 Grand Rue, 13002 Marseille|lat = 43.297698 |long =5.371352
}}
* {{vCard|type=hotel |name=Hôtel Dieu |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard|type = church|name = Eglise des Accoules| wikidata=Q970362 | address= 8 Place Daviel, 13002 Marseille |lat = 43.297839|long = 5.368476
}}
* {{vCard|type=see |name=Observatorium – Préau des Accoules |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard|type=see |name=Place de Lenche |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
=== La Canebière ===
Die ehemalige Prachtstraße Canebière wird von stattlichen Geschäftshäusern und Cafés gesäumt. Sie beginnt am Alten Hafen und zieht sich 1 km nach Nordosten.
* {{vCard|type=cafe |name=Café Turc |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=opera house |name=Oper |wikidata=Q3085786 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=hotel |name=Hôtel du Louvre et de la Paix |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=hotel |name=Hôtel de Noailles |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=see |name=Les allées de Meilhan |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=see |name=Musikpavillon |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=monument |name=Monument aux Mobiles |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=church |name=Kirche Les réformés |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
=== Le Vieux-Port − Alter Hafen ===
Der {{marker|name=Vieux-Port |wikidata=Q437959}} entstand bereits in der Antike und ist das historische und kulturelle Zentrum von Marseille.
=== Das Rathaus ===
* {{marker|name=Rathaus|type=town hall|wikidata=Q2422203}}
=== Festung und Schlösser ===
* {{vCard | name = Palais Longchamp | type = palace | wikidata=Q1619084 | lat = 43.304351 | long = 5.394555 | description = 1862–1869 im Stil des Historismus errichtet
}}
* {{vCard | name = Fort Saint-Jean | type = fort | wikidata=Q1905802| description = 1660 unter Louis XIV am Eingang zum Alten Hafen gebaut. Seit 2013 ist es durch zwei Fußgängerbrücken mit dem historischen Viertel Le Panier und dem Museum der Zivilisationen Europas und des Mittelmeers verbunden.
}}
=== Museen ===
[[Image:Марсель - panoramio (17).jpg|mini|Palais Longchamp]]
[[Image:Mucem Marseille 01.jpg|mini|Mucem]]
Alle Museen in Marseille und ihre Ausstellungen auf einen [http://www.marseille.fr/vdm/cms/culture/musees Klick], auf Französisch
* {{vCard|type=museum |name=Musée Archéologique Méditerranéenne |wikidata=Q1795927 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard | name = Musée d'Art Contemporain | alt = MAC | type = museum | wikidata = Q3329581 | url = http://www.lesartistescontemporains.com/macmarseille.html | address = 69 Avenue de Haïfa | phone = +33 04 91 25 01 07 | hours = Di – So 10.00 – 17.00 Uhr (18.00 Uhr vom 1.06. bis 30.09.), an Feiertagen geschlossen | price = Eintritt 3,- € | lat = 43.250297 | long = 5.389677 | description = Metrostation „Ront-Point du Prado“. Dynamisches Museum der zeitgenössischen Kunst, mit Werken des ''Nouveaux Réalisme'', der ''Figuration Narrative'', der ''Support-Surface''-Strömung, ''Fluxus'', ''Arte Povera''. Besonders gut vertreten sind die ''Nouveaux Réalistes'' mit Werken von ''Arman'', ''Christo'', ''Spoerry'', ''Niki de Saint-Phalle'', ''Tingely'', und von ''César'', dem Sohn Marseilles, dessen meterhoher vergoldeter ''Daumen'' im Park des Museums steht. Wer bisher der zeitgenössischen Kunst mit Skepsis begegnete, kann sie hier ein für alle Male lieben lernen.
}}
* {{vCard|type=museum |name=Musée d'Arts Africains, Océaniens et Amérindiens |alt=M.a. a. O.A.|wikidata=Q3330157|address=|phone=|email=|fax=|url=|hours=|price=|lat=|long= |lastedit=|description=
}}
* {{vCard | type = museum | name = Musée Cantini | url = https://musee-cantini.marseille.fr | address = 19 rue Grignan | lat = 43.292185 | long = 5.378191 | directions = Metrostation „Estrangin“ | phone = +33 (0)4 91 54 77 75 | hours = Di-So 10.00-17.00 Uhr (18.00 Uhr vom 01.06.-30.09.), an Feiertagen geschlossen | wikidata = Q3086101 | description = Das nach seinem Stifter, Jules Cantini benannte, in einem schönen Stadtpalast vom Ende des 17. Jahrhunderts untergebrachte Museum präsentiert die Strömungen der Kunst der Moderne von 1900-1960 und verschiedene unklassifizierbare Künstler der 1970er/1980er Jahre. Die Ausstellung ist in mehrere Sequenzen untergliedert: die Wegbereiter der Moderne, die Zeit zwischen den Kriegen, Marseille und der Surrealismus, von der Nachkriegszeit bis in die 1950er/1960er Jahre, die Einzelgänger der 1970er/1980er Jahre. Sehenswert. }}
* {{vCard | name = Musée des Docks romains | type = museum | wikidata = Q3330242 | lat = 43.296822 | long = 5.368165
}}
* {{vCard|type=museum |name=Musée des Arts décoratifs, de la Faïence et de la Modee |wikidata=Q16928705 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard|type=museum |name=Musée Grobet-Labadié |wikidata=Q3329184 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard|type=museum|name=Musée d'Histoire de Marseille|wikidata=Q3329666|address=|phone=|email=|fax=|url=|hours=|price=0|lat=|long=|lastedit=|description=Ausstellung auf französisch aber Audioguides in englisch, italienisch und französisch kostenlos ausleihbar.}}
* {{vCard|type=museum |name=Musée du Vieux Marseille |wikidata=Q3330400 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard | name = Musée de la Moto | type = museum | wikidata = Q124069112 | description =
}}
* {{vCard|type=museum |name=Préau des Accoulés |address=in der ehemaligen Akademie der Wissenschaften|phone=|email=|fax=|url=|hours=|price=|lat=|long= |lastedit=|description=
}}
* {{vCard|type=museum |name=Palais Longchamp |wikidata=Q1619084 | show= copy |address=im Quartier des Cinq-Avenues am nördöstlichen Ende des Boulevard Longchamp }}
** {{vCard|type=museum |name=Musée des Beaux-Arts |wikidata=Q83013 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Das Museum der schönen Künste befindet sich im linken Flügel.}}
** {{vCard | type = monument | name = Muséum d'histoire naturelle | wikidata = Q3330887 | lastedit = 2019-05-18 | description = }}
* {{vCard | type = museum | name = Vieille Charité | wikidata = Q1065120 | lastedit = 2019-05-18 | description = }}
* {{vCard | type = museum | name = Museum der Zivilisationen Europas und des Mittelmeers (Mucem) | wikidata = Q2808698 | lastedit = 2019-05-18 | description = }}
=== Denkmäler ===
* {{vCard | name = Mémorial des Camps de la Mort | type = memorial | wikidata = Q3333155 | description =
}}
== Aktivitäten ==
[[Datei:Stade Vélodrome closeup.jpg|mini|Stade Vélodrome]]
* '''Fußball''': Das {{Marker | name = Stade Vélodrome | type = stadium | wikidata = Q202150 | lat = 43.2699 | long = 5.3959 | image = Stade Vélodrome entrée principale.jpg }} ist mit einer Kapazität von über 60.000 Zuschauern das zweitgrößte französische Fußballstadion. Das Stadion ist nicht nur die Heimat von Olympique Marseille es war auch Austragungsort der [[w:Fußball-Europameisterschaft 2016|Fußball-Europameisterschaft 2016]].
== Einkaufen ==
Das Einkaufscenter {{marker|type=shop|name =La Bourse|lat = 43.296125|long= 5.375514}} liegt keine 5 Gehminuten vom Vieux Port entfernt. Vom Stil ähnelt es einer amerikanischen Mall und bietet Einkaufsmöglichkeiten für nahezu alles Erdenkliche. Unter anderem findet man eine Filiale von FNAC mit einer Kartenvorverkaufstelle.
Geht man vom Vieux Port die Canebière aufwärts geht nach etwa 500 Metern rechts eine Fußgängerzone ab, wo man eine große Auswahl an Geschäften findet.
Am Vieux Port gibt es einen kleinen Fischmarkt und einen wesentlich größeren Markt für Souvenirs wie Seifen, Keramik, Taschen und was sonst noch gerne von Touristen gekauft wird.
<div align="left"><gallery widths="220" heights="220">
Marseille Markt Alter Hafen.JPG|Seifenstand am Vieux Port
</gallery></div>
== Küche ==
Grundsätzlich gilt: Man muss keine Unsummen investieren, um in Marseille ein ansprechendes Essen zu bekommen. Es finden sich unzählige Restaurants, die besonders Mittags (praktisch als "Lockangebot", da die Restaurants zu dieser Zeit kaum frequentiert sind) zu günstigen Preisen - unter 10 € - Menüs anbieten. Die Palette reicht hier von traditionellen Angeboten über die italienische bis hin zur indischen Küche. Einzige Grundregel: Meiden Sie die scheinbar einladenden Restaurants und Bistros direkt am Vieux Port! Hier findet eine regelrechte kulinarische Massenabfertigung von Touristen statt. Es ist zu empfehlen, sich vom Hafen und der Canebière weg zu orientieren und in den schmalen Gässchen nach einem passenden Restaurant zu suchen. Auch wenn es oft nicht den Anschein hat, die kleinen, unauffälligen Lokale bieten meist die mit Abstand beste Küche.
Die '''Bouillabaisse''' ist das berühmteste Gericht vom Marseille.
Ursprünglich handelt es sich bei Bouillabaisse um ein Gericht, das die Fischer mit dem Fisch zubereiteten, den sie nicht verkaufen konnten. Im Laufe der Jahre wurde das Rezept jedoch so verfeinert, dass die Bouillabaisse heutzutage häufig zum teuren Luxusgericht wird. Die verschiedenen Bestandteile der Bouillabaisse werden getrennt serviert, auf einem Teller der Fisch, die Bouillon in einem separaten Gefäß. Jeder kann nach seinem persönlichen Geschmack Fisch und Bouillon zusammenstellen. Es werden dazu die Saucen Rouille und/oder Aïoli gereicht, sowie mit Knoblauch eingeriebene Croûtons.
<div align="left">
'''Navette''' (vgl. [https://fr.wikipedia.org/wiki/Navette_(p%C3%A2tisserie) französische Wikipedia]) ist ein süßes, längliches Keks-Gebäck aus Marseille, welches traditionell mit Orangen-Aroma versetzt ist, heutzutage aber mit verschiedenen Aromen angeboten wird. <gallery widths="220" heights="220">
Poissons pour la bouillabaisse sur le Vieux-Port de Marseille.jpg|Fische für die Bouillabaisse am Hafen
Bouillabaisse IMG 2832.2015-10-10 112242.JPG|erster Gang, Bouillon aus den eingekochten und passierten Fischen
Bouillabaisse IMG 2835.2015-10-10 113317.JPG|zweiter Gang, Fisch auf Kartoffeln
</gallery></div>
* {{vCard|type=restaurant|name=Fonfon|address=140, Vallon des Auffes|phone=04 91 52 14 38|email=contact@chez-fonfon.com|fax=04 91 52 14 16|url=https://www.chez-fonfon.com/|hours=Täglich zur Mittags- und Abendzeit geöffnet: 12-13:45 und 19:15-21:45|price=Bouillabaise-Menü 50 Euro p.P.|lat=43.2855413|long=5.3514289|description= Ausgezeichnete aber sehr hochpreisige Bouillabaise . Dieses Lokal ist nicht nur für das Essen sowie die tolle Lage an einer kleinen Bucht bekannt, sondern auch als Drehort für den Krimi-Klassiker "The French Connection"}}
* Der Anislikör '''[https://cristal-liminana.com/fr/ Kristall]''' wird heute von den Limiñana Brüdern mit weiteren Produkten in Marseille hergestellt. Der Likör wird nur aus Anis hergestellt, ohne weitere Zusätze, deshalb bleibt er beim Zusatz von Wasser weiß.
== Nachtleben ==
== Unterkunft ==
=== Günstig ===
* {{vCard | name = Formule 1 Hotel Valentine | type = hotel | url = http://hotel-formule-1-marseille-valentine.accorhotels.de/ | phone = +33 891705301 | lat = 43.298782 | long = 5.476594 | description = Das Hotel liegt Traverse de la Montre, ZAC de Valentine. Einfache Verbindung zur Stadt mit dem Bus.
}}
* {{vCard | name = Hotel de la Prefecture | type = hotel | url = http://www.hoteldelaprefecture.fr/ | phone = +33 04 91339981 | lat = 43.291271 | long = 5.381822 | description = Zwischen ''Place de Castellane'' und ''Vieux Port'' gelegen, zu beiden Orten knapp 10 min zu Fuß. Flure heruntergekommen, Zimmer für rund 45 € aber in Ordnung und die Betten werden sorgfältig gemacht. Unschlagbarer Vorteil: Englisch sprechende Leute an der Rezeption mit Einheimischen-Tipps zu Restaurants und Sehenswürdigkeiten. WLAN inkl. Rezeption rund um die Uhr besetzt.
}}
=== Mittel ===
* {{vCard | name = Mercure Hotel Vieux Port | type = hotel | url = https://all.accor.com/hotel/1148/index.de.shtml | address = 4 rue Beauvau | phone = +33 4 91549100 | lat = 43.295097 | long = 5.374811 | description = Zentrale Lage. 72 Zimmer.
}}
=== Gehoben ===
* {{vCard | name = Sofitel Hotel Vieux Port | type = hotel | url = https://www.sofitel-marseille-vieuxport.com/ | wikidata = Q16511394 | address = 36, boulevard Charles Livon | phone = +33 4 91155900 | lat = 43.292784 | long = 5.360473 | description = Dieses Luxushotel liegt im Herzen von Marseille.
}}
== Sicherheit ==
Marseille hatte lange sowohl unter Franzosen als auch Besuchern einen schmuddeligen und gefährlichen Ruf. Was die Innenstadt angeht gilt dies so nicht mehr und unter Berücksichtigung der üblichen Vorsichtsmaßnahmen bzgl. '''Taschendiebstahl''' (der durchaus verbreitet ist) und dem teils hektischen '''Verkehr''' ist Marseille tagsüber völlig problemlos zu besichtigen.
Die mit Vorsicht zu genießenden '''Vororte''' (Banlieues) sind großteils weit außerhalb und durch die wuchernden Plattenbauten rasch zu erkennen. Für Touristen sind diese grundsätzlich zu meiden (insbesondere die nördlich gelegenen ''Quartiers Nord'' sowie die Hauptverkehrsstraße ''Boulevard Michelet'' im Süden) und ohnehin nicht sehenswert - das Fußballstadion liegt allerdings auch hier.
'''Nachts''' gilt es, sich auf belebten Hauptstraßen zu bewegen und dunkle, leere Gassen zu meiden - insbesondere rund um den Hauptbahnhof trifft man vor den mit Graffiti verzierten Fassaden nicht selten auf Obdachlose, zu denen man etwas Abstand halten sollte. Auch von '''Fußballfans''' der Olympique Marseille sollte man Respekt haben, diese sind nicht selten gewaltbereit.
== Gesundheit ==
== Praktische Hinweise ==
* {{vCard | name = Marseille Tourist Office | type = tourist information | url = https://www.marseille-tourisme.com/al/in-marseille/ | address = Office de tourisme et des congrès de Marseille - 4, La Canebière - 13001 Marseille | phone = +33 04 91138900 | fax = +33 04 91138920 | lat = 43.2960349 | long = 5.3761071 | description =
}}
=== Frioul-Inseln ===
[[File:Hôpital Caroline, Îles du Frioul.jpg|thumb|Das {{marker|type=museum|name=Hôpital Caroline|url=|lat=|long=|name-local=y|wikidata=Q1977819}}, Ende der 1820er als Quarantänestation errichtet, ist seit 1942 nur noch eine Ruine. Während der Sommersaison nutzt man es für Ausstellungen und kulturelle Veranstaltungen.]]
Die {{marker|type=quarter|name=Îles du Frioul|url=|lat=|long=|name-local=y|wikidata=Q1464953}} bilden als « Les Îles » Teil des 7. Arrondissements Marseilles und stehen unter Naturschutz im [[w:Nationalpark Calanques|Nationalparks Calanques]]. Camping und offenes Feuer sind untersagt.
Aus dem alten Hafen in Marseille dauert die Überfahrt zwanzig Minuten. (Auch Château d'If rechnet dazu wird aber von anderen Booten angefahren.) Der Service wird Oktober bis März ausgedünnt. Angelandet wird beim Jachthafen. Privatautos sind verboten. Hier wohnen dauerhaft etwa 150 Menschen. Zahlreiche Touristen und vor allem Taucher besuchen die Inseln.
Die beiden felsigen, großen Inseln {{marker|type=island|name=Ratonneau|url=|lat=|long=|name-local=2,5 × 0,5 km|wikidata=Q3420134|show=nositelinks}} und {{marker|type=island|name=Pomègues|url=|lat=|long=|name-local=2,7 km lang|wikidata=Q3396119|show=nositelinks}} sind schon seit 1822–24 über die Mole « Digue de Berry » verbunden.
;Sehenswürdigkeiten
Die ungenutzte {{marker|type=church|name=Chapelle Saint-Étienne|url=|lat=|long=|name-local=y|wikidata=Q60370313}} bietet Blick auf den Bootshafen. Darüber ist das das {{marker|type=castle|name=Fort de Ratonneau|url=https://tourisme-marseille.com/fiche/fort-batterie-de-ratonneau-frioul-marseille/ |lat=|long=|name-local=y|wikidata=Q132559595|show=nositelinks}}. Ein weiterer Rest einer alten Befestigung ist das kleinere {{marker|type=castle|name=Fort du Brégantin|url=|lat=43.280438047786994|long= 5.2939549864505535|name-local=y|wikidata=}} im Westen von Ratonneau.
Entlang des Weges auf dem Grat ({{rolli|rot}}) in der Mitte von Pomègues stehen der Signalturm eines [[w:Optische Telegrafie|''Sémaphores'']], die Reste einer Geschützstellung nahebei sowie die Ruine des {{marker|type=castle|name=Fort de Cavaux|url=|lat=43.264882817306926|long=5.289740942857338|name-local=y|wikidata=|show=nositelinks}}
Baden kann man in engen felsigen Buchten wie {{marker|type=beach|name=Plage du Grand Souffre|name-local=|url=|lat=43.27998046723705|long= 5.3033566909640815}}, {{marker|type=beach|name=Plage de Saint-Estève|name-local=|url=|lat=43.28417667635844|long=5.315743777571478}} oder {{marker|type=beach|name=Calanque de L’Escondelle|name-local=|url=|lat=43.2698374099496|long= 5.296295965567748}}.
;Unterkunft und Verpflegung
* {{vCard|type=restaurant|name=L’Effet Mer Frioul|name-local=|address=Quai d'Honneur Île Ratonneau, 13007 Marseille, Frankreich |directions=am Ende der Mole auf Ratonneau|phone=|url=|hours=10.00-22.30|price=|lat=43.27890938575099|long=5.304021991378082|lastedit=2026-04-16|description=}}
* {{vCard|type=hotel|name=Vacances Léo Lagrange |name-local=|address=|directions=zwischen Hafenbecken und Fort|phone=+33482292300|url=|hours=|price=|lat=43.2818663968458|long=5.309582482293415|lastedit=|description=Pauschalunterkunft.|show=nosocialmedia}}
Der romantische Roman von 1818 ''Der tolle Invalide auf dem Fort Ratonneau'' diente 1968 [[w:Werner Herzog|Werner Herzog]] als Vorlage für den Film ''Lebenszeichen.''
== Literatur ==
=== Kurz und übersichtlich ===
* {{Buch |Autor=Klaus Simon |Titel=Marseille |Verlag=Dumont Reise Verlag |ISBN=978-3770195787}}
=== Besondere Reiseführer ===
* {{Buch |Autor=Uli Frings |Titel=Marseille, Calanques, Côte Bleue |Kommentar=Reise- und Wanderführer mit den schönsten Stadt- und Küstenwanderungen Marseilles. |ISBN=978-3000458606}}
* {{Buch |Autor=Ralf Nestmeyer |Titel=Provence & Côte d'Azur |Kommentar=Ein Reisehandbuch. |Verlag=Michael-Müller-Verlag |Ort=Erlangen |Datum=2015 |ISBN=978-3-89953-995-0}}
* {{Buch |Autor=Ralf Nestmeyer |Titel=Provence und Côte d'Azur |Kommentar=Literarische Reisebilder aus dem Midi. |Verlag=Klett-Cotta Verlag |Ort=Stuttgart |Datum=2005 |ISBN=3-608-93654-8}}
== Weblinks ==
* {{Offizielle_Webseite}}
{{Navigationsleiste Kulturhauptstädte Europas}}
{{GeoData| lat= 43.2975| long= 5.37722| radius= }}
{{IstInKat|Bouches-du-Rhône}}
{{class-3}}
rqv2e3j1zi4rq1nzk2tt42v3qaetjz2
1769032
1769029
2026-04-16T16:03:22Z
Qualitätssicherung
50648
Scroll Gallery für bessere Mobildarstellung
1769032
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Marseille''' ist die zweitgrößte Stadt [[Frankreich]]s und das wirtschaftliche Zentrum der Region [[Provence-Alpes-Côte d'Azur]]. Die Stadt ist Verwaltungssitz des Departement Bouches-du-Rhône (13). Mit 2.600 Jahren ist Marseille die älteste Stadt Frankreichs. Die Stadt der Kunst und der Kultur war 2013 Europäische Kulturhauptstadt.
<!--
== Stadtteile ==
-->
== Hintergrund ==
{{mapframe|43.2975|5.37|zoom= 12|width= 300|height= 450}}
{{Mapshapes|Q275267}}
[[Bild:Marseille Cathedrale.jpg|thumb|297px|Kathedrale La Major]]
Lateinisch: Massilia
Statistisch bildet Marseille in Frankreich (ohne Überseegebiete) mit ca. 240 km² die fünftgrößte Kommune des Landes, weit vor Paris (105 km²), allerdings sind große Teile davon unbewohnt (insbesondere sei hier das Massiv der [[Nationalpark Calanques|Calanques]] erwähnt). Nichtsdestotrotz verfügt die Stadt zwischen Callelonge im Süden und L'Éstaque im Norden über eine beachtliche Ausdehnung.
== Anreise ==
=== Mit dem Flugzeug ===
{{vCard|type=airport |name=Flughafen Marseille-Provence |wikidata=Q651190 | show = symbol | before =Der | url = https://www.marseille.aeroport.fr/ |description=liegt ca. 15 km nord-westlich der Stadt in der Gemeinde Marignane. Er ist einer der größten Flughäfen im Süden Frankreichs. Vom Flughafen Marignane erreicht man Marseille (Gare Saint-Charles) mit einem Schnellbus in ca. 25 Minuten (8,50 €). }}
Zum Flughafen Marignane gibt es gute Flugverbindungen aus [[Flughafen München|München]], [[Flughafen Frankfurt am Main|Frankfurt]] mit [[Lufthansa]]/Lufthansa City Line und [[Düsseldorf]] mit [[Eurowings]]. Zudem wird nahezu jeder bedeutende Flughafen in Frankreich angeflogen (Umsteigeverbindungen nach Deutschland über Paris, Lyon, Strasbourg). MRS gilt auch als wichtig(st)er Knotenpunkt für Flüge nach Korsika.
=== Mit der Bahn ===
Der {{Marker|type = station|name = Hauptbahnhof Marseille St. Charles |lat = 43.303356|long = 5.380228|wikidata = Q371217}} ist der Endpunkt der Strecke TGV-Méditerranée, welche die Stadt mit Avignon und Lyon verbindet. Paris erreicht man in wenig mehr als drei Stunden (tagsüber im 1-Stunden-Takt). In nördlicher Richtung existieren u. a. direkte TGV-Verbindungen nach Lille, Brüssel, Lyon, Nantes, Rennes, Toulouse (über Avignon-TGV), Le Havre, Frankfurt am Main über Strasbourg und Paris-Charles-de-Gaulle.
Richtung Osten verkehren sowohl TGV- wie auch herkömmliche Fern- und Regionalzüge auf einer Trasse über Aubagne und Bandol nach Toulon (hier sehr dichter Takt) und weiter über Nizza und Monaco nach Italien (teilweise direkte Züge bis Ventimiglia). Aufgrund der niedrigen Bahnpreise in Italien ist eine Anreise aus Süddeutschland auf diesem Wege oft günstiger.
Ferner gibt es stündliche Regionalzugverbindungen nach Avignon (Achtung: verschiedene Streckenführungen!), teilweise verlängert nach Lyon bzw. sogar Paris (Fahrzeit ca. 12 Stunden!). Über Arles und Nimes verläuft die einzige Hauptlinie Frankreichs in Ost-West-Richtung, welche nicht über Paris führt, hier werden mehrmals täglich Verbindungen nach Montpellier und weiter nach Narbonne-Perpignan-(nachts auch direkt nach Port Bou in Spanien) bzw. Carcassonne-Toulouse-Bordeaux angeboten.
Zuletzt existiert eine vergleichsweise schlecht bediente Trasse nach Aix-en-Provence (hier empfiehlt sich der Bus von Cartreize), die von dort weiter in die Alpen führt (Gap-Briançon-Grenoble).
Das französische Tarifsystem ist sehr undurchsichtig, so dass sich der günstigste Preis meist nur erfragen lässt. Es sei aber insbesondere auf die [http://www.voyages-sncf.com Internetseite] der französischen Bahn verwiesen, auf welcher günstige Angebote (Paris-Marseille ab 19 €, etc.) erworben werden können.
=== Mit dem Bus ===
Der Busbahnhof Marseilles befindet sich neben dem Hauptbahnhof in nördlicher Richtung und verfügt neuerdings über einen direkten Zugang aus dem Bahnhofsgebäude. Es existieren Busverbindungen in nahezu jeden Ort der Provence (eventuell mit Umsteigen in Aix-en-Provence), allerdings sollte beachtet werden, dass die letzten Busse abends ca. um 19 Uhr fahren. Lediglich Aix-en-Provence wird bis Mitternacht bedient.
Der Schnellbus zum Flughafen fährt an den Buchten 13 und 14 im Busbahnhof ab, Kartenverkauf (man spricht Englisch) direkt gegenüber im Hauptbahnhof.
Auch die französische Bahn führt in Zusammenarbeit mit dem Conseil Régional Busverkehre insbesondere Richtung Aix und darüber hinaus in die Alpen durch. Ferner existieren Verbindungen nach Osten (bis Nizza). Die Preise sind, verglichen mit der Bahn, teurer. allerdings kommt man häufig auch schneller an sein Ziel.
Marseille ist auch an das Netzwerk von [https://www.eurolines.de eurolines]/ Deutsche Touring angebunden, so existieren etwa direkte Verbindungen nach Frankfurt und Berlin. Auch Italien, Spanien, Ungarn, Rumänien, Kroatien, Slowenien und Marokko haben direkte Busverbindungen mit Marseille.
=== Auf der Straße ===
Marseille bildet den Endpunkt der "Autoroute du Soleil" {{RSIGN|FR|A|7}}, die (in Paris als {{RSIGN|FR|A|6}} beginnend) Lyon mit Valence, Montélimar und Avignon verbindet und an der Porte d'Aix am Place Jules Guèsde nach 310 km in den Stadtverkehr übergeht. Sie ist ab Salon-de-Provence mautfrei.
Kurz hinter dem [[Flughafen Marseille-Provence]], an dem man in nördlicher Richtung vorbeifährt, besteht auch die Möglichkeit, auf die {{RSIGN|FR|A|55}} zu wechseln, die als weniger stauanfällig gilt und direkt zum Alten Hafen führt. Will man die Stadt nur durchfahren (Richtung Toulon), so empfiehlt es sich dringend, die A55 zu benutzen, da man über zwei Tunnel (Tunnel du Vieux-Port, Tunnel du Prado-Carénage (MAUT!) direkt auf die folgende Autobahn gelangt.
In/aus Aix-en-Provence gelangt man über die mautfreie {{RSIGN|FR|A|51}} zum Autobahndreieck bei St. Antoine, wo man in die {{RSIGN|FR|A|7}} einmündet [Achtung, hier befinden sich stationäre Radaranlagen: Tempo 90!].
Für Fahrten über St. Tropez hinaus empfiehlt sich trotz der landschaftlich reizvolleren Fahrt die Küste entlang (A50 bis Toulon-West, {{RSIGN|FR|A|57}} ab Toulon-Ost), insbesondere in östlicher Richtung die Fahrt über Aix-en-Provence und die {{RSIGN|FR|A|8}} Richtung Fréjus, Cannes und Nizza, da sonst Toulon durchfahren werden muss (keine Umgehung). In westlicher Richtung besteht eine Untertunnelung des Zentrums.
In westlicher Richtung besteht die ebenfalls mautfreie Autobahn in Richtung Martigues, die dort zu einer vierspurig ausgebauten Bundesstraße wird. Sie bildet die Hauptverbindung Richtung Camargue, Montpellier und Spanien (alternativ kann auch -mautpflichtig und länger- über Salon und die {{RSIGN|FR|A|8}} gefahren werden)
[[Bild:Laika ac Marseille (9488477655).jpg|mini|Vieux-Port (Alter Hafen)]]
=== Mit dem Schiff ===
Vom neuen Hafen, dem Port de la Joliette verkehren regelmäßig Fähren nach [[Nordafrika]] (Algier, Oran, Béjaja, Skikda, Annaba, Tunis, Souuse, Sfax, Bizerte, Tanger), nach [[Korsika]] (Ajaccio, Bastia, Calvi, Ile-Rousse, Propriano, Porto-Vecchio) sowie nach [[Sardinien]] (Porto-Torres, teilweise über Korsika).
Aufgrund der langen Fahrzeiten und folglich höheren Preise sollte bei Fahrten nach (Ost-)Korsika allerdings auch die Möglichkeit eines Landtransfers nach [[Toulon]] oder [[Nizza]] in Betracht gezogen werden. (Ehemalige) Inselbewohner profitieren gerade von Marseille aus jedoch von speziellen Tarifen, was die sehr guten Verbindungen mit der Insel trotz der Konkurrenz durch Flugzeug und die anderen Häfen erklärt.
==== Kreuzfahrtschiffe ====
Der Hafen verfügt über drei Anlaufstellen für Schiffe, an denen 10 Schiffe gleichzeitig andocken können. Eine Anreisebeschreibung zum Kreuzfahrtterminal findet man [https://www.marseille-tourisme.com/al/praktische-informationen/kreuzfahrten/anreise-zu-ihrem-kreuzfahrtschiff/ hier].
* Die Anlaufstelle La Joliette, in nächster Nähe zum Stadtzentrums, war bisher kleineren Jachten der Premiumklasse für Zwischenstopps auf einer Ferienreise vorbehalten, nun können auch Kreuzfahrtschiffe bis zu einer Länge von 220 Metern anlegen. In der Nähe des Terminals gibt es die Tram- und Metro-Station ''Joliette'', außerdem fahren die Buslinien 35, 49 und 55.
* Das Terminal du Cap Janet für Schiffe bis zu 220 Meter Länge als Anlauf- oder Endhafen.
* Die Anlaufstelle {{marker|type = port|name = Môle Léon Gourret|lat = 43.342760|long= 5.334058}} und ihr Terminal, das am Quai die größten Passagierschiffe aufnehmen kann.
== Mobilität ==
{{Scroll Gallery
|title = ÖPNV um Marseille
|Marseille_-_Metro_-_Netzplan.png|[[File:U-Bahn.svg|20px]] (2009)
|Marseille Altes Rathaus.jpg|Altes Rathaus
|Réseau de tramway de Marseille (début 2026).svg|[[File:Tram-Logo.svg|20px]] (2026)
|Navette maritime de Marseille.svg|Haltepunkte der ''LaNavette''
|Le Vélo - Bicycle Rental Station.JPG|Le Vélo - Bicycle Rental Station
}}
=== Öffentlicher Nahverkehr ===
Marseille verfügt über zwei [https://www.rtm.fr/ Métrolinien] und drei Straßenbahnlinien, daneben existieren viele Buslinien, die Verbindungen in die Vororte und die Umgebung gewährleisten. Es gibt einen [https://www.rtm.fr/sites/default/files/planaxeslourds.pdf Übersichtsplan für Metro und Tram als pdf]. Eine deutschsprachige Bespreibung existiert [[w:Métro_Marseille|hier]].
==== Metro ====
- Métro 1 beginnt im Nordosten (La Rose), durchquert die Stadt in einem Bogen (u. a. wird der Hauptbahnhof St-Charles und der Alte Hafen « Vieux Port » bedient), um wieder nach Osten abzubiegen und über Krankenhaus „La Timone“ und dem zweitwichtigsten Bahnhof « La Blancarde » nach « La Fourragère » zu fahren.
- Métro 2 beginnt im Nordwesten (Gèze) und durchquert die Stadt nach Südosten bis zur Station « Sainte-Marguerite Drômel ». Sie bedient insbesondere den (Fähr-)Hafen "Joliette", den Bahnhof "St-Charles" und den « Rond-Point du Prado », von dem aus man den Stadtstrand am Prado mit Bussen sowie den Haupteingang des Stade Vélodrome zu Fuß erreicht.
Beide Linien treffen sich in ''Castellane'' und am Hauptbahnhof. Sie verkehren Mo.-Do. von ca. 5-21 Uhr, Fr.-So. ca. 5-24.00 Uhr.
- Métro 3 Arenc – Capitaine Gèze, Castellane – La Gaye
==== Buslinien ====
Der Großteil der Buslinien fährt am « Centre Bourse » in der Nähe des alten Hafens und am Place de Castellane ab. Am Centre Bourse befindet sich ein Informationsbüro der Verkehrsgesellschaft [http://www.rtm.fr rtm] für aktuelle Änderungen.
Für Touristen interessant erscheinen insbesondere die Buslinien 35 (nach l'Éstaque), 60 (zur Kirche Nôtre-Dame-de-la-Garde "Bonne Mère") und 83 (entlang der Corniche), die allesamt (von verschiedenen Haltestellen!) direkt am alten Hafen (nicht am Centre Bourse!) abfahren. Um in die Calanquen zu gelangen, empfiehlt es sich, ab Centre Bourse Bus 21 bis zur Endstation "Luminy" (Fahrzeit ca. 45 Minuten), Bus 20 (ab Montrédon, zu erreichen mit Bus 19 ab Prado) nach Callelongue oder Bus 22 ab Prado bis zur Endstation Les Baumettes zu benutzen. Von den Endstationen steht dem Besucher jedoch noch ca. 1 h Fußweg bis zum Meer bevor!
==== Straßenbahn ====
Eine für je 60 Minuten in allen Netzen nutzbare Einzelfahrt kostet 1,70 €, beim Busfahrer 2,00 €. Es gibt auch „Streifen“- (10 Fahrten: 15 €), Gruppenkarten für 4 Personen (4,90 €), Tageskarten (5,20 €), 3-Tages-Karten (10,80 €), die vorzugsweise am Automaten erworben werden können (Beim Kauf im Bus wird das Geld nur abgezählt angenommen). Die Fahrkarten werden auf eine Magnetkarte aufgebucht, wodurch der Fahrschein beim ersten Aufbuchen 0,10 € teurer ist. Aufpassen: Die Fahrscheine müssen zu Beginn jeder Fahrt entwertet werden, auch nach einem Umstieg! Sie sind dafür aufzubewahren und in einem gut lesbaren Zustand zu erhalten. {{Stand|2026|03}}<!-- Fahrpreise netterweise seit 2018 kaum erhöht -->
Für die sehr günstigen Wochen- und Monatskarten benötigt man ein Passfoto, eine Adresse (Hoteladresse aufschreiben!) und gute Französischkenntnisse. Aus Deutschland bekannte „Zonen“ oder „Ringe“ existieren nicht. Ein Einzelticket erlaubt 60 Minuten freie Fahrt im gesamten Netz. Im Gegensatz zu Paris ist das Umsteigen zwischen U-Bahnen und Bussen beliebig möglich, erneutes Entwerten des Fahrscheins nicht vergessen, dies zählt nicht als zusätzliche Fahrt, macht man es jedoch nicht, fährt man schwarz.
=== Fähren ===
Im alten Hafen gibt es eine 300 Meter lange Fährstrecke, 7.00-20.20 Uhr, alle 20 Minuten, 50 ¢/pro Fahrt.
'''LaNavette'' sind Fähren in der Bucht. Sie kosten 5 (Umsteigeberechtigung 90 Min.) oder 8 € (Umsteigeberechtigung 3 Std.). Betriebszeiten sind szündlich, aber nur im Sommer (Ende April bis Ende September) 7-19 Uhr, im Hochsommer auch später bis ca. 22 Uhr.
'''Le Bateau''' fährt das ganze Jahr zur îles du Frioul und Château d’If.
=== Mit dem Auto ===
Obgleich das Auto sicherlich unschätzbare Vorteile genießt, sollte man sich überlegen, mit dem Auto nach Marseille (bzw. ins Zentrum der Stadt) zu fahren:
- Das historische Zentrum der Stadt ist relativ klein und gut zu Fuß zu erkunden
- Der Parkdruck ist groß. Einen Parkplatz zu finden, gleicht einem Lottogewinn
- Verwirrende Straßenführungen (Einbahnstraßen!)
- Diebstahlgefahr (insbesondere in den "Quartiers Nord", aber auch in der Innenstadt)
- auch der südliche Fahrstil ist nicht jedermanns Sache
- und zuguterletzt: Marseillais, ob Fußgänger oder Autofahrer, machen sich nicht viel aus Verkehrszeichen, inkl. Ampeln. Deshalb auch Vorsicht, wenn die Ampel grün ist!
Fazit: Für Fahrten in die Calanques, nach l'Éstaque oder die Provence ein unschätzbarer Vorteil, für Marseille selbst eher ein Klotz am Bein.
=== Zu Fuß ===
Stadtpläne sind im Office du Tourisme am Alten Hafen in verschiedenen Sprachen kostenlos erhältlich und enthalten auch einige interessante Vorschläge für Besichtigungen. Weite Teile Marseilles (auch interessante Stadtteile wie das Panier oder Noailles) lassen sich am besten zu Fuß erkunden.
=== Mit dem (Leih-)Fahrrad ===
Wer sich vom teilweise chaotisch anmutenden Verkehr nicht abschrecken lässt, kann Marseille außerhalb des direkten Innenstadtbereichs (z. B. für den Strand, einen Besuch des Friedhofs St.Pierre oder des Dock-Viertels) sehr gut mit dem Fahrrad erkunden. Marseille verfügt über das gut ausgebaute und günstige Mietfahrradsystem [http://www.levelo-mpm.fr/ Le Vélo]. Man kann an einer beliebigen Station ein Fahrrad entnehmen und an jeder anderen Station wieder abstellen, die erste halbe Stunde ist dabei sogar kostenlos (Stand März 2013). Die Hürde ist leider allein die französischsprachige Navigation an den Leihautomaten (Stand März 2013) und eine französischsprechende Telefonhotline.
Die Fahrräder sind robust und dabei einfach zu bedienen, folgende Tipps könnte man beherzigen:
* An den Mietstationen '''vor dem Buchen''' ein Fahrrad aussuchen
* Überprüfen: Äußerlich O.K.? Luftdruck O.K.? Beide Bremsgriffe einmal betätigen: Fühlt man einen Druckpunkt oder ist vielleicht ein Zug gerissen? Lässt sich der Drehgriff der Schaltung betätigen? Ist die Sattelstütze zu verstellen (Knopf hineindrücken, dann die Sattelstütze verschieben)?
* Es wird ein Pfand von 150€ über die EC-Karte angekündigt: Das ist wie in Deutschland bei Tankautomaten und beschreibt ein Maximum. Tatsächlich wird nur die Nutzungsgebühr berechnet. Den Beleg sollte man in jedem Fall aufbewahren.
* Es versteht sich von selbst wie bei allen anderen Fahrzeugen: Außerhalb der Mietstation gut und möglichst überwacht anschließen (Schloss ist am Fahrrad angebaut). Am besten: Einfach an der nächsten Mietstation wieder zurückgeben und man hat keinen Stress mehr.
* Bei der Rückgabe unbedingt darauf achten, dass der Automat die Rückgabe bestätigt (langer Piepton).
* Bei Problemen für Gäste ohne Französischkenntnisse an das Touristenbüro wenden.<br />
Dann die Verkehrshinweise in Ergänzung zu oben: Defensiv fahren. Es geht bunt zu, aber anders als in Deutschland besteht ein Verkehrsteilnehmer selten auf seinem Vorfahrtsrecht und bedrängt einen schwächeren Verkehrsteilnehmer (Autos gegen Radfahrer oder Fußgänger, Radfahrer gegen Fußgänger). Ein Radweg ist daher auch nur ''Verhandlungsbasis'', er wird auch von Fußgängern benutzt. ''Mit Rücksicht und Kommunikation macht Fahrradfahren in Marseille großen Spaß!''
=== Barrierefrei ===
In einer 2005 veröffentlichen Studie wurde Marseille zu einer der am schlechtesten auf die Bedürfnisse behinderter Menschen angepassten Städte in Frankreich gewählt. Von den Sehenswürdigkeiten bis hin zur Métro ist noch kaum etwas ausgestattet.
== Sehenswürdigkeiten ==
{{Scroll Gallery
|Marseille Notre Dame.jpg|Basilika Notre-Dame de la Garde
|Notre-Dame de la Garde Innenansicht.JPG|Innenansicht von Notre-Dame de la Garde
|Notre-Dame de la Garde Votivbilder.JPG|Votivbilder in Notre-Dame de la Garde
|Марсель - panoramio (17).jpg|Palais Longchamp
|Mucem Marseille 01.jpg|Mucem
|Marseille Markt Alter Hafen.JPG|Seifenstand am Vieux Port
}}
=== Die Kathedralen ===
* {{vCard | name = Basilika Notre-Dame de la Garde | wikidata = Q975925 | description = Die Kirche ist im neobyzantinischen Stil gebaut und befindet sich auf einem 162 m hohen Kalksteinfelsen südlich der Altstadt. Sie ist von Norden über Treppen zu erreichen und entstand in den Jahren 1853 bis 1864 an der Stelle einer mittelalterlichen Wallfahrtskapelle. Architekt war Henri-Jacques Espérandieu. Der 41 m hohe Turm wird von einer 9 m hohen, vergoldeten Marienfigur gekrönt. Das Innere ist mit Marmor, Mosaiken und Wandbildern verziert. Von der Terrasse hat der Besucher einen eindrucksvollen Blick über die Stadt und das Mittelmeer mit den Inseln Ratonneau, Pomègues und dem Château d'If.}}
* {{vCard | type = cathedral | name = Kathedrale La Major | wikidata = Q1419757 | description =}}
* {{vCard | type = church | name = Kirche Saint-Laurent | wikidata = Q1764669 | description =}}
* {{vCard|type=monastery |name= Abtei Saint-Victor |wikidata=Q1858504 |address=Place Saint-Victor, 13007 Marseille |phone= +33 4 96 11 22 60 |email=|fax=|hours=|price=|lat= 43.290420|long= 5.365502|lastedit=|description=}}
=== Die Altstadt und das Panier Viertel: Le Panier ===
* {{vCard|type = building|name = Maison Diamantée |wikidata=Q3278694 |address= 3 Rue de la Prison, 13002 Marseille| phone = +33 4 91 13 20 13|lat = 43.297001|long = 5.369357|description = Das Diamantenhaus.}}
* {{vCard|type=palace |name=Pavillon Daviel |address=|url=|hours=|price=|lat=|long=|lastedit=|description=Der Justizpalast von Marseille.}}
* {{vCard|type=see |name=Grand’Rue |address=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type = building|name =Hôtel de Cabre|wikidata=Q2109073 |address= 27 Grand Rue, 13002 Marseille|lat = 43.297698 |long =5.371352}}
* {{vCard|type=hotel |name=Hôtel Dieu |address=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type = church|name = Eglise des Accoules| wikidata=Q970362 | address= 8 Place Daviel, 13002 Marseille |lat = 43.297839|long = 5.368476}}
* {{vCard|type=see |name=Observatorium – Préau des Accoules |address=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=see |name=Place de Lenche |address=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
=== La Canebière ===
<!-- Absatz scheint 2026-04-15 weitgehend überholt, wer kann prüfe -->
Die ehemalige Prachtstraße Canebière wird von stattlichen Geschäftshäusern und Cafés gesäumt. Sie beginnt am Alten Hafen und zieht sich 1 km nach Nordosten.
* {{vCard|type=cafe |name=Café Turc |address=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=opera house |name=Oper |wikidata=Q3085786 |address=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=hotel |name=Hôtel du Louvre et de la Paix |address=49 La Canebière, 13001 Marseille|url=|hours=dauerhaft geschlossen|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=hotel |name=Hôtel de Noailles |address=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=see |name=Les allées de Meilhan |address=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=see |name=Musikpavillon |address=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=monument |name=Monument aux Mobiles |address=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=church |name=Kirche Les réformés |address=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
=== Le Vieux-Port − Alter Hafen ===
Der {{marker|name=Vieux-Port |wikidata=Q437959}} entstand bereits in der Antike und ist das historische und kulturelle Zentrum von Marseille.
=== Das Rathaus ===
* {{marker|name=Rathaus|type=town hall|wikidata=Q2422203}}
=== Festung und Schlösser ===
* {{vCard | name = Palais Longchamp | type = palace | wikidata=Q1619084 | lat = 43.304351 | long = 5.394555 | description = 1862–1869 im Stil des Historismus errichtet. }}
* {{vCard | name = Fort Saint-Jean | type = fort | wikidata=Q1905802| description = 1660 unter Louis XIV am Eingang zum Alten Hafen gebaut. Seit 2013 ist es durch zwei Fußgängerbrücken mit dem historischen Viertel Le Panier und dem Museum der Zivilisationen Europas und des Mittelmeers verbunden.}}
=== Museen ===
Alle Museen in Marseille und ihre Ausstellungen auf einen [http://www.marseille.fr/vdm/cms/culture/musees Klick], auf Französisch
* {{vCard|type=museum |name=Musée Archéologique Méditerranéenne |wikidata=Q1795927 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard | name = Musée d'Art Contemporain | alt = MAC | type = museum | wikidata = Q3329581 | url = http://www.lesartistescontemporains.com/macmarseille.html | address = 69 Avenue de Haïfa | phone = +33 04 91 25 01 07 | hours = Di – So 10.00 – 17.00 Uhr (18.00 Uhr vom 1.06. bis 30.09.), an Feiertagen geschlossen | price = Eintritt 3,- € | lat = 43.250297 | long = 5.389677 | description = Metrostation „Ront-Point du Prado“. Dynamisches Museum der zeitgenössischen Kunst, mit Werken des ''Nouveaux Réalisme'', der ''Figuration Narrative'', der ''Support-Surface''-Strömung, ''Fluxus'', ''Arte Povera''. Besonders gut vertreten sind die ''Nouveaux Réalistes'' mit Werken von ''Arman'', ''Christo'', ''Spoerry'', ''Niki de Saint-Phalle'', ''Tingely'', und von ''César'', dem Sohn Marseilles, dessen meterhoher vergoldeter ''Daumen'' im Park des Museums steht. Wer bisher der zeitgenössischen Kunst mit Skepsis begegnete, kann sie hier ein für alle Male lieben lernen.
}}
* {{vCard|type=museum |name=Musée d'Arts Africains, Océaniens et Amérindiens |alt=M.a. a. O.A.|wikidata=Q3330157|address=|phone=|email=|fax=|url=|hours=|price=|lat=|long= |lastedit=|description=
}}
* {{vCard | type = museum | name = Musée Cantini | url = https://musee-cantini.marseille.fr | address = 19 rue Grignan | lat = 43.292185 | long = 5.378191 | directions = Metrostation „Estrangin“ | phone = +33 (0)4 91 54 77 75 | hours = Di-So 10.00-17.00 Uhr (18.00 Uhr vom 01.06.-30.09.), an Feiertagen geschlossen | wikidata = Q3086101 | description = Das nach seinem Stifter, Jules Cantini benannte, in einem schönen Stadtpalast vom Ende des 17. Jahrhunderts untergebrachte Museum präsentiert die Strömungen der Kunst der Moderne von 1900-1960 und verschiedene unklassifizierbare Künstler der 1970er/1980er Jahre. Die Ausstellung ist in mehrere Sequenzen untergliedert: die Wegbereiter der Moderne, die Zeit zwischen den Kriegen, Marseille und der Surrealismus, von der Nachkriegszeit bis in die 1950er/1960er Jahre, die Einzelgänger der 1970er/1980er Jahre. Sehenswert. }}
* {{vCard | name = Musée des Docks romains | type = museum | wikidata = Q3330242 | lat = 43.296822 | long = 5.368165
}}
* {{vCard|type=museum |name=Musée des Arts décoratifs, de la Faïence et de la Modee |wikidata=Q16928705 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard|type=museum |name=Musée Grobet-Labadié |wikidata=Q3329184 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard|type=museum|name=Musée d'Histoire de Marseille|wikidata=Q3329666|address=|phone=|email=|fax=|url=|hours=|price=0|lat=|long=|lastedit=|description=Ausstellung auf französisch aber Audioguides in englisch, italienisch und französisch kostenlos ausleihbar.}}
* {{vCard|type=museum |name=Musée du Vieux Marseille |wikidata=Q3330400 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard | name = Musée de la Moto | type = museum | wikidata = Q124069112 | description =
}}
* {{vCard|type=museum |name=Préau des Accoulés |address=in der ehemaligen Akademie der Wissenschaften|phone=|email=|fax=|url=|hours=|price=|lat=|long= |lastedit=|description=
}}
* {{vCard|type=museum |name=Palais Longchamp |wikidata=Q1619084 | show= copy |address=im Quartier des Cinq-Avenues am nördöstlichen Ende des Boulevard Longchamp }}
** {{vCard|type=museum |name=Musée des Beaux-Arts |wikidata=Q83013 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Das Museum der schönen Künste befindet sich im linken Flügel.}}
** {{vCard | type = monument | name = Muséum d'histoire naturelle | wikidata = Q3330887 | description = }}
* {{vCard | type = museum | name = Vieille Charité | wikidata = Q1065120 | description = }}
* {{vCard | type = museum | name = Museum der Zivilisationen Europas und des Mittelmeers (Mucem) | wikidata = Q2808698 | description = }}
=== Denkmäler ===
* {{vCard | name = Mémorial des Camps de la Mort | type = memorial | wikidata = Q3333155 | description =
}}
== Aktivitäten ==
[[Datei:Stade Vélodrome closeup.jpg|mini|Stade Vélodrome]]
* '''Fußball:''' Das {{Marker | name = Stade Vélodrome | type = stadium | wikidata = Q202150 | lat = 43.2699 | long = 5.3959 | image = Stade Vélodrome entrée principale.jpg }} ist mit einer Kapazität von über 60.000 Zuschauern das zweitgrößte französische Fußballstadion. Das Stadion ist nicht nur die Heimat von Olympique Marseille es war auch Austragungsort der [[w:Fußball-Europameisterschaft 2016|Fußball-Europameisterschaft 2016]].
== Einkaufen ==
Das Einkaufscenter {{marker|type=shop|name =La Bourse|lat = 43.296125|long= 5.375514}} liegt keine 5 Gehminuten vom Vieux Port entfernt. Vom Stil ähnelt es einer amerikanischen Mall und bietet Einkaufsmöglichkeiten für nahezu alles Erdenkliche. Unter anderem findet man eine Filiale von FNAC mit einer Kartenvorverkaufstelle.
Geht man vom Vieux Port die Canebière aufwärts geht nach etwa 500 Metern rechts eine Fußgängerzone ab, wo man eine große Auswahl an Geschäften findet.
Am Vieux Port gibt es einen kleinen Fischmarkt und einen wesentlich größeren Markt für Souvenirs wie Seifen, Keramik, Taschen und was sonst noch gerne von Touristen gekauft wird.
== Küche ==
Grundsätzlich gilt: Man muss keine Unsummen investieren, um in Marseille ein ansprechendes Essen zu bekommen. Es finden sich unzählige Restaurants, die besonders Mittags (praktisch als "Lockangebot", da die Restaurants zu dieser Zeit kaum frequentiert sind) zu günstigen Preisen - unter 10 € - Menüs anbieten. Die Palette reicht hier von traditionellen Angeboten über die italienische bis hin zur indischen Küche. Einzige Grundregel: Meiden Sie die scheinbar einladenden Restaurants und Bistros direkt am Vieux Port! Hier findet eine regelrechte kulinarische Massenabfertigung von Touristen statt. Es ist zu empfehlen, sich vom Hafen und der Canebière weg zu orientieren und in den schmalen Gässchen nach einem passenden Restaurant zu suchen. Auch wenn es oft nicht den Anschein hat, die kleinen, unauffälligen Lokale bieten meist die mit Abstand beste Küche.
Die '''Bouillabaisse''' ist das berühmteste Gericht vom Marseille.
Ursprünglich handelt es sich bei Bouillabaisse um ein Gericht, das die Fischer mit dem Fisch zubereiteten, den sie nicht verkaufen konnten. Im Laufe der Jahre wurde das Rezept jedoch so verfeinert, dass die Bouillabaisse heutzutage häufig zum teuren Luxusgericht wird. Die verschiedenen Bestandteile der Bouillabaisse werden getrennt serviert, auf einem Teller der Fisch, die Bouillon in einem separaten Gefäß. Jeder kann nach seinem persönlichen Geschmack Fisch und Bouillon zusammenstellen. Es werden dazu die Saucen Rouille und/oder Aïoli gereicht, sowie mit Knoblauch eingeriebene Croûtons.
'''Navette''' (vgl. [https://fr.wikipedia.org/wiki/Navette_(p%C3%A2tisserie) französische Wikipedia]) ist ein süßes, längliches Keks-Gebäck aus Marseille, welches traditionell mit Orangen-Aroma versetzt ist, heutzutage aber mit verschiedenen Aromen angeboten wird.
{{Scroll Gallery
|Poissons pour la bouillabaisse sur le Vieux-Port de Marseille.jpg|Fische für die Bouillabaisse am Hafen
|Bouillabaisse IMG 2832.2015-10-10 112242.JPG|erster Gang, Bouillon aus den eingekochten und passierten Fischen
|Bouillabaisse IMG 2835.2015-10-10 113317.JPG|zweiter Gang, Fisch auf Kartoffeln
}}
* {{vCard|type=restaurant|name=Fonfon|address=140, Vallon des Auffes|phone=04 91 52 14 38|email=contact@chez-fonfon.com|fax=04 91 52 14 16|url=https://www.chez-fonfon.com/|hours=Täglich zur Mittags- und Abendzeit geöffnet: 12-13:45 und 19:15-21:45|price=Bouillabaise-Menü 50 Euro p.P.|lat=43.2855413|long=5.3514289|description= Ausgezeichnete aber sehr hochpreisige Bouillabaise . Dieses Lokal ist nicht nur für das Essen sowie die tolle Lage an einer kleinen Bucht bekannt, sondern auch als Drehort für den Krimi-Klassiker "The French Connection"}}
* Der Anislikör '''[https://cristal-liminana.com/fr/ Kristall]''' wird heute von den Limiñana Brüdern mit weiteren Produkten in Marseille hergestellt. Der Likör wird nur aus Anis hergestellt, ohne weitere Zusätze, deshalb bleibt er beim Zusatz von Wasser weiß.
<!--
== Nachtleben ==
-->
== Unterkunft ==
=== Günstig ===
* {{vCard | name = Formule 1 Hotel Valentine | type = hotel | url = http://hotel-formule-1-marseille-valentine.accorhotels.de/ | phone = +33 891705301 | lat = 43.298782 | long = 5.476594 | description = Das Hotel liegt Traverse de la Montre, ZAC de Valentine. Einfache Verbindung zur Stadt mit dem Bus.
}}
* {{vCard | name = Hotel de la Prefecture | type = hotel | url = http://www.hoteldelaprefecture.fr/ | phone = +33 04 91339981 | lat = 43.291271 | long = 5.381822 | description = Zwischen ''Place de Castellane'' und ''Vieux Port'' gelegen, zu beiden Orten knapp 10 min zu Fuß. Flure heruntergekommen, Zimmer für rund 45 € aber in Ordnung und die Betten werden sorgfältig gemacht. Unschlagbarer Vorteil: Englisch sprechende Leute an der Rezeption mit Einheimischen-Tipps zu Restaurants und Sehenswürdigkeiten. WLAN inkl. Rezeption rund um die Uhr besetzt.
}}
=== Mittel ===
* {{vCard | name = Mercure Hotel Vieux Port | type = hotel | url = https://all.accor.com/hotel/1148/index.de.shtml | address = 4 rue Beauvau | phone = +33 4 91549100 | lat = 43.295097 | long = 5.374811 | description = Zentrale Lage. 72 Zimmer.
}}
=== Gehoben ===
* {{vCard | name = Sofitel Hotel Vieux Port | type = hotel | url = https://www.sofitel-marseille-vieuxport.com/ | wikidata = Q16511394 | address = 36, boulevard Charles Livon | phone = +33 4 91155900 | lat = 43.292784 | long = 5.360473 | description = Dieses Luxushotel liegt im Herzen von Marseille.
}}
== Sicherheit ==
Marseille hatte lange sowohl unter Franzosen als auch Besuchern einen schmuddeligen und gefährlichen Ruf. Was die Innenstadt angeht gilt dies so nicht mehr und unter Berücksichtigung der üblichen Vorsichtsmaßnahmen bzgl. '''Taschendiebstahl''' (der durchaus verbreitet ist) und dem teils hektischen '''Verkehr''' ist Marseille tagsüber völlig problemlos zu besichtigen.
Die mit Vorsicht zu genießenden '''Vororte''' (Banlieues) sind großteils weit außerhalb und durch die wuchernden Plattenbauten rasch zu erkennen. Für Touristen sind diese grundsätzlich zu meiden (insbesondere die nördlich gelegenen ''Quartiers Nord'' sowie die Hauptverkehrsstraße ''Boulevard Michelet'' im Süden) und ohnehin nicht sehenswert - das Fußballstadion liegt allerdings auch hier.
'''Nachts''' gilt es, sich auf belebten Hauptstraßen zu bewegen und dunkle, leere Gassen zu meiden - insbesondere rund um den Hauptbahnhof trifft man vor den mit Graffiti verzierten Fassaden nicht selten auf Obdachlose, zu denen man etwas Abstand halten sollte. Auch von '''Fußballfans''' der Olympique Marseille sollte man Respekt haben, diese sind nicht selten gewaltbereit.
== Gesundheit ==
== Praktische Hinweise ==
{{vCard | name = Marseille Tourist Office | type = tourist information | url = https://www.marseille-tourisme.com/al/in-marseille/ | address = Office de tourisme et des congrès de Marseille - 4, La Canebière - 13001 Marseille | phone = +33 04 91138900 | fax = +33 04 91138920 | lat = 43.2960349 | long = 5.3761071 | description =
}}
==Ausflüge ==
* Rings um Marseille finden sich schroffe, trockene, karge Kalkberge wie l'Etoile und vor allem im Süden das Marseilleveyre-Gebirge zwischen der Großstadt und dem Mittelmeer. Auf kleinstem Raum gibt es zahlreiche Gipfel bis über 400 m, schluchtartige Täler, Höhlen und die Calanques von Callelongue, Sormiou, Morgiou und Sugiton. Zahlreiche gut markierte Wanderwege (allerdings ohne Wegweiser, Karte 1:15.000 erforderlich), zum Teil aber technisch anspruchsvoller mit sehr ausgesetzten Stellen. Ausgangspunkte sind z. B. Callelongue oder das Universitätsgelände von Luminy. Festes Schuhwerk und ausreichend Getränke sind ein Muss. Achtung, im Sommer Betretungsverbote in Abhängigkeit vom Wind wegen Waldbrandgefahr oft ab 11 Uhr, gelegentlich ganztags - Information vorher erforderlich, telefonische Ansage unter 08 11 20 13 13.
* Ins rund 25 km entfernte [[Cassis]] mit Europas höchster Klippe und den Calanques von Cassis. Bus 78 ab ''Place de Castellane.''
* Ins Landesinnere zum ca. 30 km entfernten [[Aix-en-Provence]].
=== Frioul-Inseln ===
[[File:Hôpital Caroline, Îles du Frioul.jpg|thumb|Das {{marker|type=museum|name=Hôpital Caroline|url=|lat=|long=|name-local=y|wikidata=Q1977819}}, Ende der 1820er als Quarantänestation errichtet, ist seit 1942 nur noch eine Ruine. Während der Sommersaison nutzt man es für Ausstellungen und kulturelle Veranstaltungen.]]
Die {{marker|type=quarter|name=Îles du Frioul|url=|lat=|long=|name-local=y|wikidata=Q1464953}} bilden als « Les Îles » Teil des 7. Arrondissements Marseilles und stehen unter Naturschutz im [[w:Nationalpark Calanques|Nationalparks Calanques]]. Camping und offenes Feuer sind untersagt.
Aus dem alten Hafen in Marseille dauert die Überfahrt zwanzig Minuten. (Auch Château d'If rechnet dazu wird aber von anderen Booten angefahren.) Der Service wird Oktober bis März ausgedünnt. Angelandet wird beim Jachthafen. Privatautos sind verboten. Hier wohnen dauerhaft etwa 150 Menschen. Zahlreiche Touristen und vor allem Taucher besuchen die Inseln.
Die beiden felsigen, großen Inseln {{marker|type=island|name=Ratonneau|url=|lat=|long=|name-local=2,5 × 0,5 km|wikidata=Q3420134|show=nositelinks}} und {{marker|type=island|name=Pomègues|url=|lat=|long=|name-local=2,7 km lang|wikidata=Q3396119|show=nositelinks}} sind schon seit 1822–24 über die Mole « Digue de Berry » verbunden.
;Sehenswürdigkeiten
Die ungenutzte {{marker|type=church|name=Chapelle Saint-Étienne|url=|lat=|long=|name-local=y|wikidata=Q60370313}} bietet Blick auf den Bootshafen. Darüber ist das das {{marker|type=castle|name=Fort de Ratonneau|url=https://tourisme-marseille.com/fiche/fort-batterie-de-ratonneau-frioul-marseille/ |lat=|long=|name-local=y|wikidata=Q132559595|show=nositelinks}}. Ein weiterer Rest einer alten Befestigung ist das kleinere {{marker|type=castle|name=Fort du Brégantin|url=|lat=43.280438047786994|long= 5.2939549864505535|name-local=y|wikidata=}} im Westen von Ratonneau.
Entlang des Weges auf dem Grat ({{rolli|rot}}) in der Mitte von Pomègues stehen der Signalturm eines [[w:Optische Telegrafie|''Sémaphores'']], die Reste einer Geschützstellung nahebei sowie die Ruine des {{marker|type=castle|name=Fort de Cavaux|url=|lat=43.264882817306926|long=5.289740942857338|name-local=y|wikidata=|show=nositelinks}}
Baden kann man in engen felsigen Buchten wie {{marker|type=beach|name=Plage du Grand Souffre|name-local=|url=|lat=43.27998046723705|long= 5.3033566909640815}}, {{marker|type=beach|name=Plage de Saint-Estève|name-local=|url=|lat=43.28417667635844|long=5.315743777571478}} oder {{marker|type=beach|name=Calanque de L’Escondelle|name-local=|url=|lat=43.2698374099496|long= 5.296295965567748}}.
;Unterkunft und Verpflegung
* {{vCard|type=restaurant|name=L’Effet Mer Frioul|name-local=|address=Quai d'Honneur Île Ratonneau, 13007 Marseille, Frankreich |directions=am Ende der Mole auf Ratonneau|phone=|url=|hours=10.00-22.30|price=|lat=43.27890938575099|long=5.304021991378082|lastedit=2026-04-16|description=}}
* {{vCard|type=hotel|name=Vacances Léo Lagrange |name-local=|address=|directions=zwischen Hafenbecken und Fort|phone=+33482292300|url=|hours=|price=|lat=43.2818663968458|long=5.309582482293415|lastedit=|description=Pauschalunterkunft.|show=nosocialmedia}}
Der romantische Roman von 1818 ''Der tolle Invalide auf dem Fort Ratonneau'' diente 1968 [[w:Werner Herzog|Werner Herzog]] als Vorlage für den Film ''Lebenszeichen.''
== Literatur ==
=== Kurz und übersichtlich ===
* {{Buch |Autor=Klaus Simon |Titel=Marseille |Verlag=Dumont Reise Verlag |ISBN=978-3770195787}}
=== Besondere Reiseführer ===
* {{Buch |Autor=Uli Frings |Titel=Marseille, Calanques, Côte Bleue |Kommentar=Reise- und Wanderführer mit den schönsten Stadt- und Küstenwanderungen Marseilles. |ISBN=978-3000458606}}
* {{Buch |Autor=Ralf Nestmeyer |Titel=Provence & Côte d'Azur |Kommentar=Ein Reisehandbuch. |Verlag=Michael-Müller-Verlag |Ort=Erlangen |Datum=2015 |ISBN=978-3-89953-995-0}}
* {{Buch |Autor=Ralf Nestmeyer |Titel=Provence und Côte d'Azur |Kommentar=Literarische Reisebilder aus dem Midi. |Verlag=Klett-Cotta Verlag |Ort=Stuttgart |Datum=2005 |ISBN=3-608-93654-8}}
== Weblinks ==
* {{Offizielle_Webseite}}
{{Navigationsleiste Kulturhauptstädte Europas}}
{{GeoData| lat= 43.2975| long= 5.37722| radius= }}
{{IstInKat|Bouches-du-Rhône}}
{{class-3}}
j8dya57m0opc7xjoybnmsef33slzwee
Pyramidenkomplex von Meidūm
0
4768
1769139
1768962
2026-04-17T05:24:20Z
RolandUnger
3
/* Einzelnachweise */ Abth.
1769139
wikitext
text/x-wiki
{{Quickbar Ort
| Bild = [[Datei:MeidumNorthSide.jpg|mini|zentriert|300px|Nordseite der Pyramide von Meidūm]]
| Namen = Pyramide von Meidūm '''·''' {{ar|هرم ميدوم}}
}}
Die '''Nekropole von Meidum''' mit der '''Pyramide von Meidum''' ({{arS|هرم ميدوم|w=Haram Maidūm}}, auch {{ar|الهرم الكاذب/الكذاب|w=al-Haram al-Kādhib/al-Kadhdhāb|b= falsche Pyramide}}) ist eine archäologische Stätte in Norden [[Mittelägypten]]s und im Norden des Gouvernements [[Beni Suef (Gouvernement)|Beni Suef]]. Der drei Kilometer nordwestlich des Namen gebenden Dorfs ''Meidūm'' in der Wüste gelegene Friedhof samt Pyramide ist Teil der [[Memphitische Nekropole|Memphitischen Nekropole]] und umfasst sowohl die Kultpyramide und mehrere Prinzen- bzw. Beamtengräber. Die hiesige, einst fünfthöchste Pyramide Altägyptens ist die erstgebaute des Königs {{Wikipedia | Snofru | Q189371 }} (Regierungszeit etwa 2670 bis 2620 v. Chr.), diente aber nie als Grabpyramide, sondern letztlich nur als Königskultpyramide. Sie markiert den Übergang von der Stufenpyramide wie die des {{Wikipedia | Djoser | Q174367 }} in [[Pyramidenkomplex von Saqqāra|Saqqāra]] zur echten Pyramide.
== Hintergrund ==
{{Mapframe | 29.3935 | 31.1577 | zoom = 15 | width = 300 | height = 350 | name = Lageplan der Pyramide von Meidūm
| type = geoshape | id = Q13444093
| type2 = geoshape | coord2 = 29.398713, 31.160581; 29.398659, 31.160933; 29.398045, 31.160797; 29.398078, 31.160432; 29.398713, 31.160581 | title2 = Mastaba Meidum 6
| type3 = geoshape | coord3 = 29.395570, 31.157994; 29.395509, 31.158557; 29.394550, 31.158398; 29.394620, 31.157850; 29.395570, 31.157994 | title3 = Mastaba Meidum 16
| type4 = geoshape | coord4 = 29.390103, 31.158327; 29.390103, 31.158854; 29.389171, 31.158850; 29.389171, 31.158327; 29.390103, 31.158327 | title4 = Mastaba Meidum 17
| type5 = geoshape | coord5 = 29.388407, 31.157877; 29.388407, 31.157985; 29.388353, 31.157985; 29.388353, 31.157877; 29.388407, 31.157877 | title5 = Totentempel
}}
=== Lage und Name ===
Die archäologische Stätte befindet sich auf der westlichen Nilseite etwa 75{{nnbsp}}km südlich von [[Kairo]], 35{{nnbsp}}km nördlich von [[Beni Suef]], 7{{nnbsp}}km Luftlinie nordwestlich von [[Wāsṭā|el-Wāsṭā]] und 3{{nnbsp}}km nordwestlich vom Namen gebenden Dorf {{Marker | name = Meidūm | type = village | wikidata = Q1066424 | lat = 29.372448 | long = 31.172034 | styles = normal }} in der Wüste in etwa 300{{nnbsp}}m Entfernung zum Fruchtlandrand. Das Dorf selbst befindet sich noch im Fruchtland.
''Pyramide von Meidūm'' oder ''falsche Pyramide'' sind moderne Bezeichnungen. Seit der 5. altägyptischen Dynastie ist der Name ''ḏd-snfrw'' (''Djed Sneferu'', „Snofru ist beständig“) z.{{nnbsp}}B. in den Abusir-Papyri überliefert.<ref name="lx" />
=== Der Bauherr Snofru ===
Snofru ist der Begründer der 4. Dynastie. Er ist Sohn der kaum belegten {{Wikipedia | Meresꜥanch I. | Q271665 }}, während man seinen Vater nicht kennt. Eine familiäre Verbindung Snofrus oder seiner Mutter zum Königshaus seines Vorgängers {{Wikipedia | Huni | Q220240 }}, dem letzten König der 3. Dynastie, ist nicht belegt. Es ist auch nicht auszuschließen, dass es sich bei Snofru „nur“ um einen einstigen Beamten handelt.<ref name="montet" /> Die einzige bekannte Ehefrau Snofrus ist {{Wikipedia | Hetepheres I. | Q256515 }}, wohl eine Nebenfrau, da sie den Titel ''Königsgemahlin'' nicht führte. Aus der Ehe stammen zwei Söhne, darunter der König {{Wikipedia | Cheops | Q161904 }}, Snofrus Nachfolger. Weitere Kinder stammen von einer/verschiedenen unbekannte(n) Ehefrau(en).
Snofru regierte mindestens 48 Jahre, in denen er zu einem der bedeutendsten Bauherrn Ägyptens wurde. Seine erste Pyramide entstand im Bereich seiner ersten Residenz beim heutigen Meidūm. Später, im 15. Regierungsjahr, verlegte er wohl aus politischen Erwägungen heraus seine Residenz weiter nördlich nach [[Pyramidenkomplex von Dahschūr|Dahschūr]], wo er zwei weitere, nun echte Pyramiden anlegen ließ.
Snofru nutzte die zweite, die Rote Pyramide von Dahschūr als sein Grabmal. Die hiesige Pyramide diente in der Folge als seine Königskultstätte bzw. sein Kenotaph (Scheingrab).
Gelegentlich wird der Baustart der hiesigen Pyramide dem König Huni zugeschrieben. Für diese Vermutung spricht, dass eine Grabstätte für Huni sonst nicht bekannt ist. Die Argumente dagegen sind gewichtiger: Es gibt nicht einen einzigen Hinweis auf eine Bautätigkeit Hunis in Meidūm, im Bereich der hiesigen Pyramide sind namentlich nur Söhne Snofrus begraben, während der Hofstaat des Huni in Saqqāra bestattet ist.
=== Baugeschichte ===
[[File:Meidoum-coupe.jpg|mini|Bauphasen der Pyramide von Meidūm]]
[[File:Meidum Pyramid Complex.png|mini|Grundriss der Pyramide mit Umfassungsmauer und Rampen]]
Die Pyramide wurde auf einem Felsplateau errichtet, wobei das ursprüngliche Aussehen des Kernbaus umstritten ist: Vorgeschlagen wurde zum einen eine einfache Mastaba, andererseits eine 2- bis 3-stufige Stufenpyramide mit quadratischem Grundriss und etwa 42{{nnbsp}}m Seitenlänge.
Es folgten nun drei Bauphasen, die auch von seinem Sohn Nefermaat betreut wurden, wobei das Baumaterial Sandstein aus einem 800{{nnbsp}}m südlicher gelegenen Steinbruch stammte. Alle drei Bauphasen waren als Endzustand konzipiert.
* In der Bauphase '''E1''' entstand eine 7-stufige Pyramide mit 108{{nnbsp}}m Seitenlänge und 72{{nnbsp}}m Höhe, wobei sich die Stufenhöhe nach oben verringert. Die Seitenflächen waren bereits geglättet und steiler als bei den späteren echten Pyramiden. Von Anfang an war ein erhöhter Zugang auf der Nordseite geplant.
* In der Bauphase '''E2''' wurden außen eine zusätzliche mantelförmige Schale und eine weitere Stufe hinzugefügt. Die 8-stufig Pyramide besaß nun eine Basislänge von 119{{nnbsp}}m und eine Höhe von 82{{nnbsp}}m. Auch in dieser Phase erfolgte eine sorgfältige Glättung der Außenquader.
* In der Bauphase '''E3''' während oder nach dem Bau der Pyramiden von Dahschūr wurden die Stufen der hiesigen Pyramide mit Sandstein verfüllt und anschließend mit Kalkstein verkleidet, so dass die Pyramide nun das Aussehen einer echten Pyramide hatte. Sie hatte nun eine Basislänge von 144{{nnbsp}}m, eine Höhe von 95{{nnbsp}}m und einen Böschungswinkel von 52°{{nnbsp}} 40′. An der Ostseite der Pyramide wurde ein Stelenheiligtum errichtet. Wäre die Pyramide als Königsgrab genutzt worden, würde das Heiligtum als Totentempel gedient haben.
An der Ost- und Südseite der Pyramide sind noch zwei '''Baurampen''' auszumachen.
Aus Fundamentresten kann noch die einstige, etwa 2{{nnbsp}}m hohe '''Umfassungsmauer''' rekonstruiert werden, die eine Fläche von 215 × 236{{nnbsp}}m einnahm. Auf drei Seiten war die Entfernung zur Pyramide von etwa 35{{nnbsp}}m gleich, nur auf der Nordseite war sie größer. Es gab nur einen Eingang, und zwar im Osten im Bereich des Aufwegs. Neben der Pyramide und dem Stelenheiligtum befanden sich innerhalb der Umfassungsmauer nördlich der Pyramide ein Mastabagrab vielleicht für die Mutter oder eine früh verstorbene Ehefrau des Snofru und ein „Südgrab“. Das Südgrab befand sich südlich der Pyramide, aber nicht in der Pyramidenachse, sondern nach Westen verschoben. Mit dem Umzug nach Dahschūr, noch während des Pyramidenbaus, wurde der Pyramidenoberbau des Südgrabs abgerissen. Heute existiert nur noch die unterirdische Anlage.
Im Norden der Pyramide, außerhalb der Umfassungsmauer, wurde ein Mastaba-Friedhof für Prinzen und Beamte der 4. Dynastie angelegt.
Noch in der 18. Dynastie (Neues Reich) wurde am seinerzeit noch nicht verschütteten Stelenheiligtum eine Besucherinschrift angebracht,<ref name="petrie1892" details="S. 40, Tafel XXXIII." /> d.{{nnbsp}}h., die belegt, dass die Pyramide in dieser Zeit noch für Kultzwecke genutzt wurde und intakt war. In späterer Zeit, eben nicht vor der 18. Dynastie, erst recht nicht schon beim Bau der Pyramide wie u.{{nnbsp}}a. von {{Wikipedia | Mendelssohn | Q1793865 }} vorgeschlagen,<ref name="mendelssohn" /> möglicherweise erst später im Neuen Reich, verfiel die Pyramide zunehmend. Einer der Gründe ist wohl die fehlende Verankerung der zusätzlichen Schale aus Bauphase E2 mit der Stufenpyramide der Bauphase E1. Steinraub bis in die Neuzeit setzte ebenfalls der Pyramide zu. Zur Zeit des arabischen Historikers {{Wikipedia | el-Maqrīzī | Q293604 }} (1364–1442) waren noch fünf Stufen („Berg mit fünf Ebenen“) auszumachen,<ref name="maqrizi" /> während bereits der dänische Forschungsreisende {{Wikipedia | Frederic Louis Norden | Q1452741 }} (1708–1742) im November 1737 bei seinem Besuch nur noch drei Stufen ausmachen konnte.<ref name="norden" /> Anhand des heutigen Aussehens der Pyramide lässt wenigstens die Baugeschichte nachvollziehen.
=== Forschungsgeschichte ===
Obwohl die Pyramide zu allen Zeiten leicht auszumachen war, erfolgte die erste wissenschaftliche Dokumentation erst im Rahmen der französischen Napoleonexpedition nach Ägypten 1799. Weitere Untersuchungen erfolgten 1837 vom britischen Ingenieur und Ägyptologen {{Wikipedia | John Shae Perring | Q382221 }} (1813–1869),<ref name="perring" /> 1843 vom deutschen Ägyptologen {{Wikipedia | Karl Richard Lepsius | Q77231 }} (1810–1884),<ref name="lepsius" /> im Winter 1881/1882 durch den französischen Ägyptologen {{Wikipedia | Gaston Maspero | Q311816 }},<ref name="maspero" /> im Winter 1880/1881 und 1910 durch den britischen Ägyptologen {{Wikipedia | William Matthew Flinders Petrie | Q220130 }} (1853–1942, siehe Literatur), am 10./11. Mai 1926 durch den deutschen Ägyptologen {{Wikipedia | Ludwig Borchardt | Q60758 }} (1863–1938, siehe Literatur), 1929-1930 durch die Eckley B. Coxe Expedition unter Leitung des britischen Archäologen {{Wikipedia | Alan Rowe | Q42296577 }} (1891–1968, siehe Literatur) und 1984–1990 durch den ägyptischen Ägyptologen Ali el-Khouli (siehe Literatur). Die Grabungen von Petrie, Rowe und el-Khouli bezogen auch den Mastabafriedhof mit ein. Petrie legte auch dem Zugang zur Pyramidengrabkammer und das Stelenheiligtum frei.<ref name="petrie1892" details="S. 5–11." />
== Anreise ==
=== Auf der Straße ===
Es ist sinnvoll, sich für den Besuch von Meidūm ein Taxi zu mieten. Man achte darauf, Wartezeiten und Rückfahrt mit dem Fahrer abzusprechen.
Alternativ kann man mit dem Zug oder dem Sammeltaxi z.{{nnbsp}}B. ab [[Beni Suef]] nach [[Wāsṭā|el-Wāsṭā]] fahren. Die Weiterfahrt kann man direkt mit einem Taxi durchführen oder zuerst mit einem Sammeltaxi zum Dorf Meidūm fahren, um erst von dort aus mit dem Taxi weiterzufahren. Von Meidūm aus umrundet man die archäologische Stätte im Uhrzeigesinn und gelangt in deren Westen zum Eingang.
=== Mit dem Bus ===
Von der Stadt [[Gīza|el-Giza]] aus ist die Anreise mit dem öffentlichen Bus (Upper Egypt Travel) mit Fahrtziel el-Wāsṭā möglich. Die Busroute führt durch das Fruchtland, wo man am Abzweig zur Pyramide aussteigt (kein Hinweisschild) und noch einige Kilometer zu Fuß oder per Anhalter zurücklegen muss.
=== Mit der Bahn ===
In der Nähe des Dorfes befindet sich die Bahnstation el-Wāsṭā. Zur Weiterfahrt ab el-Wāsṭā siehe oben.
== Mobilität ==
Der {{Marker | name = Eingang | name-map = Eingag zur Pyramide Medum | type = waypoint | lat = 29.38973 | long = 31.15500 }} zur archäologischen Stätte mit Kasse befindet sich 250{{nnbsp}}m nordwestlich der Pyramide von Meidūm, so dass man nicht weit laufen muss. Um zum erhöhten Eingang der Pyramide zu gelangen, muss man über den Bauschutt und eine Holztreppe laufen. Der gesamte Friedhof ist versandet.
Innerhalb der archäologischen Stätte gibt es verschiedene Pisten. Zu den Mastabas in etwa 600{{nnbsp}}m bzw. 1100{{nnbsp}}m Entfernung muss man entweder zu Fuß laufen oder sich vom Taxifahrer hinfahren lassen.
== Sehenswürdigkeiten ==
Die archäologische Stätte ist von 9:00 bis 16:00 Uhr geöffnet. Sie ist nicht barrierefrei. Man sollte insbesondere für die Mastaba M17 eine Taschenlampe mitführen.
=== Pyramide von Meidūm ===
* {{vCard | name = Pyramide von Meidūm | type = pyramid | wikidata = Q13444093 | lat = 29.38837 | long = 31.15714 | image = MeidumNorthSide.jpg | hours = täglich 9:00–17:00 | price = Eintritt: {{EGP|150}}, für ausländische Studenten {{EGP|75}} (Stand 11/2024) | description = Die Pyramide ist heutzutage nur noch 3-stufig und 65{{nnbsp}}m hoch. Sie ist umgeben von Schutt, der bis in eine Höhe von 25{{nnbsp}}m ansteht. Der erstmals erhöhte Eingang zur Pyramide befindet sich an ihrer Nordseite in etwa 19{{nnbsp}}m Höhe, etwas oberhalb der untersten Stufe, und ist über eine Holztreppe erreichbar. Am Eingang sind noch Reste der Verkleidung aus der letzten Bauphase E3 erkennbar. Der Eingang selbst war wohl niemals blockiert, nur lange Zeit verschüttet. Der Verschluss befand sich wohl erst an tieferer Stelle, etwa am Ende der Stufe aus der Bauphase E2.
<gallery mode="packed" heights="167">
Meïdoum-appartements.jpg|Kammersystem der Pyramide
MeidumPyramidPassage.JPG|Absteigender Korridor
07 meidum tunnel.jpg|Gangkammer im waagerechten Teil des Korridors
Meidoum pyramide 007.JPG|Schacht zur Grabkammer mit Holztreppe
Meidum Pyramide zentrale Kammer.jpg|Kraggewölbe der Grabkammer
</gallery>
Es folgt ein 58{{nnbsp}}m langer, 1,55 m{{nnbsp}}hoher und 0,85{{nnbsp}}m breiter absteigender Korridor mit wechselndem Neigungswinkel um 29°, der mit Holzbrettern ausgelegt ist. Am Ende des Korridors in 9{{nnbsp}}m Tiefe unterhalb des Felsplateaus befindet sich ein senkrechter Schacht mit unbekannter Funktion. Vielleicht diente er der Aufnahme von Regenwasser während der Bauphase. Nun schließt sich ein 10{{nnbsp}}m langer waagerechter Gang mit zwei Kammern an, je eine auf jeder Seite, die vielleicht für die Lagerung der Verschlusssteine gedacht waren. Am Ende des Korridors führt ein 6,5{{nnbsp}}m hoher Schacht nach oben zur Grabkammer, in dem einst Reste von Zedernholzbalken wohl für Transportzwecke gefunden wurden und in dem sich heute eine Holztreppe befindet.
Die Grabkammer aus Kalkstein befindet sich auf dem Niveau des Felsplateaus, ist 2,6{{nnbsp}}m breit, 6,5{{nnbsp}}m lang, 5{{nnbsp}}m hoch und verfügt über ein Kraggewölbe, das hier wohl das erste Mal in der altägyptischen Architektur zum Einsatz kam. Die Grabkammer ist heute leer. Der Ägyptologe W.{{nnbsp}}M. Flinders Petrie fand nur Bruchstücke eines Holzsarges vor.<ref name="petrie1892" details="S. 11."/>
}}
* {{vCard | name = Stelenheiligtum | type = temple | group = see | lat = 29.38837 | long = 31.15794 | image = 05 meidum temple 1.jpg | show = noperiod | description = Auf der Ostseite der Pyramide befindet sich ein 9{{nnbsp}}m breites Stelenheiligtum aus Kalkstein mit zwei quer liegenden Räumen. Im Hof hinter dem Heiligtum befinden sich zwei 4{{nnbsp}}m hohe, oben abgerundete Stelen und ein Altar zwischen beiden Stelen. Für das Stelenpaar gibt es eine Parallele an der Knickpyramide in Dahschūr. Heiligtum und Stelen sind allesamt inschriftenlos.
<gallery mode="packed" heights="167">
Meidum Pyramid Temple.png|Grundriss des Stelenheiligtum
05 meidum temple 1.jpg|Eingang zum Stelenheiligtum
06 meidum stela.jpg|Stelen im Hof des Stelenheiligtum
MeidumTempleStelae.jpg|Stelen im Hof des Stelenheiligtum
03 meidum causeway.jpg|Aufweg zum Stelenheiligtum
</gallery>
An der Stelle des Stelenheiligtums befindet sich bei späteren Anlagen der Totentempel. Allerdings diente dieser Tempel niemals als Grabstätte. Dennoch besitzt das Heiligtum einen 210{{nnbsp}}m langen Aufweg. Die Lage des Taltempels am östlichen Ende des Aufwegs ist jedoch unbekannt.
}}
* Nordwestlich der Pyramide wurden mehrere Sarkophage und Särge aus späteren Bestattungen in der Nähe der Pyramide aufgestellt.
=== Mastabagräber der 4. Dynastie ===
* {{vCard | name = Meidūm 17 | type = tomb | wikidata = Q15526148 | lat = 29.38960 | long = 31.15852 | directions = unmittelbar nordöstlich der Pyramide von Meidūm | show = noperiod | description = Die Lehmziegel-Mastaba befindet sich unmittelbar im Bereich der Pyramide und legt somit einen engen Bezug zur Königsfamilie nahe. Der Name des Grabherrn ist unbekannt. Es handelt sich wohl um einen früh verstorbenen Sohn und Prinzen des Snofru, wohl aber nicht um eine Grabstätte für den König Huni. Die dreistufige Mastaba ist 52{{nnbsp}}m breit, 105{{nnbsp}}m lang und etwa 20{{nnbsp}}m hoch, jedoch besitzt sie keine Dekoration wie Reliefs oder Scheintüren. Die Beisetzung in die kreuzförmige Grabkammer erfolgte über das Dach.
<gallery mode="packed" heights="167">
Meidum97Mastaba17.jpg|West- und Südseite der Mastaba M17
Entrance to Mastaba M17.jpg|Abstieg zum engen Korridor
Mastaba M17 (Meidum) 05.jpg|Zugang zur Grabkammer
Mastaba M17 (Meidum) 14.jpg|Sarkophag aus Rosengranit
</gallery>
Spätere Grabräuber haben von der Südseite aus einen Korridor angelegt und das Grab ausgeraubt. Über diesen Korridor kann man noch heute die Grabkammer mit dem massiven Sarkophag aus Rosengranit erreichen, der sich in einer Nische der Grabkammer befindet und bis in die Neuzeit die sterblichen Überreste enthielt. Der Korridor ist zuweilen sehr eng und niedrig, so dass man sich teilweise kriechend fortbewegen muss. Etwa in der Mitte muss man einen Steinblock überwinden, z.{{nnbsp}}B. mit einem Bein voraus.
}}
* {{vCard | name = Meidūm 16 | type = tomb | wikidata = Q66098773 | lat = 29.39502 | long = 31.15830 | show = noperiod | description = Die Lehmziegel-Mastaba des Nefermaat und seiner Gemahlin Itet (Atet), etwa 600{{nnbsp}}m nördlich der Pyramide von Meidūm, ist 68{{nnbsp}}m breit und 121{{nnbsp}}m lang. Zuerst wurde mit der Anlage der Kultkapellen begonnen, die dann später ummauert wurden. An der Ostseite der Mastaba wurde eine Nischengliederung und zwei Kultstätten mit Scheintür und Opferhof angelegt. Im Süden befindet sich die Kultstätte und auch die Grabkammer des Nefermaat, des ältesten oder zweitältesten Königssohns des Snofru, Wesirs, Vorstehers aller königlichen Bauarbeiten in Dahschūr und Meidūm sowie Priesters der Bastet und des Min. Im Norden befindet sich entsprechend die Grabstätte von Nefermaats Ehefrau Itet. Die Grabkapellen sind nicht zugänglich. Müssen sie auch nicht, weil sich die Funde heute im [[Kairo/Ägyptisches Museum|Ägyptischen Museum Kairo]] befinden.
<gallery mode="packed" heights="167">
MeidumMastaba16SouthSide.jpg|Südteil der Mastaba
CairoMuseumMeidum16-2.jpg|Relief im Pastenrelief (Kairo)
Fragment from the tomb of Nefermaat and Itet, Meidum, Egypt, Old Kingdom, Dynasty 4, reign of Snefru, c. 2430 BC, limestone, colored paste, restored - Oriental Institute Museum, University of Chicago - DSC07773.JPG|Relief im Pastenrelief (Chicago)
NefermatPrincMeidum-M16.jpg|Nefermaat
Meidoum - Tomb of Itet - geese 300dpi.png|Teil der Gänse von Meidūm
</gallery>
Die Kultkapelle des Nefermaat barg eine Besonderheit: das sog. Pastenrelief. Dazu wurde das Relief in den Kalkstein tief versenkt eingeschnitten und mit farbigen Pasten ausgefüllt. Diese Technologie wurde nur in diesem Grab angewandt, denn die Hoffnung auf Langlebigkeit erfüllte sich leider nicht, weil beim Trocknen der Paste diese schrumpfte, riss und später herausfiel. Zu den Szenen gehören Feldarbeit, Jagd und Vogelfang mit einem Klappnetz.
Die Kultkapelle der Itet wurde nicht ganz so aufwändig gestaltet. Auf den Lehmverputz wurden farbige Wandmalereien aufgetragen. Zu den naturalistischen Darstellungen gehören die überaus bekannten drei Paare der „Gänse von Meidūm“, eines der Höhepunkte im Kairoer Ägyptischen Museum.
}}
[[File:Ägyptisches Museum Kairo 2016-03-29 Rahotep Nofret 01.jpg|mini|Statuen vom Prinzen von Rahotep und seiner Gemahlin Nofret]]
* {{vCard | name = Meidūm 6 | type = tomb | wikidata = Q66098920 | lat = 29.39835, 31.16068 | show = noperiod | description = Die Lehmziegel-Mastaba von Rahotep und seiner Gemahlin Nofret, etwa 1100 m nördlich der Pyramide von Meidūm gelegen, ist mit der Mastaba von Nefermaat und Itet vergleichbar. Rahotep war wohl dritter Sohn von Snofru und Hohepriester von Heliopolis, Expeditionsleiter, Heerführer sowie Leiter der Bauarbeiten. Auch hier wurde mit der Errichtung der Kultkapellen begonnen und diese dann später ummauert. An der Ostseite befindet sich die Nischengliederung der Mastaba mit den Opferhöfen für beide Grabherrn. Die Mastaba enthielt keine Bestattungen.
Die im Dezember 1871 von Albert Daninos und Auguste Mariette entdeckten bemalten Kalksteinstatuen<ref name="statuen" /> aus der südlichen Kultkapelle des Rahotep sind heute Glanzstücke der Alten-Reichs-Denkmäler im [[Kairo/Ägyptisches Museum|Ägyptischen Museum Kairo]]. Beide Statuen sind reichlich 1,2{{nnbsp}}m hoch. Rahotep in kräftigbrauner Körperbemalung trägt nur einen Schurz und eine Kette mit einem Herzamulett. Seine Ehefrau Nofret, die Königsbekannte, trägt über dem blasgelben Körper eine Perücke mit einem Diadem, einen langen weißen Mantel über ihrem Kleid und einen mehrfachen Halskragen. Die Augen beider Statuen sind eingelegt.
}}
Von den weiteren Lehmziegelmastabas sind heute im Wesentlichen nur noch die Nischengliederung der Ost-Fassade auszumachen.
== Unterkunft ==
Meidūm verfügt über keine Unterkunftsmöglichkeiten. Diese werden üblicherweise in [[Kairo]], seltener in [[Beni Suef]] gewählt.
== Ausflüge ==
Man kann den Besuch von Meidūm mit den Nekropolen von [[Pyramidenkomplex von Saqqāra|Saqqara]], [[Pyramidenkomplex von Abū Ṣīr|Abu Sir]] (Abusir) und/oder [[Pyramidenkomplex von Dahschūr|Dahschūr]] verbinden. Das [[Faiyūm]] befindet sich in westlicher Richtung in etwa 35{{nnbsp}}km Entfernung.
== Literatur ==
=== Pyramide von Meidūm ===
* {{Buch | Autor = Petrie, W. M. Flinders | Titel = Medum | Ort = London | Verlag = David Nutt | Jahr = 1892 | Online = https://archive.org/details/cu31924028670465
}}
* {{Buch | Autor = Borchardt, Ludwig; Croon, Louis | Titel = Die Entstehung der Pyramide an der Baugeschichte der Pyramide bei Mejdum nachgewiesen | Ort = Berlin | Verlag = Springer | Jahr = 1928 | url = https://digi.ub.uni-heidelberg.de/diglit/borchardt1928
}}
* {{Buch | Autor = Stadelmann, Rainer | Titel = Die ägyptischen Pyramiden : vom Ziegelbau zum Weltwunder | Ort = Mainz am Rhein | Verlag = von Zabern | Jahr = 1991 | ISBN = 3-8053-1142-7 | Auflage = 2 | Reihe = Kulturgeschichte der antiken Welt ; 30 | Seiten = 81-87, Tafeln 16, 23
}}
* {{Buch | Autor = Verner, Miroslav | Titel = Die Pyramiden | Ort = Reinbek bei Hamburg | Verlag = Rowohlt | Jahr = 1999 | Reihe = rororo-Sachbuch ; 60890 | ISBN = 3-499-60890-1 | Seiten = 185–195
}}
* {{Zeitschrift | Autor = Budka, Julia | Titel=Die Pyramide von Meidum : Das Verbindungsglied von Stufenmastaba und echter Pyramide | Zeitschrift = Kemet : das schwarze Land | ISSN = 0943-5972 | Band = 8 | Nummer = 4 | Datum = 1999 | Seiten = 9-13 | DOI = 10.11588/propylaeumdok.00003018
}}
=== Mastabas von Meidūm ===
* {{Buch | Autor = Petrie, W. M. Flinders | Titel = Medum | Ort = London | Verlag = David Nutt | Jahr = 1892 | Online = https://archive.org/details/cu31924028670465
}}
* {{Buch | Autor = Petrie, W[illiam] M. Flinders ; Mackay, Ernest ; Wainwright, Gerald | Titel = Meydum and Memphis (III) | Ort = London | Verlag = School of Archaeology in Egypt | Jahr = 1910 | Reihe = British School of Archaeology in Egypt ; 18 | Online = https://digi.ub.uni-heidelberg.de/diglit/petrie1910bd3
}}
* {{Buch | Autor = Rowe, Alan | Titel = Excavations of the Eckley B. Coxe, Jr., expedition at Meydûm, Egypt, 1929-30 | Ort = Philadelphia | Verlag = Museum of the University of Pennsylvania | Datum = 1931-3 | Reihe = The Museum journal / University of Pennsylvania University Museum ; 22.1931,1 | url = https://ia802901.us.archive.org/13/items/in.ernet.dli.2015.530864/2015.530864.university-of.pdf
}}
* {{PM|4|89|94|Kommentar}}
* {{Buch | Autor = Khouli, Ali el- | Herausgeber = Martin, Geoffrey T. | Titel = Meidum | Ort = Sydney | Verlag = The Australian Centre for Egyptology | Jahr = 1991 | Reihe = Reports / The Australian Centre for Egyptology ; 3 | ISBN = 0-85837-751-9
}}
* {{Zeitschrift | Autor = Budka, Julia | Titel = Privatgräber zur Zeit Snofrus : Die Nekropole von Medum | Zeitschrift = Kemet : das schwarze Land | ISSN = 0943-5972 | Band = 8 | Nummer = 4 | Datum = 1999 | Seiten=23-26 | DOI = 10.11588/propylaeumdok.00003024
}}
== Einzelnachweise ==
<references>
* <ref name="montet">{{Buch | Autor = Montet, Pierre | Titel = Geographie de l’Égypte ancienne ; 2: To-chemâ, la haute Égypte | Ort = Paris | Verlag = Klincksieck | Jahr = 1961 | Seiten = 160 | url = https://static.egyptology.ru/scarcebooks/montet/montet-2.pdf }}</ref>
* <ref name="maqrizi">{{Buch | Autor = Maqrīzī, Aḥmad Ibn-ʿAlī, al- ; Bouriant, Urbain (Übers.) | Titel = Déscription topographique et historique de l’Egypte : première partie ; chapitre XL: Des pyramides | Ort = Paris | Verlag = Leroux | Jahr = 1895 | Reihe = Mémoires publiés par les membres de la Mission Archéologique Française au Caire ; 17,1 | url = https://gallica.bnf.fr/ark:/12148/bpt6k5828537q/f364.item | Seiten = 321-350, insbesondere S. 333 }}</ref>
* <ref name="norden">{{Buch | Autor = Norden, Frederick Lewis | Titel = Travels In Egypt And Nubia | Band = 2 | Ort = London | Verlag = Davis, Reymers | Jahr = 1757 | url = https://digi.ub.uni-heidelberg.de/diglit/norden1757bd2 | Seiten = 10, Tafel 66 | Kommentar = Die drei Stufen sind aus der angegebenen Tafel ersichtlich. }}</ref>
* <ref name="lepsius">{{Buch | Autor = Lepsius, Carl Richard | Titel = Denkmäler aus Aegypten und Aethiopien | url = https://edoc3.bibliothek.uni-halle.de/lepsius/start.html | Kommentar = Text Band II, S. 1–6, Abth. I,1 Tafeln 44, 45 }}</ref>
* <ref name="perring">{{Buch | Autor = Perring, J[ohn] S[hae] ; Howard Vyse, [Richard William Howard] | Titel = Operations carried on at the Pyramids of Gizeh in 1837: with an account of a voyage into Upper Egypt, and Appendix; vol. 3: Appendix to operations carried on at the pyramids of Gizeh in 1837 | Ort = London | Verlag = Weale [u.a.] | Jahr = 1842 | url = https://digi.ub.uni-heidelberg.de/diglit/howard_vyse1842bd3/0004/image,info | Seiten = 78-80, Tafel dazwischen }} — {{Buch | Autor = Perring, John Shae | Herausgeber = Andrews, E. J. | Titel = The pyramids of Gizeh: from actual survey and admeasurement ; vol. 3: The pyramids to the southward of Gizeh and at Abou Roash… | Ort = London | Verlag = Fraser | Jahr = 1842 | url = https://digi.ub.uni-heidelberg.de/diglit/perring1842bd3/0003/image,info | Kommentar = Tafel XVII. }}</ref>
* <ref name="maspero">{{Zeitschrift | Autor = Maspero, Gaston | Titel = Sur les fouilles exécutées en Égypte: de 1881 à 1885 | Zeitschrift = Bulletin de l’Institut Egyptien | Band = 6 (2. Reihe) | Jahr = 1885 | Seiten = 7-8 | url = https://digi.ub.uni-heidelberg.de/diglit/bie1885/0021/image,info }}</ref>
* <ref name="petrie1892">{{Buch | Autor = Petrie, W. M. Flinders | Titel = Medum | Ort = London | Verlag = David Nutt | Jahr = 1892 | Online = https://archive.org/details/cu31924028670465
}}</ref>
* <ref name="lx">{{LÄ|4|9|13|Meidum|Wildung, Dieter}}</ref>
* <ref name="statuen">{{Zeitschrift | Autor = Daninos, [Albert]; Mariette, [Auguste] | Titel = La découverte des statues de Meidoum | Zeitschrift = Recueil de travaux relatifs à la philologie et à l’archéologie égyptiennes et assyriennes | Abk = Rec. Trav. | Band = 8 | Jahr = 1886 | Seiten = 69-70 | DOI = 10.11588/diglit.12255.5 }}</ref>
* <ref name="mendelssohn">{{Buch | Autor = Mendelssohn, Kurt | Titel = The Riddle of the Pyramids | Ort = London | Verlag = Thames & Hudson | Jahr = 1974 }}</ref>
</references>
{{Class-4}}
{{Unesco}}{{Related|Welterbe in Ägypten}}<!--
-->{{GeoData | lat = 29.3938 | long = 31.1577 | zoom = 15 }}
{{IstIn|Beni Suef (Gouvernement)|Memphitische Nekropole}}
{{SORTIERUNG:Meidum}}
[[Kategorie:Gouvernement Beni Suef]]
[[Kategorie:Unterägypten]]
[[Kategorie:Memphitische Nekropole]]
[[Kategorie:Pyramiden in Ägypten]]
[[Kategorie:Archäologische Stätten in Ägypten]]
d33u6b4b5hku5x06k6d9ju25lwfq8mf
Melbourne
0
4780
1769026
1767093
2026-04-16T15:22:05Z
~2026-23466-96
58164
1769026
wikitext
text/x-wiki
{{AndereOrte|Weitere Orte findet man beim [[Melbourne (Wegweiser)]]}} <!-- Diese Zeile NIICHT nach quickbar, zerhackt sonst das Layout. -->
{{quickbar Ort
| TouriInfoWeb= http://de.visitmelbourne.com
| TouriInfoTel=
}}
'''Melbourne''' ist die Hauptstadt des [[Australien|australischen]] Bundesstaats [[Victoria (Australien)|Victoria]] und mit 5,4 Mio. Einwohnern seit 2025 die zweitgrößte größte Stadt [[Australien]]s, 200.000 Einwohner vor ihnen [[Sydney]].
== Hintergrund ==
{{Marker | name =Melbourne | type =city | wikidata =Q3141}} ist mit 5,3 Millionen Einwohnern die zweitgrößte größte Stadt im Bundesstaat Victoria. Die Stadt wird durch den {{Marker | name =Yarra River | type =river | lat =-37.823671 | long =144.954002 | wikidata =Q695081}} in einen Nord- und einen Südteil geteilt.
== Geschichte ==
Ab etwa 30000 vor Christus lebten hier die indigenen Wurundjeri, Boonwurrung und Wathaurong. Sie bekamen Besuch nicht von europäischen Entdeckern und Seefahrern, sondern von tasmanischen Geschäftsleuten unter [[w:John Batman|John Batman]] und [[w:John Pascoe Fawkner|John Pascoe Fawkner]]. Im Mai 1835 segelten sie in den Naturhafen von {{Marker | name =Port Phillip | type =bay | wikidata =Q1324526}}, ankerten bei {{Marker | name =Indented Head | type =town | wikidata =Q6015866}} und schlossen mit den anwesenden Wurundjeri einen Kaufvertrag über 2.400 km² Land – das legendäre „Batman’s Treaty“ vom 6. Juni 1835.<ref>[https://www.google.de/books/edition/Australian_Dictionary_of_Dates_and_Men_o/xyJNAQAAMAAJ?hl=de&gbpv=1&dq=melbourne+batman+1835&pg=RA1-PA12&printsec=frontcover J. Henniker Heaton, ''Australian Dictionary of Dates and Men of the Time'', S.W. Silver & Co., 1879, S. 12 ff.]</ref> An der Nordseite des {{Marker | name =Yarra River | type =river | lat =-37.820266 | long =144.950131 | wikidata =Q695081 | show = copy }} gründete Batman am 30. August 1835 eine „Batmania“ genannte Siedlung.<ref>[https://www.google.de/books/edition/The_Chronicles_of_Early_Melbourne_1835_t/6iSS5TZaNncC?hl=de&gbpv=1&dq=melbourne+batmania+1835&pg=PA3&printsec=frontcover Edmund Finn, ''The Chronicles of Early Melbourne 1835 to 1852'', Band 1, E.A. Petherick & Co., 1891, S. 3]</ref> Sie lag am heutigen {{Marker | name =Batman's Hill | type =hill | wikidata =Q4869331}} und {{Marker | name =Batman Park | type =park | wikidata =Q2191993 | show =copy}}.
Am 10. Oktober 1835 wurde der Kaufvertrag „Batman’s Treaty“ durch Gouverneur Richard Bourke für nichtig erklärt, weil die britische Kolonialmacht von dem Dogma des „Terra Nullius“ ausging, wonach das Kolonialgebiet durch Kolonialisierung England gehörte und die indigenen Aborigines das Land nicht verkaufen konnten, weil es ihnen nicht gehörte. Noch im Oktober 1835 schloss sich eine Gruppe tasmanischer Siedler dem Mitgründer Fawkner an, der die Siedlungsaktivitäten zielstrebig vorantrieb. Am 10. April 1837 benannte Gouverneur Bourke die Siedlung nach dem damaligen britischen Premierminister [[w:William Lamb, 2. Viscount Melbourne|William Lamb, 2. Viscount Melbourne]]. Die britische Kolonialverwaltung sorgte zwischen 1873 und 1886 für den Bau von {{Marker | name =Fort Nepean | type =fort | wikidata =Q720563}} zum Schutz der Einfahrt in den Hafen Port Phillip.
Im November 1908 wurde für die Verhandlungen des geplanten "Commonwealth of Australia" entschieden, dass bei der Vergabe der Hauptstadtfunktion die rivalisierenden Großstädte [[Sydney]] und Melbourne nicht Hauptstadt werden sollten, sondern eine neue, noch zu planende Stadt die Funktion der Hauptstadt übernehmen sollte, nämlich [[Canberra]]. Diese Enttäuschung konnte mit der Vergabe der Olympischen Sommerspiele an Melbourne zwischen dem 22. November 1956 und 8. Dezember 1956 gelindert werden.
== Klima ==
Melbourne ist durch ein gemäßigt-maritimes Klima gekennzeichnet. Im Sommer (Januar/Februar) wird es tagsüber durchschnittlich 26 °C warm, nachts sind es dann um die 16 °C. Im Winter (Juni/Juli) fallen die Tagestemperaturen auf 14 °C (nachts 7 °C). Mit 4 Regentagen fällt im Februar der wenigste Regen, im Oktober mit 9 Tagen der meiste. Die jährliche Regenmenge beträgt gerade einmal 650 mm.
== Stadteile ==
Folgende Stadtteile sind von touristischer Bedeutung:
{{3 Spalten |
* {{Marker | name =Albert Park | type =region | wikidata =Q591771}}
* {{Marker | name =Blairgowrie | type =region | wikidata =Q4924208}}
* {{Marker | name =Carlton | type =region | wikidata =Q47002}}
* {{Marker | name =Docklands | type =region | wikidata =Q5287226}}
* {{Marker | name =Fitzroy | type =region | wikidata =Q1421389}}
* {{Marker | name =Footscray | type =region | wikidata =Q5466574}}
* {{Marker | name =Gembrook | type =region | wikidata =Q5530582}}
* {{Marker | name =Melbourne central business district | type =region | wikidata =Q6811747}}
* {{Marker | name =Port Melbourne | type =region | wikidata =Q1623026}}
* {{Marker | name =Portsea | type =region | lat =-38.323410 | long =144.700456 | wikidata =Q7232409}}
* {{Marker | name =Prahran | type =region | wikidata =Q1733565}}
* {{Marker | name =Richmond | type =region | wikidata =Q1012076}}
* {{Marker | name =Rye | type =region | wikidata =Q7384943}}
* {{Marker | name =Sorrento | type =region | wikidata =Q3375047}}
* {{Marker | name =South Melbourne | type =region | wikidata =Q3965520}}
* {{Marker | name =St Kilda | type =region | wikidata =Q823531}}
* {{Marker | name =Warburton | type =region | wikidata =Q914214}}
* {{Marker | name =Williamstown | type =region | wikidata =Q1012058}}
}}
== Anreise ==
=== Mit dem Flugzeug ===
Melbourne verfügt über zwei Passagierflughäfen, die jedoch beide nur von ''Qantas'' und ''Jetstar'' angeflogen werden:
==== Melbourne-Tullamarine ====
{{vCard|type=airport|before=Internationaler |name=Flughafen Melbourne |wikidata=Q733738 |directions=22 km nördlich der Stadt|lastedit=2018-01-18|description=Der Flughafen liegt im Vorort Tullamarine. Es gibt vier Terminals: T1 nutzt Qantas, T2 (mit Gratis-Duschen) ist das internationale, T3 und T4 dient kleineren Inlandsfluggesellschaften. Melbourne-Tullamarine wird von vielen Airlines dieser Welt angeflogen.}}
Es gibt aufgrund der Distanz keine Direktflüge aus dem deutschsprachigen Raum nach Melbourne. Die einzige europäische Airline, die Flüge anbietet, ist seit März 2024 [[Turkish Airlines]], die mehrmals wöchentlich mit Zwischenlandung in [[Singapur]] von [[Istanbul]] nach Melbourne fliegt. Weitere sinnvolle Umsteigemöglichkeiten ergeben sich hauptsächlich mit [[Emirates]] via [[Dubai]], [[Etihad Airways]] via [[Abu Dhabi]] und [[Qatar Airways]] über [[Doha]]. [[Qantas]] fliegt noch bis April 2024 aus [[London]] ebenfalls mit Zwischenlandung in Singapur nach Melbourne, dann wird diese Route eingestellt - über London bietet sich dann der Qantas-Direktflug nach [[Perth]] mit dortigem Umsteigen an.
Öffentliche Verkehrsmittel: SmartBus 901 (über den Bahnhof {{Marker | name =Broadmeadows | type =railway station | wikidata =Q4972244}}), Busse 478, 479, 482 über ''Westfield Airport West,'' 479 auch über den Bahnhof {{Marker | name =Sunbury station | type =railway station | wikidata =Q7639009}}. Am schnellsten, aber teuer kommt man mit dem [http://www.skybus.com.au/ Skybus] in die Stadt, der alle 10-5 Minuten verkehrt. Eine Einzelfahrt kostet 19,75 AUD, ein für drei Monate gültiges Rückfahrticket 36,50 AUD (Stand: März 2020). Insgesamt zehn Unternehmen verkehren zu verschiedenen Ortschaften in der nähern und weiteren Umgebung.
==== Melbourne-Avalon ====
{{vCard|type=airport|before=Desweiteren gibt es den |name=Flughafen Avalon |wikidata=Q17896|directions=Avalon City Express, ab Melbourne-Southern Cross Bhf. (A$ 22) und Werribee (A$ 19). Auch 7 Mal tgl. zum Bhf. Geelong |lastedit = 2018-01-18 | description=Dieser Flughafen liegt eigentlich näher zur Stadt Geelong, wird aber national von ''Jetstar'' auch als „Flughafen von Melbourne“ angeflogen und beworben.}}
=== Mit der Bahn ===
Alle überregionalen Züge von Melbourne fahren am zentralen Bahnhof {{Marker|type =train|wikidata =Q801455|name = Southern Cross Station}} ab. Es fahren zwei Mal täglich reservierungspflichtige Züge nach Sydney (10 Stunden), diese können auch mit dem NSW ''[[Reisen mit dem Zug in Australien#New South Wales|Discovery Pass]]'' benutzt werden. Zwei Mal wöchentlich fahren die Züge des [[The Overland]] nach Adelaide (11 Stunden, 2018 A$ 100 oder 200). ''V/Line''-Regionalzüge verkehren nach Geelong, Ballarat, Albury, Bendigo und Bairnsdale.
Die {{Marker|type = station|name = Flinders Street Station|lat = -37.818263|long = 144.967019 | wikidata =Q260986}} ist Hauptknotenpunkt der Metro.
=== Mit dem Bus ===
Sowohl ''Firefly'' als auch ''Greyhound Australia'' fahren, von unterschiedlichen Haltepunkten, vor der Southern Cross Station ab. National ist Melbourne in das Netz der australischen Überlandbusse eingebunden, welche die großen Städte und wichtigen Regionen Australiens verbinden und mit Zwischenstopps auf den Routen auch kleinere Orte zugänglich machen. Die Reise ins benachbarte Adelaide per Bus dauert - je nach Anzahl Zwischenstopps - etwa 7 bis 9 Stunden, die Fahrt nach Canberra etwa 5-7 Stunden, und nach Sydney etwa 8-10 Stunden.
=== Auf der Straße ===
Das Straßensystem ist dem immensen Verkehr der Stadt nicht gewachsen; während der Rushhour bricht er deshalb regelmäßig zusammen. Erschwerend kommt hinzu, dass sich meist auch noch Straßenbahn und Auto die Fahrbahnen teilen müssen. Parkplätze sind in den zentralen Stadtteilen knapp, Parkhäuser teuer. Es gibt zahlreiche automatische Geschwindigkeitskontrollen, die Strafen für falsches Parken sind drakonisch. Um das Verkehrschaos besser in den Griff zu bekommen, wurden in den vergangenen Jahren neue Stadtautobahnen ausgebaut, die mautpflichtig sind. Es gibt zwei Streckensysteme - den ''Citylink'' und den ''Eastern Link''.
Eine Besonderheit in der Innenstadt von Melbourne ist der ''Hookturn'': Dabei fahren die Rechtsabbieger (die beim Abbiegen die Gegenfahrbahn kreuzen) nicht in die Fahrbahnmitte, sondern zunächst an den linken Fahrbahnrand. Sie lassen dort den Verkehr in Gegenrichtung ''und'' den Geradeausverkehr in die eigene Richtung passieren, und biegen ab, wenn in beide Richtungen frei ist. Der Hookturn gilt nicht grundsätzlich, sondern wird dort — wo er gilt — durch ein spezielles Verkehrsschild angezeigt.
Melbourne liegt als Verkehrsknotenpunkt des Südens am [[National Highway 1]] ({{RSIGN|AU|NA|1}}), der ganz Australien mehr oder weniger küstennah umrundet. Von hier aus sind im Nordwesten [[Adelaide]] ([[Südaustralien]]) 727 km entfernt und im Osten [[Sydney]] ([[New South Wales]]) 1014 km.
=== Mit dem Schiff ===
* Melbourne hat eine tägliche (im Sommer zwei) Verbindung mit dem Schiff nach [[Tasmanien]]. Die [https://www.spiritoftasmania.com.au/ Spirit of Tasmania] verbindet in zehn Stunden Devonport auf Tasmanien mit Melbourne.
* Das ''Cruise Ship Terminal'' ist am {{Marker|type = port|name = Station Pier|lat =-37.843560|long = 144.931289}}. In unmittelbarer Nähe ist auch die Tram-Station '''Beacon Cove/Light Rail''', Route 109. Die Station ist nicht im Bereich der ''Free Tram Zone''.
== Sehenswürdigkeiten ==
{{mapframe | type= geoline | stroke= #FF0000 | stroke-width= 2 | stroke-opacity= 1 | id =Q3141}}
[[Datei:Melbourne Capt Cooks Cottage - outer00.jpg|mini|Cooks' Cottage]]
[[Datei:Mitre tavern bank place melbourne.jpg|mini|Mitre Tavern]]
[[Datei:1 flinders st station melb.jpg|mini|Der Hauptbahnhof ''Flinders Street Station'']]
[[Datei:Parliament House Melbourne 2010.jpg|mini|Das ''Parliament House'']]
[[Datei:Melb CBN Exhibition Building 3.jpg|mini|Die ''Carlton Gardens'' mit dem ''Royal Exhibition Building'']]
[[Datei:Crown Casino Complex and King Street Bridge.jpg|mini|Der Crown Casino-Komplex, vorne die ''King Street Bridge'']]
[[Datei:Premier Tower Melbourne 2.jpg|mini|Der ''Premier Tower'']]
;Historische Bauten
* {{vCard | name =Cooks' Cottage | type =house | hours =10:00-16:00 Uhr | url =https://www.captaincooksociety.com/cooks-life/places/cooks-cottage-melbourne | wikidata =Q1129647 | description =das 1755 von den Eltern vom Australien-Entdecker [[w:James Cook|James Cook]] in Great Ayton ([[North Yorkshire]] / England) erbaute und bewohnte Haus gilt als ältestes Gebäude der Stadt, wenngleich es auch nicht in der Stadt selbst gebaut wurde. Es kam im Oktober 1934 von England per Schiff nach Australien und wurde in den ''Fitzroy Gardens'' wieder aufgebaut. Der Stadtrat erkennt es als ältestes städtisches Gebäude an.}}
* {{vCard | name =Mitre Tavern | type =house | wikidata =Q55907910 | description =wird das Cooks' Cottage nicht als ältestes Gebäude anerkannt, dann ist es die Mitre Tavern, benannt nach „Ye Olde Mitre' in London (gebaut 1782). Das in Melbourne im Juni 1837 erstmals erwähnte Haus wurde ursprünglich als Wohnhaus errichtet und ist heute eine Kneipe.}}
* {{vCard | name =La Trobe's Cottage | type =house | wikidata =Q6465528 | hours =so 13:00-16:00 Uhr | description =1839 vom ersten Gouverneur Victorias, Charles La Trobe, erbaut und bis 1854 bewohnt.}}
* {{vCard | name =Old Melbourne Gaol | type =building | wikidata =Q2018436 | description =das am 1. Januar 1841 eröffnete, alte Gefängnis diente noch bis Juli 1924.}}
* {{vCard | name =Russell's Old Corner Shop | type =building | lat =-37.812544 | long =144.954156 | description =1850 von James Heffernan erbaut, wurde das Haus 1899 an Valetta Azzopardi verkauft, die hierin ihre Enkelin Lola Russell unterbrachte. Diese richtete 1969 hier einen Tee-Laden ein und nannte ihn „Russell's Old Corner Shop“, worin sie bis 2017 wohnte, als sich erste Anzeichen einer Baufälligkeit zeigten. Daraufhin finanzierte 2021 der ''National Trust'' nötige Reparaturen.}}
* {{vCard | name =Toorak House | type =house | wikidata =Q7824207 | description =1851 vom Geschäftsmann James Jackson erbaut, der im selben Jahr auf einer Schiffsreise starb. Seine Witwe vermietete das Anwesen 1854 an die Regierung von Victoria.}}
* {{vCard | name =HM Prison Pentridge | type =building | wikidata =Q3247898 | description =das 1851 erbaute Gefängnis war ein Hochsicherheitstrakt, der bis Mai 1997 diente.}}
* {{vCard | name =Bishopscourt | type =building | wikidata =Q4918082 | description =1853 erbauter Sitz des Bischofs oder Erzbischofs der anglikanischen Kirche.}}
* {{vCard | name =State Library Victoria | type =building | hours =10:00-18:00 Uhr | wikidata =Q1200052 | description =1854 erbaut, ist die zentrale Bibliothek des Staates Victoria.}}
* {{vCard | name =Flinders Street Station | type =railway station | wikidata =Q260986 | description =am 12. September 1854 eröffnetes, imposantes Bahnhofsgebäude. Der Bahnhof ist der wichtigste Nahverkehrsknotenpunkt. | show =copy}}
* {{vCard | name =Parliament House | type =building | hours =mo-fr 08:30-17:30 Uhr | wikidata =Q1464314 | description =seit 1855 finden hier die Sitzungen des Parlaments von Victoria statt. Eine Ausnahme ist die Zeit zwischen 1901 und 1928, in der es als Sitz des australischen Parlaments diente.}}
* {{vCard | name =Old Treasury Building | type =building | hours =10:00-16:00 Uhr außer sa | wikidata =Q7085326 | description =1862 erbautes ehemaliges Schatzamt, seit 1994 Museum.}}
* {{vCard | name =General Post Office | type =building | wikidata =Q6811781 | description =das 1867 erbaute Hauptpostamt wird seit 1993 als Einkaufszentrum für Markentextilien genutzt.}}
* {{vCard | name =Government House | type =building | wikidata =Q1540458 | description =1876 eröffneter Amtssitz des Gouverneurs von Victoria.}}
* {{vCard | name =Royal Exhibition Building | type =building | hours =10:00-17:00 Uhr | wikidata =Q695935 | description =das am 29. Mai 1880 eröffnete Gebäude diente ursprünglich für die ''Melbourne International Exhibition'', die vom 1. Oktober 1880 bis zum 30. April 1881 stattfand. Gebäude und Park gehören seit 2004 zum [[Welterbe/Asien_und_Ozeanien#Australien|Weltkulturerbe der UNESCO]].}}
* {{vCard | name =Supreme Court of Victoria Building | type =building | wikidata =Q43371277 | description =1884 erbautes oberstes Gericht in Victoria.}}
* {{vCard | name =Collingwood Town Hall | type =building | wikidata =Q5147323 | description =1887 erbautes Rathaus von ''Collingwood'' im Vorort ''Abbotsford''.}}
* {{vCard | name =City Baths | type =building | wikidata =Q2786840 | description =1904 erbaute öffentliche Bäder mit Schwimmbädern und Badeeinrichtungen.}}
* {{vCard | name =Melbourne Town Hall | type =building | wikidata =Q2091322 | description =am 27. August 1908 eröffnet, dient es als Verwaltungssitz der Stadt Melbourne mit den Hauptbüros des Oberbürgermeisters und der Stadträte.}}
* {{vCard | name =Nicholas Building | type = building | wikidata =Q14935257 | description =1926 eröffnetes Büro- und Warenhaus.}}
;Moderne Bauwerke
* {{vCard | name =Manchester Unity Building | type =building | wikidata =Q14935205 | description =1932 fertig gestelltes, von der Art Deco-Gotik inspiriertes Büro- und Geschäftsgebäude.}}
* {{vCard | name =Shrine of Remembrance | type =building | wikidata =Q1369544 | description =am 11. November 1934 eröffnet, ist eines der größten Kriegerdenkmäler in Australien. Es entwickelte sich zu Australiens zentralem Denkmal für alle 60.000 Australier, die im Krieg starben.}}
* {{vCard | name =ICI House / Orica House | type =skyscraper | wikidata =Q1653239 | description =1958 erbaut, war nach seiner Fertigstellung mit 84 Metern temporär das höchste Gebäude Australiens.}}
* {{vCard | name =Melbourne Convention and Exhibition Centre | type =building | wikidata =Q3304958 | description =am 14. Februar 1996 eröffnetes Kongress-Zentrum.}}
* {{vCard | name =Crown Casino and Entertainment Complex | type =skyscraper | wikidata =Q1145115 | description =am 8. Mai 1997 eröffneter Hotel- und Casino-Komplex, 1604 Zimmer im Hotel.}}
* {{vCard | name =Federation Square | type =building | hours =24 Stunden | wikidata =Q923304 | description =am 26. Oktober 2002 eröffneter Gebäudekomplex für Kunst, Kultur und Events jeder Art.}}
* {{vCard | name =Eureka Tower | type =skyscraper | wikidata =Q270407 | hours =12:00-22:00 Uhr | description =das am 11. Oktober 2006 eröffnete Gebäude ist das zweit höchste von Melbourne. Zum Aussichtsturm gelangt man nach 91 Etagen mit 13 Aufzügen; 297,3 m hoch, auf einer Höhe von 285 m befindet sich die Aussichtsplattform ''Eureka Skydeck 88''.}}
* {{vCard | name =Melbourne Star | type =see | url =https://www.melbournestar.com | wikidata =Q1155904 | description =am 20. Dezember 2008 eröffnet, das ''Melbourne Star Observation Wheel'' (früher ''Southern Star Observation Wheel'') ist ein Riesenrad mit einer Höhe von 120 m | hours =10:00-22:00 Uhr | price =A$ 16,50-27,20 (je nach Auslastung).}}
* {{vCard | name =Melbourne Rectangular Stadium | type =stadium | wikidata =Q1381223 | description =am 7. Mai 2010 eröffnetes Rugby- und Fußball-Stadion für 30.000 Zuschauer.}}
* {{vCard | name =Swanston Square | type =building | wikidata =Q27546179 | description =im März 2015 eröffnetes Wohnhaus, bekannt für sein 85 Meter hohes Fassaden-Porträt des Aborigine-Ältesten William Barak.}}
* {{vCard | name =Australia 108 | type =skyscraper | wikidata =Q4823550 | description =am 9. Juni 2020 eröffneter Appartement-Wolkenkratzer mit einer Höhe von 318,7 m (bis zur Spitze) bzw. 316,7 m das höchste der Stadt und das zweithöchste Gebäude Australiens.}}
* {{vCard | name =Premier Tower | type =skyscraper | wikidata =Q20020491 | description =im Juni 2021 eröffnete 795 Wohnungen und 172 Suites im Wolkenkratzer.}}
;Museen
* {{vCard | name =National Gallery of Victoria | type =museum | hours =10:00-17:00 Uhr | wikidata =Q1464509 | description =am 24. Mai 1861 eröffnet, ist Australiens älteste Kunstgalerie.}}
* {{vCard | name =Heide Museum of Modern Art | type =museum | hours =di-fr 10:00-16:00, sa+so 10:00-17:00 Uhr | wikidata =Q954298 | description =1981 eröffnetes Museum der Modernen Kunst.}}
* {{vCard | name =Australian Sports Museum | type =museum | wikidata =Q43159 | description =das am 22. November 1986 eröffnete Museum ist dem australischen Sport gewidmet.}}
* {{vCard | name =Immigration Museum | type =museum | wikidata =Q2694295 | hours =10:00-17:00 Uhr | description =1998 eingerichtetes Museum mit der Einwanderungsgeschichte Australiens, das im 1876 errichteten historischen Zollgebäude untergebracht ist.}}
* {{vCard | name =National Opal Collection | type = museum | url = https://www.nationalopal.com/ | address =Lower Level, 119 Swanston St, Melbourne VIC 3000 | lat =-37.815 | long =144.965712 | phone = +61 3 9662 3524 | hours =täglich 10:30-17:00 Uhr | description =das 2000 gegründete Museum ist ein Joint-Venture von zwei privaten Opal-Gesellschaften, die als führende Exporteure gelten. Das Museum hat das ''Australian Museum'' mit Forschungsarbeiten unterstützt. In zwei großen Showrooms wird die australische Opal-Wirtschaft dargestellt. Hier kann man Opale käuflich erwerben.}}
* {{vCard | name =Melbourne Museum | type =museum | hours =09:00-17:00 Uhr | wikidata =Q1353869 | description =ist das größte Museum der südlichen Hemisphäre. Es wurde im November 2000 eröffnet und präsentiert die Natur- und Kulturgeschichte Australiens.}}
* {{vCard | name =Australian Centre for Contemporary Art | type =museum | wikidata =Q781373 | description =2002 erbautes Museum für zeitgenössische Kunst.}}
;Theater
[[Datei:Flinders St - Forum Theatre.jpg|mini|Das ''Forum Theatre'']]
* {{vCard | name =Melbourne Athenaeum | type =theater | wikidata =Q12122406 | description =1839 errichtetes Kunst- und Kulturzentrum mit 880 Sitzplätzen.}}
* {{vCard | name =Princess Theatre | type =theater | wikidata =Q7244850 | description =1854 gebaut, 1452 Sitzplätze.}}
* {{vCard | name =Her Majesty's Theatre | type =theater | wikidata =Q5732319 | description =am 1. Oktober 1886 als ''Alexandra Theatre'' eröffnet, 1700 Sitzplätze für Oper, Ballett und Schauspiel.}}
* {{vCard | name =Capitol Theatre | type =theater | wikidata =Q5035939 | description =1924 erbaut für Live-Veranstaltungen über Kultur oder Erziehung, 600 Sitzplätze.}}
* {{vCard | name =Palais Theatre | type =theater | wikidata =Q7126602 | description =eröffnet am 12. November 1927, mit 2896 Sitzplätzen das größte Theater in Australien.}}
* {{vCard | name =Forum Theatre | type =theater | wikidata =Q5473086 | description =am 23. Februar 1929 eröffnet, 2000 Stehplätze (''Forum 1''), 520 Sitzplätze (F''orum 2'').}}
* {{vCard | name =Regent Theatre | type =theater | wikidata =Q7308110 | description =das am 15. März 1929 eröffnete ursprüngliche Kino wurde umgebaut und am 17. August 1996 als Konzerthalle wieder eröffnet. Bei Konzerten finden bis zu 2262 Zuschauer Platz.}}
* {{vCard | name =Sidney Myer Music Bowl | type =theater | wikidata =Q7509252 | description =1959 erbaute Konzerthalle für 10.000 Zuschauer.}}
* {{vCard | name =Arts Centre Melbourne | type =theater | wikidata =Q4801443 | description =1984 erbauter Komplex von Theatern und Konzertsälen.}}
;Kirchen
[[Datei:St. Paul's Cathedral Tower.jpg|mini|St Paul's Cathedral]]
* {{vCard | name =St James Old Cathedral | type =church | wikidata =Q7593502 | description =der Grundstein wurde am 9. November 1839 gelegt, die anglikanische Kirche wurde am 2. Oktober 1842 eröffnet.}}
* {{vCard | name =Collins Street Baptist Church | type =church | wikidata =Q5147407 | description =am 31. Dezember 1842 geweihte protestantische Kirche.}}
* {{vCard | name =St Francis Catholic Church | type =church | wikidata =Q941974 | description =am 23. Oktober 1845 geweihte römisch-katholische Kirche.}}
* {{vCard | name =East Melbourne Hebrew Congregation | type =church | wikidata =Q5328966 | description =1877 geweihte Synagoge einer orthodoxen jüdischen Gemeinde.}}
* {{vCard | name =St Paul's Cathedral | type =church | wikidata =Q1892155 | description =am 22. Januar 1891 geweihte anglikanische Kirche.}}
* {{vCard | name =St Patrick's Cathedral | type =church | wikidata =Q1138670 | description =am 1. November 1897 geweihte katholische Kirche.}}
;Bildungseinrichtungen
* {{vCard | name =University of Melbourne | type =university | wikidata =Q319078 | description =am 22. Januar 1853 gegründete Universität mit heute 77.0000 Studierenden.}}
* {{vCard | name =Monash University | type =university | wikidata =Q598841 | description =1958 gegründet, 55.000 Studierende.}}
* {{vCard | name =Deakin University School of Law | type =university | wikidata =Q5245824 | description =1992 gegründete Jura-Fakultät mit 58.800 Studierenden.}}
;Parks / Zoos
[[Datei:Melbourne Australia Royal Botanical Garden.JPG|mini|Palmen im Royal Botanical Garden]]
* {{vCard | name =Royal Botanic Gardens Melbourne | type =botanical garden | hours =07:30-19:30 Uhr | wikidata =Q7373836 | description =1846 gegründeter botanischer Garten mit über 10.000 Pflanzenarten auf 38 Hektar.}}
* {{vCard | name =Fitzroy Gardens | type =park | wikidata =Q3444049 | hours =24 Stunden | description =1848 gegründeter, 26 Hektar großer Park. Hier wurde 1934 das ''Cooks' Cottage'' neu aufgebaut.}}
* {{vCard | name =Royal Park | type =park | wikidata =Q7374687 | description =1854 gegründet, ist mit 181 Hektar der größte innerstädtische Park.}}
* {{vCard | name =Carlton Gardens | type =park | wikidata =Q829338 | description =1856 angelegter Park mit 26 Hektar.}}
* {{vCard | name =Flagstaff Gardens | type =park | wikidata =Q5457014 | description =1862 angelegter Park mit 7 Hektar.}}
* {{vCard | name =Melbourne Zoo | type =zoo | wikidata =Q578027 | description =am 6. Oktober 1862 eröffneter, 22 Hektar großer Zoo mit 3742 Tieren in 243 Arten.}}
* {{vCard | name =Alexandra Gardens | type =park | wikidata =Q4720648 | description =1901 angelegter Park mit 5 Hektar.}}
* {{vCard | name =Queen Victoria Gardens | type =park | wikidata =Q7270534 | description =1905 eingerichteter Park mit 5 Hektar.}}
* {{vCard | name =Melbourne Aquarium | type =aquarium | wikidata =Q1321392 | description =im Januar 2000 eröffnet, präsentiert es die typischen Sealife-Aktivitäten.}}
* {{vCard | name =Birrarung Marr | type =park | wikidata =Q2904546 | description =2002 eingerichteter Park mit 8 Hektar.}}
;Brücken
[[Datei:Morell Bridge (4343385050).jpg|mini|Die Morell-Brücke]]
* {{vCard | name =Princes Bridge | type =bridge | wikidata =Q7244436 | description =eröffnet 4. Oktober 1888, 120 m lang.}}
* {{vCard | name =Morell Bridge | type =bridge | wikidata =Q6911332 | description =im August 1899 eröffnet, 102 m lang.}}
* {{vCard | name =King Street Bridge | type =bridge | wikidata =Q14629035 | description =am 12. April 1961 eröffnete Brücke über den ''Yarra River'', brach bereits am 10. Juli 1962 unter der Last eines LKW mit einem 35 t schweren Bagger zusammen. Sie fiel jedoch nicht in den Fluss, so dass niemand zu Schaden kam. Die Wiedereröffnung war am 30. August 1965. Die eigentliche Brücke ist 120 m lang, die gesamte schwebende Konstruktion 570 m.}}
* {{vCard | name =West Gate Bridge | type =bridge | wikidata =Q2564257 | description =am 15. November 1978 eröffnet, mit 2582 m die längste Brücke in Melbourne.}}
* {{vCard | name =Bolte Bridge | type =bridge | wikidata =Q2747785 | description =am 16. August 1999 eröffnet, 490  lang und 90 m hoch.}}
== Mobilität ==
[[Bild:Greater Melbourne Map 4 - May 2008.png|mini|Karte von ''Greater Melbourne'']]
In der Innenstadt ist zu beachten, dass es bei manchen Straßen eine zweite, engere oft parallel verlaufende gibt, die im Namen “Little …” (Lt.) vorgestellt hat.
=== Öffentlicher Verkehr ===
[[Datei:Tram map of Melbourne.svg|mini|[[File:Tram-Logo.svg|20px]] (2018)]]
[https://www.ptv.vic.gov.au/ '''Metlink:'''] Melbourne verfügt über ein weitläufiges S-Bahn-, Tram- ([http://yarratrams.com.au/ Yarra Trams]) und Busnetz, vor allem im Berufsverkehr ist es jedoch völlig überlastet. Ähnlich wie in den USA wurde lange Zeit wenig wert auf den Ausbau des öffentlichen Nahverkehrs gelegt, und so ist der Ausbaustand heute verglichen mit einer ähnlich großen Stadt wie [[Berlin]] geradezu als provinziell zu bezeichnen. Australier halten es für das beste Nahverkehrssystem des Kontinents. Die Preise sind jedoch günstig und das Fahrkartensystem zum Beispiel im Vergleich zu [[Sydney]] übersichtlich. Es gibt drei Zonen: den Innenstadtbereich ''Citysaver'' (alle Haltestellen in diesem Bereich sind an der Haltestellenstange gelb-weiß gestreift), die Zone 1 mit praktisch allen touristisch relevanten Bereichen und die Zone 2 in den Außenbezirken. Der eigentliche Central Business District ist eine [https://www.onlymelbourne.com.au/free-tram-zone#.XJ81AmhCcuU free tram zone], die für Kurzstrecken kostenlos sind.
Für jede Metro- und Tramlinie sowie für die meisten Buslinien benötigt man eine ''Myki''-Karte. Diese kann man an unzähligen Geschäften, z. B. 7-11 kaufen und Geld aufladen.
=== Sightseeing-Touren ===
* City Sughtseeing Melbourne betreibt 2 Hop-on Hop-off Linien: die '''City-Tour''' ''(rot)'', Startpunkt {{Marker|type = square|name =Federation Square|lat = -37.817963|long = 144.969035 | wikidata =Q923304 | show = copy }} und die '''St. Kilda-Tour''' ''(schwarz)'', Staartpunkt '''Federation Square''' und '''Station Pier'''.
=== Kostenlose Tourismuslinien ===
Als Besonderheit bietet Melbourne seinen Besuchern zwei kostenlose Angebote für Rundfahrten durch die City.
''City Circle Tram'': Diese historische Straßenbahnlinie verkehrt auf einem Rundkurs um die Innenstadt im 12 Minutentakt zwischen 10:00 und 18:00 Uhr (So-Mi) bzw. bis 21:00 Uhr (Do-Sa). Dabei gibt es auch Erklärungen zu allem Wichtigen am Rande der Strecke. Ab Eröffnung des Southern Star (s. u.) wird die Strecke nach {{Marker | name =Waterfront City/Docklands Dr (Docklands) | type =railway station | wikidata =Q112825330}} ausgedehnt.
''Melbourne City Tourist Shuttle'': Diese Buslinie führt in einem Rundkurs zu elf touristisch interessanten Stationen, dabei gibt es allerlei wissenswertes über die einzelnen Sehenswürdigkeiten. An allen Stationen kann ein- bzw. ausgestiegen werden. Die Stationen sind: ''Arts Precinct'', ''Federation Square'', ''Exhibition Street'', ''Melbourne Museum'' and ''Carlton Gardens'', ''Lygon Street'', ''University of Melbourne'', ''Queen Vitoria Market'', ''William Street'', ''Southbank'', ''Sports and Entertainment Precinct'', ''The Shrine and Royal Botanic Gardens''.
=== Mit dem Fahrrad ===
[[Datei:Melbourne City Bikes.JPG|mini|Eine typische Bike-Share-Station.]]
{{Bixi
|Name=Melbourne Bike Share
|Stationsdichte=recht niedrig
|Gebiet=umfasst im Wesentlichen die Innenstadt
|Link=Melbourne City Bikes
|Preis24=2,70 AUD
|Preis72=8 AUD
|Dauer2=eine Woche
|Kaution=50 AUD}}
== Aktivitäten ==
Melbourne veranstaltet zwei weltweit ausgetragene Grand Prix-Wettbewerbe, Formel 1-Autorennen und ein Grand-Slam-Tennisturnier:
* {{vCard|type=festival |name=Formel 1 Melbourne |address=|phone=|email=|fax=|url=https://www.grandprix.com.au/ |hours=|price=|lat=|long=|lastedit= |description=Jährliches Auftaktrennen der Formel 1, es findet statt auf dem {{Marker|type = park|name = Albert Park Circuit|lat = -37.850102|long = 144.969083 }}. In diesem Park finden zahlreiche Aktivitäten statt, angefangen von Basketball über Cricket, Football bis hin zu Rugby und Wassersport. Der Park umschließt den}}
* {{vCard | name =Albert Park Lake | type =lake | wikidata =Q4710971 | description =ein 49 Hektar großer See im Albert Park.}}
* {{vCard|type=festival |name=Australian Open |address=|phone=|email=|fax=|url=https://www.australianopen.com |hours=|price=|lat=|long=|lastedit= |description=Das Grand Slam Tennisturnier findet immer in der zweiten Januarhälfte statt.}}
* {{vCard|type=festival |name=Melbourne Cup Carnival |address=|phone=|email=|fax=|url=http://www.melbournecup.com |hours=|price=|lat=|long=|lastedit= |description=Australiens wichtigstes Pferderennen immer am ersten Dienstag im November versetzt die ganze Nation in den Ausnahmezustand. Alle Wetten auf den Ausgang des Rennens und Fernsehen und Zeitungen kennen kein anderes Thema mehr. Am Vortag des Rennens gibt es einen großen Umzug durch Melbourne. Der Renntag ist in Victoria Feiertag.}}
== Ausflüge ==
Das Weinanbaugebiet {{Marker | name =Yarra Valley | type =valley | wikidata =Q8049508 | show =none}} ist 7 km vom Stadtzentrum entfernt. {{Marker | name =Belgrave | type =landscape | wikidata =Q815564 | show =none}} 35 km, die nostalgische Eisenbahn {{Marker | name =Puffing Billy Railway | type =tour operator | wikidata =Q2117546 | show =none}} 49 km, die Halbinsel {{Marker | name =Mornington Peninsula | type =peninsula | wikidata =Q1413210 | show =none}} 74  km, der {{Marker | name =Hanging Rock | type =hill | wikidata =Q1319209 | show =none}} 77 km und die [[Panoramastraße]] [[Great Ocean Road]] ab {{Marker | name =Torquay | type =town | wikidata =Q726992 | show =none}} 100 km. Mindestens ein Tagesausflug führt zur {{Marker | name =Phillip Island | type =island | wikidata =Q785760 | show =none}} 142 km.
* {{vCard | name = Victorian Pride Center | alt = Zentrum für queere Lebensweisen | type = cultural center | wikidata = Q124472639 | hours =09:00-17:00 Uhr | lastedit = 2024-04-03 | description =das mehrstöckige Gebäude befindet sich in St. Kilda und ist das Zentrum für queere Lebensweisen im ganzen Bundesstaat Victoria. Wöchentlich wird zu kulturellen Events eingeladen. Es gibt eine queere Buchhandlung. Im 1. Stock findet man die [[w:en:Australian_Queer_Archives|„Queer Archives“]] von ganz Australien mit queer-historischen Informationen. Tagsüber ist im Erdgeschoss das Cafe „The Little Social“ geöffnet.}}
* {{vCard|type=flea market |name=Flohmarkt in St. Kilda |address=|phone=|email=|fax=|url=https://stkildamelbourne.com.au/things-to-do-see/markets/ |hours=|price=|lat=|long=|lastedit=|description=Der Flohmarkt findet nur sonntags statt.}}
== Einkaufen ==
* {{vCard | type = mall | name = Queen-Victoria-Markt | url = http://www.qv.com.au/ | wikidata = Q860621 | lastedit = 2018-04-22 | description =sowohl Einkaufsmarkt der Melbournians mit vielen frischen Produkten und Delikatessen als auch Markt für verschiedene Waren und "Australiana". Auch als Einkaufsgelegenheit für Touristen und Sehenswürdigkeit für Touristen am nordwestlichen Rand des CBD. Nicht entgehen lassen sollte man sich die Fleisch- und Fischhalle, dort wird noch marktschreierisch die Ware feilgeboten. Die Preise sind übrigens auch am Fruchtmarkt zum Teil erstaunlich niedrig - wer hat zum letzten Mal ein Kilo Äpfel für 0,60 Euro gekauft? | hours =di+do 06:00-14:00 Uhr, fr 06:00-18:00 Uhr, sa 06:00-15:00 Uhr, so 09:00-16:00 Uhr.}}
* {{vCard|type= mall |name=Melbourne Central |address=|phone=|email=|fax=|url=|hours=|price=|lat=-37.810278|long=144.962754|wikidata =Q2987303 |description =direkt über dem Bahnhof entstand 1991 ein Einkaufzentrum, welches aufgrund seiner beeindruckenden Innenarchitektur besuchenswert ist. Eine große Glaskuppel überragt den in das neue Gebäude aufgenommenen alten Shot-Tower.}}
* {{vCard | type = market | name = St. Kilda Esplanade Market | url = http://www.stkildaesplanademarket.com.au/index.htm | lat = -37.865876 | long = 144.974330 | lastedit = 2019-03-30 | description =seit 1970 ein Kunst- und Kunsthandwerk-Markt.}}
* {{vCard | type = shop | name = DFO South Wharf | url = https://www.dfo.com.au/south-wharf/stores/ | lat = -37.824993 | long = 144.950254 | lastedit = 2019-03-30 | comment = Direct Factory Outlet | description =Einkaufszentrum mit Outlet-Geschäften heimischer und internationaler Marken sowie einem Food-Court.}}
== Küche ==
Melbourne bietet sehr viele kulinarische Varianten. Moderne australische Küche gibt es bei {{Marker | name =Atria | type =restaurant | lat =-37.81466 | long =144.95267}} (''650 Lonsdale Str''), in der {{Marker | name =Fleet Rooftop Bar | type =restaurant | lat =-37.81877 | long =144.96215}} (''1 Queen Str'') oder bei {{Marker | name =Lexy Restaurant and Bar | type =restaurant | lat =-37.8182 | long =144.96189}} (''377 Flinders Lane''), in der Nähe der ''Fleet Rooftop Bar''.
In {{Marker | name =Chinatown | type =region | wikidata =Q2461579}} rund um die ''Little Bourke Street'' findet man eine Vielzahl chinesischer Restaurants wie das {{Marker | name =RuYi Melbourne | type =restaurant | lat =-37.81111 | long =144.97147}} (''16 Liverpool Str''), {{Marker | name =Flower Drum | type =restaurant | lat =-37.81189 | long =144.96929}} (''17 Market Lane'') oder {{Marker | name =Shanghai Street | type =restaurant | lat =-37.81311 | long =144.96237}} (''342 Little Bourke Str'').
Wer die italienische Küche sucht, ist in {{Marker | name =Little Italy | type =region | lat =-37.80139 | long =144.96682}} rund um die ''Lygon Street'' gut aufgehoben. Zu erwähnen ist hier das {{Marker | name =Alpino Restaurant | type =restaurant | lat =-37.80099 | long = 144.96714}} (''262 Lygon Str''), gegenüber befindet sich das {{Marker | name =Borsari Ristorante | type =restaurant | lat =-37.80087 | long =144.96671}} (''201 Lygon Str'').
Viele Gaststätten zeigen am Eingang die Abkürzung „BYO“ (für „Bring Your Own“) als Hinweis darauf, dass keine alkoholischen Getränke zu Speisen serviert werden, sondern der Gast sie mitbringen kann.
== Unterkunft ==
Der Webseite ''Booking.com'' zufolge gibt es in Melbourne 3.703 Unterkünfte aller Kategorien. Darunter befinden sich:
;Teuer
Das {{Marker | name =Grand Hotel Melbourne | type =hotel | lat =-37.820302 | long =144.954391 | wikidata =Q111407410}} ist ein Luxushotel, das in dem im Jahre 1893 eröffneten ehemaligen Hauptsitz der ''Victorian Railway'' untergebracht ist (''33 Spencer Str''; 93 Zimmer). Das {{Marker | name = Rendezvous Hotel Melbourne | type =hotel | wikidata =Q111407429}} wurde 1923 erbaut (''328 Flinders Str''; 340 Zimmer und Suiten). Als teuerstes gilt das {{Marker | name =Oakwood Premier Melbourne | type =hotel | lat =-37.828092 | long =144.949413}} (''202 Normanby Rd''; 132 Zimmer/Suiten und 260 Apartments mit Service).
;Mittel
* {{Marker | name =City Centre Budget Hotel | type =hotel | lat =-37.812477 | long =144.972662}} (''22 Little Collins Str'')
* {{Marker | name =Miami Hotel Melbourne | type =hotel | lat =-37.806158 | long =144.948579}} (''13 Hawke Str'')
* {{Marker | name =ibis budget Melbourne CBD | type =hotel | lat =-37.815962 | long =144.963662}} (''97-103 Elizabeth Str'')
;Günstig
* {{Marker | name =Flinders Backpackers | type =hotel | lat =-37.817388 | long =144.964335}} (''35 Elizabeth Str'')
* {{Marker | name =The Spencer Backpackers | type =hotel | lat =-37.809541 | long =144.949246}} (''475 Spencer Str'')
* {{Marker | name =Pint On Punt Backpackers | type =hotel | lat =-37.854934 | long =144.983716}} (''42 Punt Rd'')
== Nachtleben ==
Die Kneipe {{Marker | name =Young and Jackson Hotel | type =pub | lat =-37.817331 | long =144.967127}} (''1 Swanston Str'') ist die ganze Woche ab 10:00 Uhr geöffnet bis 01:00 Uhr, fr+sa bis 03:00 Uhr, hat 30 Zapfhähne für Biermarken und ist eine Cocktail-Bar. Das Wort „Hotel“ ist irreführend, denn im australischen Englisch handelt es sich – nicht ausschließlich – um eine Kneipe. Einen Besuch wert ist die bereits unter „historische Bauten“ beschriebene {{Marker | name =Mitre Tavern | type =pub | wikidata =Q55907910 | show =copy}} im englischen Pub-Stil, die ganze Woche geöffnet von 11:00 bis 00:00 Uhr, nur sa von 12:00 bis 23:00 Uhr und so von 12:00 bis 21:30 Uhr.
Live-Jazz wird geboten bei {{Marker | name =Paris Cat Jazz Club | type =club | lat =-37.81352 | long =144.96084}} (''6 Goldie Place''; geöffnet do-so, fr+sa 17:30-00:00 Uhr) mit Platz für größere Jazzbands oder {{Marker | name =Bird's Basement | type =club | lat =-37.81126 | long =144.95648}} (''11 Singers Lane''; mi-sa 06:00-23:30 Uhr).
Das Casino {{Marker | name =Crown Casino and Entertainment Complex | type =casino | url =https://www.crownmelbourne.com.au/ | lat =-37.823928 | long =144.957014 | wikidata =Q1145115 | show =copy}} wurde 1994 eröffnet und bietet 24 Stunden alle für eine Spielbank typischen Glücksspiele an.
== Praktische Hinweise ==
In Melbourne gibt es mehrere Besucherzentren. Am {{Marker | name =City Square | type =square | url =https://whatson.melbourne.vic.gov.au/Pages/Home.aspx | wikidata =Q5123429}} im Rathaus befindet sich das {{Marker | name =Melbourne Visitor Hub at Town Hall | type =tourist information | lat =-37.81627 | long =144.96725}}, geöffnet die ganze Woche von 09:00 bis 17:00  Uhr.
* '''Sommerzeit''': beginnt am ersten Oktoberwochenende und endet am ersten Aprilwochenende.
* '''Water Restrictions''': Australien und ganz besonders Melbourne leidet unter einem chronischen Wassermangel, der durch das Bevölkerungswachstum in der Stadt und den allgemeinen Klimawandel noch verstärkt wird. Wasser sparen ist daher stets angesagt, dazu gibt es aber auch offizielle Stufen der Wasserrestriktionen: ''Stufe 1'' ist die niedrigste, bei ''Stufe 4'' ist der Wasserverbrauch im Freien (wie Pflanzen gießen, Auto waschen oder Ähnliches) praktisch völlig verboten.
== Gesundheit ==
Größtes Hospital der Stadt ist das {{Marker | name =Royal Melbourne Hospital | type =hospital | wikidata =Q7374471}} (''300 Gratton Str'').
Im Hochsommer (Dezember bis Januar) kann es sehr heiß werden bei hohem UV-Index. Jede Art von Sonnenschutz ist hier – wie in ganz Australien – erforderlich: von der sonnenschützenden Kleidung bis hin zu Sonnenschutzmitteln.
== Sicherheit ==
Mit 35,8 Straftaten pro 100 Einwohner weist die {{Marker | name =City of Melbourne | type =region | wikidata =Q1919098}} (also der CBD und seine Umgebung) die höchste Kriminalitätsrate auf. Gefährlich sind auch {{Marker | name =Collingwood | type =region | wikidata =Q1109698}}, {{Marker | name =Fitzroy | type =region | wikidata =Q1421389 | show =copy}} und {{Marker | name =Carlton | type =region | wikidata =Q47002 | show =copy}}.
== Literatur ==
* {{Buch |Autor=Bruce Scates |Titel=Place to remember: A history of the Shrine of Remembrance | Ort =Cambridge | Datum =2009 |Verlag =Cambridge Univ. Press |ISBN=978-0521112123 |Kommentar=Kriegerdenkmal im Kings Park}}.
== Weblinks ==
* [http://de.visitmelbourne.com/ Offizielle Tourismusseite der Stadt Melbourne] (de.)
* [https://en.wikivoyage.org/wiki/Trams_in_Melbourne weltweit größtes Straßenbahnnetz]
* [http://de.visitmelbourne.com/Information/Accessible-Victoria Links für barrierefreies Reisen]
== Einzelnachweise ==
<references />
{{Navigation Australien}}
{{GeoData| lat= -37.82056| long= 144.96139| radius= }}
{{IstInKat|Victoria (Australien)}}
{{Unesco|Kontinent = Ozeanien |Land = Australien}}
{{class-4}}
iynu42kdmpk5uaqkntj98rows1tvi2n
Perth
0
5286
1769203
1768523
2026-04-17T10:50:55Z
Wowo2024
53507
Artikel erweitert +mapframe +Quelle.
1769203
wikitext
text/x-wiki
{{AndereOrte|Weitere Orte dieses Namens finden sich unter [[Perth (Wegweiser)]]}}
{{quickbar Ort
|Bild = [[file:Perth CBD from Alf Curlewis Gardens - Perth.jpg|296px|Skyline des CBD von Perth (2012)]]
| TouriInfoWeb= [https://perthtouristcentre.com.au/ perthtouristcentre.com.au]
| TouriInfoTel=
}}
'''Perth''' ist die Hauptstadt des Bundeslandes [[Westaustralien|Western Australia]] und die drittgrößte Stadt [[Australien]]s. Die – mit Umland – zwei Millionen Einwohner zählende Stadt ist die einzige Großstadt an der Westküste Australiens. Sie liegt etwa sechzehn Kilometer vor dessen Mündung am {{Marker | name =Swan River | type =river | wikidata =Q1137387}}. Dieser endet in [[Fremantle]], dem Hafenvorort der Stadt.
== Hintergrund ==
{{mapframe | type= geoline | stroke= #FF0000 | stroke-width= 2 | stroke-opacity= 1 | id =Q3183}}
[[File:Inner-Perth-map-new.svg|thumb|Stadtteile im Großraum Perth.]]
In {{Marker | name =Perth | type =city | wikidata =Q3183}} ankommen, heißt vor allem durchatmen: laut touristischer Eigenwerbung ist es die “city of no worries.“ Hier geht es noch mal entspannter zu, als dies sowieso in Australien der Fall ist. Zwischen den innerstädtischen Hochhäusern finden sich wenige alte Kirchen oder kleine Häuser aus dem 19. Jahrhundert. Perth ist die einzige größere Stadt in [[Westaustralien]] und daher wirtschaftliches Versorgungszentrum des Staates.
Perth wurde am 12. Juni 1829 gegründet<ref>John Stewart, ''The British Empire: An Encyclopedia of the Crown's Holdings, 1493 Through 1995'', McFarland Publishing, 1996, S. 278; {{ISBN|978-0786401772}}</ref> und erhielt seinen Namen vom damaligen britischen Minister für die Kolonien, Sir George Murray, der in Perthshire (Schottland) geboren wurde.
== Stadtteile ==
Die Innenstadt besteht aus dem ''Central Business District'' (CBD). Ferner sind folgende Regionen zu erwähnen:
* {{Marker | name =Central Perth (CBD) | type =region | wikidata =Q14229145}}
* {{Marker | name =Chinatown | type =region | wikidata =Q24089730}}
* {{Marker | name =Cockburn | type =region | wikidata =Q1105257}}
* {{Marker | name =Crawley | type =region | wikidata =Q5182964}}
* {{Marker | name =East Perth | type =region | wikidata =Q5329137}}
* {{Marker | name =Innaloo | type =region | wikidata =Q6035243}}
* {{Marker | name =Northbridge | type =region | wikidata =Q4327495}}
* {{Marker | name =North Perth | type =region | wikidata =Q7056320}}
* {{Marker | name =South Perth | type =region | wikidata =Q3965581}}
* {{Marker | name =West Perth | type =region | wikidata =Q7986202}}
Die im Englischen potenziell peinlichen Namen von Ortsteilen erwähnt man nicht. So heißt der reiche Stadtteil ''Cockburn'' im örtlichen Sprachgebrauch “Coe'burn”, auch “Innaloo” („auf dem Klo“ – beachte das zweite ''n'') wohnt man nicht.
== Anreise ==
Perth ist das Drehkreuz für Flüge nach Südostasien. [[Bali]] (3,5 Std. Flugzeit) ist näher als [[Melbourne]] (3,75 Std.). Nach [[Singapur]] ist man rund sieben Stunden unterwegs.
=== Mit dem Flugzeug ===
Der {{Marker|type=airport|name=Perth Airport |lat=-31.941691|long=115.974691 | wikidata =Q45935}} liegt etwas östlich der Stadt. Das internationale Terminal ist eher provinziell, bietet aber die üblichen überteuerten Dienste. Dazu gehören auch Duschen im Check-in-Bereich. Zwischen dem internationalen und dem nationalen Teil des Flughafens liegen acht Kilometer (unbedingt einplanen bei Anschlussflügen), die per Shuttle verbunden sind. Von S-Bahnstation beim Terminal 1 fährt die Airport Line in 18 Minuten in die Stadt.
In die Stadt fährt zum Terminal 1+2 (international) Bus 37 (nur Mo.-Fr.) zur Oats Street Station via Belmont. Von Terminal 3+4 gibt es die Ringlinie zur Redcliffe Station im 12-Minuten-Takt. Außerdem, alle Tage, Bus 940 zur Elizabeth Quay Bus Station und Redcliffe Station über den Great Eastern Highway.
=== Mit der Bahn ===
Der transaustralische Fernzug [[Indian-Pacific Railway|Indian-Pacific]] beginnt oder endet in der {{Marker | name =East Perth railway station | type =railway station | wikidata =Q5329143}}, wobei er über [[w:Kalgoorlie|Kalgoorlie]], [[w:Cook (South Australia)|Cook]], [[Adelaide]] und [[Broken Hill]] bis [[Sydney]] in [[New South Wales]] fährt. Daneben gibt es nur Fernzüge nach [[w:Eisenbahn in Western Australia|Australind]] im Süden oder nach Kalgoorlie.
=== Mit dem Bus ===
Fernbusse ins [[Nördliches Westaustralien|nördliche Westaustralien]] bietet der Fernbus-Monopolist [https://www.greyhound.com.au Greyhound Australia].
=== Auf der Straße ===
Perth ist der Verkehrsknotenpunkt Westaustraliens. Wichtigste Fernstraße ist der [[National Highway 1]] ({{RSIGN|AU|NA|1}}), der mehr oder weniger küstennah verläuft und ganz Australien umrundet. Im Norden kann über ihn [[Katherine]] (3578 km) und [[Darwin]] (318 km von Katherine über den [[Stuart Highway]]; beide im [[Northern Territory]]), im Süden Adelaide (2695 km; [[Südaustralien]]) erreicht werden.
== Mobilität ==
[[File:TransperthRailwayMap.svg|thumb|Transperth Bahnnetz-Karte. (Die Strecke nach Ellenbrook eröffnete im Dez. 2024)]]
Die ''Transperth''-Fahrkarten gelten sowohl in den Zügen als auch in den Bussen. Einzelfahrkarten, es gibt ein Zonensystem, kauft man beim Fahrer oder man erwirbt eine Wertkarte, ''SmartRider'' genannt. Diese kostet A$ 10, die nicht zurückerstattet werden, dazu lädt man ein Guthaben auf. Beim Ein- und Aussteigen muss die Karte ans Lesegerät gehalten werden. Abgebucht wird nach Zonen, von denen es neun gibt. Die Tagesobergrenze liegt beim Preis einer normalen Tageskarte (2017: A$ 12,60). Fahrten mit Wertkarte sind zwanzig Prozent günstiger, jedoch bei gleicher Obergrenze, so dass sich der hohe Chipkartenpreis bei Kurzaufenthalten nicht amortisiert. Schwarzfahren kostet A$ 100, man hat vier Wochen Zeit zu bezahlen.
Die vier ''CAT''-Linien der Innenstadt sind kostenfrei zu benutzen, sie fahren tagsüber in verschiedenen Takten (mal 2 Minuten, mal 10 Minuten). Gegen Abend endet dieser Service.
Die Innenstadt ist klein genug, um sie zu Fuß zu erkunden. Man sollte nur darauf achten, sich eine Unterkunft im Stadtkern zu suchen.
;Lokalbahn
Das Bahnnetz verfügt über fünf nach den Endstationen benannten Linien. Es sind die Fremantle Line, Midland Line, Armadale Line, Joondalup Line und Mandurah Line. Zentraler Abfahrtsort ist der Hauptbahnhof. Die Züge verkehren in regelmäßigen Abständen, tagsüber alle 10-20 Minuten. Während der Pendlerzeiten können die Züge dicht besetzt sein, außerhalb dieser Zeiten stehen fast immer genügend Sitzplätze in den Waggons zur Verfügung. Sicherheitspersonal kontrolliert immer wieder die Züge und Bahnsteige. In der Nähe vieler Bahnhaltepunkte gibt es Bushaltestellen. Von Perth nach Fremantle fährt man rund 30 Minuten.
;Bus
[[File:TransperthDNA 20171219.jpg|thumb|Ein typisches Beispiel australischer “anti social behaviour”-Maßnahmen zeigt dieses Schild in Bussen von Transperth.]]
Das Bussystem der Stadt ist gut ausgearbeitet und man kommt auch z. B. von entlegenen Campingplätzen in die City. Das Angenehme an Perth: selbst ohne Ortskenntnisse kann man sich mit dem Auto in die Stadt vorwagen (und sogar erfolgreich Parkplätze finden).
Mit dem Bus lässt sich auch von den Vororten aus der CBD schnell und günstig erreichen. Es gibt zahlreiche Knotenpunkte, an denen sich die Linien kreuzen. Für die Innenstadt sind dies der {{Marker|type=bus|name=Elisabeth Quay Terminal|lat=-31.956594|long=115.855485}} Oder der {{Marker|type=bus|name=Perth Busport|lat=-31.950674|long=115.857160}}, 557 Wellington St. beim Hbf. Gegen Abend sind die Vororte oft nur noch stündlich zu erreichen, manche Linien enden bereits zwischen 18 und 20 Uhr an Werktagen. Der letzte Bus fährt spätestens kurz nach 23 Uhr.
Die Busse sind recht pünktlich, zum Teil etwas älter, aber sauber und vor allem zu den Pendlerzeiten sehr gut gefüllt. Wie überall in Australien hält der Fahrer nur, wenn man sich durch Winken bemerkbar macht. Ebenso wird an kleinen Haltestellen vorbeigefahren, wenn nicht die "next Stop"-Taste gedrückt wurde.
;Fähre
Die einzige Fähre über den Swan River pendelt halbstündlich vom {{marker|type=ferry|name=Elizabeth Quay Jetty|lat=-31.957777|long=115.856279 | wikidata =Q5363395}} zum {{Marker|type=ferry|name=Mends St. Jetty|lat=-31.971237|long=115.853717}}
== Sehenswürdigkeiten ==
;Touristeninfo
* {{vCard|type=tourist information|name=Western Australian Visitor Centre|address=55 William St|phone=|email=|fax= |url=https://www.wavisitorcentre.com.au/ |hours=tgl. 09:30-16:30 Uhr, So. ab 11:00 Uhr |price=|lat=-31.953703|long=115.856666|lastedit=2024-05-09|description=}}
* {{vCard|type=tourist information|before=In einem im Stile der 1970er futuristischen Kiosk untergebracht ist das städtische|name=Visitor Information Center|address=242 Murray Street Mall|phone=|email=|fax=|url=|hours=|price=|lat=-31.952995|long=115.858830|lastedit=|description=}}
=== Kirchen ===
{{Scroll Gallery
|title = Sakralbauten in Perth
|St Mary's Cathedral, Perth. Exterior of the new side from the north west.jpg|Katholische St. Mary's Cathedral, am Victoria Sq., Sitz des Erzbischofs.
|Greek-Orthodox-Church-Northbridge.jpg| Griechisch-orthodoxe Kirche, Ecke Francis und Parker St., Northbridge.
|St George's Cathedral from the south-west.jpg|Anglikanische St George's Cathedral.
|Wesley Church 001.jpg|Wesley Uniting Church, 75 Wiliam St.
|Mosque Perth 20180108-3.jpg|Moschee von Perth, 427 William St.
|JhanaGrove-20180105 192456.jpg|Meditationszentrum ''Jhana Grove'' der Buddhist Society of Australia, nahe dem Vorort Serpentine.
}}
* {{vCard | type = cathedral | name = St. Mary's Cathedral | wikidata = Q2942506 | lastedit = | description = }}
* {{vCard | type = cathedral | name = St. Ceorge's Cathedral | wikidata = Q7593121 | lastedit = | description = anglikanische Kirche }}
=== Bauwerke ===
* {{vCard | type =skyscraper | name =St. Martis Tower | url = https://www.stmartins.com.au/ | wikidata = Q7594226 | lastedit = 2019-02-11 | description =1978 erbauter, 140 m hoher Wolkenkratzer. Im 33. Stockwerk befindet sich das ''C Restaurant'', es dreht sich in 90 min einmal um seine eigene Achse.}}
* {{vCard | type = monument | name = Bell Tower | url = https://www.thebelltower.com.au/ | address = Barrack Square, Riverside Dr, Perth WA 6000 | phone = +61 8 6210 0444 | wikidata = Q7653429 | lastedit = 2019-02-10 | description = Der Bell Tower am Barrak Street Jetty genannt, ein Glockenturm, der auch besichtigt werden kann. Er bietet einen schönen Ausblick auf den Swan River. Vor dem Gebäude wurde den schwarzen Schwänen, die dem Fluss seinen Namen gaben, ein Denkmal in Form von Bronze-Schwänen gesetzt. }}
[[File:Perth Mint.jpg|thumb|Perth Mint.]]
In der gesamten City findet man einzelne alte Gebäude, die sich eine Nische zwischen modernen Bürogebäuden erhalten haben.
* {{vCard | type = building | name = Perth Mint | wikidata = Q917524 | lastedit = 2019-02-10 | description = Auch die alte Münzanstalt (Perth Mint) ist sehenswert. Auch heute wird dort noch Gold gegossen, und Besucher können den Weg vom Goldnugget bis zur Münze verfolgen. | price =19 AUD hoch.}}
* {{vCard | type = stadium | name = WACA Ground | url = https://www.waca.com.au/ | address = Nelson Cres, Perth WA 6004 | phone = +61 8 9265 7222 | wikidata = Q2738971 | description = Das Stadion der ''Western Australia Cricket Association'' ("WACA") ist ein markanter Orientierungspunkt im östlichen Bereich der Innenstadt.}}
Die Skyline des CBD ist von weitem zu sehen, so erkennt man auch von {{Marker | name =Rottnest Island | type =island | wikidata =Q585317}} die markanten Bauwerke. Die beste Aussicht hat man vom ''Kings Park'' bzw. von ''Southbridge'' am Ufer des Swan Rivers.
Ein Gebäude im englischen Stil ist das ''Teahouse'' am {{Marker | name =Cottesloe Beach | type =beach | wikidata =Q21955723}}, das sich auf vielen Postkarten wiederfindet.
=== Denkmäler ===
Zahlreiche Denkmäler, insbesondere für in Kriegen getötete australische Soldaten, finden sich im Kings Park. Gedenktafeln finden sich an zahlreichen Gebäuden und erinnern meist an den Erbauer.
=== Museen ===
* {{vCard|type=museum|before=Im |name=Kulturbezirk|alt=Perth Cultural Centre|directions=Beim Nordausgang des Hbf über eine Fußbrücke|phone=|email=|fax=|url=|hours=|price= |lat=-31.949545|long=115.860636|lastedit=|description=Staatsbibliothek (Internet im 3. OG) und -theater. Außerdem:}}
* {{vCard|type=gallery |name=Art Gallery of Western Australia |address=|phone=|email=|fax=|url=https://artgallery.wa.gov.au/ |hours=10.00-17.00|price= | lat=|long=|lastedit= 2024-05-09|description= die ''Art Gallery of Western Australia'' mit Ausstellungen, u.a. auch viel Eingeborenenkunst, sogenannte “Aboriginal Art.” Der Besuch, der im Vergleich zu ähnlichen Häuser an der Ostküste kleinen Ausstellung, lohnt sich am ehesten bei schlechtem Wetter.|wikidata = Q4796833}}
* {{vCard|type=museum|name=Western Australian Museum |name-local=y|alt=|address=|directions=|phone=|url=https://visit.museum.wa.gov.au/boolabardip |hours=|price=|lat=|long=|lastedit=2024-05-09|description=|wikidata=Q3567483}}
* {{vCard | type = museum | name = Nostalgia Box | lat = -31.947481 | long = 115.861916 | url=https://thenostalgiabox.com.au/ | lastedit = 2024-05-09 | comment = Video Games Museum | description = | wikidata = Q28402951}}
=== Straßen und Plätze ===
{{Scroll Gallery
|title = In Perth
|Art Gallery of Western Australia in Perth September 2010 II.JPG|Art Gallery of Western Australia
|Perth Bell Tower panorama.jpg|Bell Tower
|AU-perth-bota-garden.jpg|Botanischer Garten
|AU-perth-camel-ride.jpg|Botanischer Garten
|AU-perth-pano.jpg|Panorama CBD von Perth 2018
|AU-perth-pano-monument.jpg|Denkmal 1. Weltkrieg im King's Park
}}
Die Fußgängerzone umfasst zwei kurze Abschnitte der beiden Parallelstraßen Hay Street und Murray Street zwischen Barrack Street und William Street.
=== Parks ===
* {{vCard|before = Der schönste Park ist sicherlich der |type=botanical garden|name=Kings Park and Botanical Garden|directions=Bus 935 (Endstation) oder Green CAT, selbiger nur Mo.-Fr.|phone=|email=|fax=|url=|hours=|price=|lat=-31.959700|long=115.841108|wikidata =Q3495894|description= Park ist eigentlich das falsche Wort, denn wir Europäer stellen uns darunter wohl eher eine gepflegte Grünfläche als ein riesiges Gebiet, das größtenteils aus Buschland besteht, vor. Der Park, inklusive den in australischen Städten unerlässlichen Kriegsdenkmälern, liegt oberhalb der Stadt. Von hier hat man, wie auch Königin Victoria auf ihrem Sockel, einen wunderbaren Blick auf die Stadt und den Swan River. Besonders abends ist das ein Erlebnis. Der botanische Garten wurde erst in den späten 1960ern angelegt, ist aber hervorragend beschildert und gepflegt. Wer sich in Westaustralien aufs Land begeben will kann sich hier über die örtliche Flora bestens informieren.}}
* {{vCard | name =Western Australian Botanic Garden | type =botanical garden | wikidata =Q68885137 | description =er liegt zwar innerhalb des Kings Park, bildet aber auf einer Fläche von 400 Hektar eine eine eigene gestalterische Einheit. Präsentiert werden über 3000 Pflanzen aus Westaustralien.}}
* {{vCard|type=park|before=Den nördlichen Abschluss von Northbridge bildet der|name=Hyde Park|address=|phone=|email=|fax=|url=|hours=|price=|lat=-31.938464 |long=115.861655|wikidata =Q14935818|description=Mit “water playground.”}}
== Aktivitäten ==
* {{vCard|type=zoo|before=Sehr schön ist auch der|name=Perth Zoo|address=|directions=Bus 30, 31, 34|phone=|email=|fax=|url=https://perthzoo.wa.gov.au/ |hours=|price=A$ 30|lat=-31.975467|long=115.852203|lastedit=2018-01-13| wikidata =Q3082583| description=bereits 1898 angelegter Zoo mit 1258 Tieren in mehr als 160 Arten.}}
* {{vCard|type=zoo|before=Wer Känguruhs, Koalas, Wombats etc. streicheln möchte, dem sei zu einem Besuch im|name=Caversham Wildlife Park |address=B/99 Lord St, Whiteman WA 6068|directions=Bus 955, 956|phone=|email=|fax=|url=https://www.cavershamwildlife.com.au/ |hours=tgl. 09:00-16:30 Uhr |price=A$ 34|lat=-31.833973|long=115.950372|lastedit=2024-05-09| wikidata =Q55606786 | description= auf dem Gelände des Whiteman Park im Norden der Stadt geraten. Hier werden die sonst eher scheuen Tiere von Pflegern zu bestimmten Zeiten dem Publikum hautnah präsentiert und Fragen prompt beantwortet. Wer eher Interesse an Pferdestärken hat, kann in unmittelbarer Nähe sowohl das '''Motor Museum of WA''' (tgl. 10:00-16:00), als auch das '''Tractor Museum''' (Mi., Sa.-So. 10:00-15:00) besuchen.}}
Im Oktober findet alljährlich {{en|“Spring in the Valley“}} statt. Dabei können zahlreiche Betriebe, wie Winzereien, Farmen, Pralinenfabriken, Brauereien besichtigt werden. Sie bieten ihre Produkte zur Verkostung und zum Kauf an. Für Weinliebhaber sei gesagt, dass es einen Busservice gibt, der zwischen den einzelnen Stationen verkehrt. In diesem Rahmen veranstaltet die “[https://www.duckstein.com.au/ Duckstein Brewery]” ein “real German Octoberfest.“ Ein Besuch lohnt sich, schon alleine um zu sehen, was Down Under als “typisch deutsch” gilt. Es werden neben Bier auch Bratwurst(imitationen) und andere Speisen angeboten. Meist versucht sich eine kleine australische Band an deutscher Bierzeltmusik inklusive Gesang.
Ebenfalls im Frühjahr (September/Oktober) findet die Royal Show statt, die als großer Jahrmarkt mit zahlreichen Fahrgeschäften am Besten zu beschreiben ist. In diesem Zeitraum blühen auch die Wildblumen im King’s Park, was als des “[https://www.bgpa.wa.gov.au/everlasting-kings-park-festival Wildflower Festival]” beworben wird.
Im Oktober/November besteht die Möglichkeit, Wale zu beobachten. Dazu werden auch besondere Touren angeboten. Die Bootsführer bringen ihr Schiff lediglich in die Nähe der Wale, stoppen die Maschinen, sofern beim Seegang möglich, und geben den Walen die Möglichkeit, sich dem Publikum zu zeigen. Der Erfolg ist unterschiedlich, so dass es vorkommen kann, dass man bei der Fahrt nach ''Rottnest Island'' mehr Wale sieht als während des Whale watchings.
* {{vCard|type=temple|name=Dhammaloka-Zentrum|address=18 Nanson Way|directions=Bus 388 Halt Wanerroo Rd after Morley|phone=|email=|fax=|url=|hours=Bibliothek Sa. und Mo. Jeden Freitag ab 19:00 gibt es Vorträge|price=|lat=-31.887106|long=115.842396|lastedit=|description=In Perth hat die [https://bswa.org Buddhist Society of Western Australia] des auch in Deutschland bekannten [[w:Ajahn Brahm|Ajahn Brahm]] ihren Sitz.}}
* {{vCard | type = zoo | name = AQWA | address=91 Southside Dr, Hillarys WA 6025 | hours=09:00-16:00| price= 19 A$| lastedit = 2024-05-09 | comment = Schauaquarium | description = | wikidata = Q296366}}
== Einkaufen ==
Gute Einkaufsmöglichkeiten bietet der ''Central Business District'' mit zwei parallel verlaufenden kurzen Fußgängerzonen, Hay Str. und Murray Str. (Rauchverbot auch auf der Straße). Hier wird etwa soviel angeboten wie in der selben Einrichtung im bayerischen [[Hof]]. Praktisch alle Non-food Geschäfte schließen um 17:30, am Wochenende um 17:00. Banken öffnen erst um 09:30 – typisch für einen verschlafenen Ort wie Perth. Wechselstuben nehmen hohe Gebühren zusätzlich zum schlechten Wechselkurs.
Supermärkte findet man in der Innenstadt nur zwei, sie liegen sonst in den Centern der einzelnen Stadtteile, etliche Kilometer außerhalb. Dort sind in der Regel auch Geschäfte zu finden, die den gewöhnlichen Bedarf decken. Auch die vier Filialen der Firma Aldi liegen mindestens sieben Kilometer außerhalb, am leichtesten erreicht man das {{marker|type=shop|name=Belmont Forum Shopping Centre|lat=-31.964521|long=115.935570}} und {{Marker|type=shop|name=Morley Shopping Centre|lat=-31.964521|long=115.935570}}, 4 Collier Rd ''(Beim Morley Bus Terminal)''.
Souvenirs findet man auch, aber nicht nur, in den Geschäften im Zentrum. Hay Street und Murray Street seien an dieser Stelle genannt. Aber auch in den angrenzenden Straßen finden sich zahlreiche Anbieter. Diese beiden Straßen bilden die Fußgängerzone im Central Business District. Viele Häuser sind zur Mall ausgebaut und erstrecken sich über mehrere Etagen. Es lohnt auch ein Blick in kleine, unscheinbare Passagen, die insbesondere zur Weihnachtszeit herrlich dekoriert sind. Zahlreiche Fast-Food-Anbieter und Food-Halls finden sich in diesem Bereich.
;Northbridge
Die “Chinatown” mit starker koreanischer Komponente, befindet sich im Ortsteil Northbridge, vor allem entlang der William Str und ihrer Seitenstraßen. Die zahlreichen kleinen Lebensmittelgeschäfte dort bieten Frischware oft deutlich günstiger als australische Supermärkte.
* {{vCard|type=shop|before=Empfehlenswert ist der koreanische Familienbetrieb |name=Emma’s Seafoods Yong Tofu|address=319 William St |phone=|email=|fax=|url=|hours=9.00-20/21.00|price=|lat=-31.946263|long=115.860762|lastedit=2024-05-09|description=}}
* {{vCard|type=shop|before=Sehenswert alleine schon wegen der altbackenen Einrichtung ist|name=Kakulas Bros.|address=185 William St |phone=|email=|fax= |url=http://kakulasbros.com.au/ |hours=8.00-17.30 |price=|lat=-31.949474|long=115.858675|lastedit=2024-05-09|description=Ein Paradies für Liebhaber von Öko- und europäischen Lebensmitteln. Zahlreiche Gewürze und Kaffeesorten in offenen Säcken zur Selbstbedienung.}}
* {{vCard|type=shop|before=Wer von australischer Massenware genug hat versuche es bei|name=European Foods Wholesalers|address=93-101 Aberdeen St |phone= |email=|fax=|url=|hours=|price=|lat=-31.946568|long=115.858407|lastedit=2024-01-04|description=}}
* {{vCard|type=shop|before=Etwas für seine politische Bildung tun kann man im Buchladen des|name=Perth Activist Centre|address=15/5 Aberdeen St |phone= |email=perth@socialist-alliance.org|fax=|url=https://www.greenleft.org.au/ |hours=leider etwas unregelmäßig, 10.00/11.00-16./17.00|price=|lat=-31.950913|long=115.867145|lastedit=2024-05-09|description=}}
;Außerhalb
* {{vCard|type=shop|name=Harbour Town Outlet Shoppingcenter (Watertown)|address=Wellington St. 840, West-Perth |phone=|email=|fax= |url=https://www.watertownbrandoutlet.com.au/ |hours=tgl. 9.00-17.30, Fr. bis 21.00|price=|lat=-31.946791|long=115.847493|lastedit=2018-01-13|description= Verschiedene Marken betreiben hier Direktverkäufe. Das Outlet Center ist zu Fuß in 20 Minuten vom Stadtzentrum aus zu erreichen. Sehr viel billiger als in der Innenstadt ist die Ware (oft Restposten) auch nicht, der Reiz liegt eher in der Anzahl der verschiedenen Geschäfte.}}
* {{vCard|type=shop|before=Das größte Einkaufszentrum von Perth ist die|name=Garden City Mall|address=125 Riseley St, Booragoon WA 6154|directions=|phone= |email=|fax=|url=https://gardencity.com.au |hours=9.00-17.30, Supermärkte länger|price=|lat=-32.033930|long=115.835942|lastedit=2018-01-12|description=Neben vielen Einzelhändlern findet man hier auch Geschäfte großer Ketten wie Myers, David Jones oder K-Mart. Die meisten Läden findet man aber auch in der Innenstadt.}}
* Frisches Obst, Gemüse, Fleisch, Handarbeiten usw. findet man auch auf den verschiedenen Markets, die meist am Wochenende stattfinden. So zum Beispiel in Subiaco oder auch Fremantle. Zusätzlich gibt es auch verschiedene Geschäfte, die nationale Spezialitäten von Immigranten anbieten. So findet man im Swan Valley eine deutsche Metzgerei, im Stadtgebiet eine Schweizer Bäckerei oder Geschäfte, die frische italienische Delikatessen anpreisen.
== Küche ==
Es finden sich Speisen aus nahezu allen Ländern, wenn man nur etwas geduldig ist und die Augen offen hält. Fast-Food der auch in Europa bekannten Ketten muss man hingegen nicht lange suchen. Ausgehen ist wie überall in Australien vergleichsweise teuer.
Mehr oder wenige authentische asiatische Restaurants finden sich im Bereich der Chinatown in der William Str von Northbridge.
=== Günstig ===
In den Foodhalls findet man in der Regel mindestens chinesisches, thailändisches und italienisches Essen. Oft sind auch Anbieter vegetarischer Speisen vertreten. Dabei kostet die Portion ab A$ 10, meist um A$ 15 für einen Lunch.
* {{vCard|type=restaurant|name=Taka|address=150-152 Barrack St|phone=|email=|fax=|url=http://www.takaskitchen.iinet.net.au/location.htm |hours=11.00-21.00, Sa./So. bis 17.00|price=|lat=-31.952546|long=115.861465|lastedit=|description=Pseudo japanische Abfütterung besonders Mittag.}}
* {{vCard|type=restaurant|before=Wer unbedingt Sauerkraut, „Rüben-Sandwich“ oder „original Berliner Currywurst“ möchte, gehe ins|name=Brotzeit|address=Shop 6, 140 William St|phone=|email=|fax=|url=https://brotzeit.com.au/ |hours=Di.-So. 11.30-22.00|price=|lat=-31.952088|long=115.858331|lastedit=|description=}}
=== Mittel ===
* {{vCard|type=restaurant|name=Annalakshmi|address=Barrack Sq.|directions=Hinter dem Bell Tower beim Bootsableger.|phone=|email=|fax= |url=http://www.annalakshmi.com.au/ |hours=12.00-14.00, 18.00-21.00|price=|lat=-31.959535|long=115.857438|lastedit=2018-01-13|description=Ein etwas ungewöhnliches Restaurant. Das Personal arbeitet ohne Bezahlung nach der Philosophie “Eat to your hearts content and pay what your heart desires.” Der gesamte Gewinn wird für medizinische Hilfe in Indien und Malaysia verwendet. Eine Reservierung ist angeraten, insbesondere bei Schülern und Studenten ist dieses Lokal beliebt.}}
* {{vCard|type=restaurant|name=Miss Maud|address=97 Murray St|phone=|email=|fax=|url=http://www.missmaud.com.au/ |hours=7.00-21.30 |price=|lat=-31.954242 |long=115.862578|lastedit=2018-01-13|description=Hotel und Pub ''cum'' schwedisches Restaurant, mit all-you-can-eat Smörgasbord (A$ 45-65). Die [http://www.missmaud.com.au/PastryHouse.aspx zugehörige Bäckerei] hat Filialen im Stadtgebiet.}}
=== Gehoben ===
Wer während des Essens einen fabelhaften Ausblick auf die Stadt, den Swan River, Rottnest Island etc. haben möchte, sollte das "C Restaurant" wählen. Es befindet sich in der 33. Etage des St Martins Towers hoch über der St Georges Terrace. Es ist das einzige Restaurant in Western Australia, das sich dreht. Dadurch kann man während der Mahlzeit die Landschaft an sich vorbeiziehen lassen.
== Nachtleben ==
Das Nachtleben findet im wesentlichen Freitag und Samstag Abend statt. Hierbei konzentriert es sich auf den Bereich Northbridge, wo sich die Lokalitäten dicht aneinanderreihen. Die Preise sind hoch, geboten wird wenig. Man sollte bereits gegen 18:00 Uhr abends zum Feiern gehen, denn gegen Mitternacht schließen die meisten Läden. Nur wenige haben bis 03:00 Uhr morgens geöffnet.
== Unterkunft ==
=== Günstig ===
* {{vCard | type = hotel |before = Die | name = Jugendherberge (YHA) | address = 300 Wellington St. | lat = -31.952783 | long = 115.864067 | directions = 400 m vom Hbf. Halt 27 des Yellow CAT. Vom Flughafen Bus 980 bis St. Georges Tce./Pier St. Letztere über den Hügel 5 Min. geradeaus. | checkin = 13.00 | checkout = 10.00 | price = Mitglieder A$ 26 im 6-Bett-Schlafsaal. Bei Buchung einer Woche ist die achte Nacht gratis. | description = Deutlich besser und geräumiger als andere hauptstädtische YHA. Alle Zimmer mit Klimaanlage. Große Küche, mit lizensiertem Cafe im EG, Waschküche, gratis WLAN, Fernsehraum und Fitnessstudio. Der einzige Nachteil sind die zu den Bahngleisen liegenden Zimmer nach hinten, es gibt an der Rezeption jedoch Ohrstöpsel gratis. }}
* Eine Übersicht privater Hostels, die sich vor allen in Northbridge finden gibt es [https://www.hostelz.com/hostels/Australia/Western-Australia/Perth hier].
<!-- == Lernen == -->
== Arbeiten ==
Für “working holiday visa”-Inhaber interessant könnten die Agenturen sein, die Jobs in den Minen im Norden des Landes vermitteln. Diese hochbezahlten Tätigkeiten (2018: Hilfsarbeiten A$ 38+, Fachkräfte (Mechaniker, Installateure, Schweißer usw. AS$ 45+), erfordern oft den vorherigen Erwerb gewisser westaustralischer Qualifikationen (erste Hilfe, site safety, LKW- oder Staplerschein o.ä.). Sie werden normalerweise nach einem four-in-one oder three-in-one-Raster vergeben. D. h. man arbeitet täglich zwölf Stunden für drei oder vier Wochen und hat dann eine Woche frei. Die Firma übernimmt Kost, Logis sowie An- und Abflug. Auch Kurzzeitbeschäftigte sollten unbedingt der zuständigen Gewerkschaft [https://wa.cfmeu.org.au/ CMFEU] (Bau und Bergbau) beitreten, um Tariflöhne und faire, vorschriftsmäßige Arbeitsbedingungen zu sichern.
Bei den saisonal zahlreich angebotenen Erntehelfertätigkeiten versuchen sich etliche Farmer beim Einsatz ausländischer Hilfskräfte um den gesetzlichen Mindestlohn (2017: A$ 22,50, geringer für “juniors” unter 21) zu drücken. Hier hilft eine Gewerkschaftsmitgliedschaft ebenfalls bei der Durchsetzung.
== Sicherheit ==
Abgesehen von den auch in Deutschland üblichen Maßnahmen gegen Diebstähle sind keine besonderen Maßnahmen notwendig. In der City, in Bahnhöfen und Zügen ist Sicherheitspersonal und Polizei häufig anzutreffen. Gegenden, die von Ausländern/Urlaubern gemieden werden sollten, sind im Bereich von Perth und Fremantle nicht bekannt. An Wochenenden sind mit Meth gedopte, aggressive Spinner nicht selten, man gehe ihnen von weitem aus dem Weg. Alkoholgenuß in der Öffentlichkeit ist verboten.
== Gesundheit ==
Die Sonneneinstrahlung ist deutlich stärker als in Mitteleuropa – der Breitengrad von Perth entspricht dem der Sahara. Wer sich ungeschützt längere Zeit in der Sonne aufhält, dem sei geraten, den Sonnenbrand mit Aloe Vera zu behandeln. Die Pflanze wächst in vielen Gärten, die Einwohner wissen über die Wirkung der Pflanzensäfte.
Sonst gelten die üblichen Vorsichtsmaßnahmen wie im Rest Australiens. Watch your fingers - die Redback-Spinne versteckt sich gerne in Spalten, Kanten und Löchern. Giftschlangen können laut dem Terrarium des Zoos auch in den Siedlungsgebieten angetroffen werden. Moskitos schlagen in der Dämmerung unerbittlich zu. Australien ist glücklicherweise malariafrei, so dass der Juckreiz das größte Übel ist. Am Strand können je nach Jahreszeit Quallen vorkommen. Quallen sollen auch im Swan River zu finden sein.
Ärzte und Apotheken findet man im gesamten Stadtgebiet. Besondere Impfungen sind nicht notwendig.
== Praktische Hinweise ==
Selbst ohne Reiseführer sollte Perth keine Schwierigkeiten darstellen, sofern man halbwegs englisch spricht. Die Leute sind - wie auch im übrigen Australien - sehr hilfsbereit. Der Tourismus ist durch "Rucksack-Touristen" geprägt und bietet ein entsprechend darauf ausgerichtetes Angebot. In der Tourist-Information nahe des Bahnhofs wird gerne bei der Planung von Ausflügen, Aktivitäten oder Buchung von Verkehrsmitteln und Unterkünften geholfen. Dort kann auch Kartenmaterial erworben werden.
Mobilfunkempfang ist im gesamten Stadtgebiet gegeben. An zahlreichen geschäftigen Plätzen stehen die kostenlosen Hotspots von Telstra-WiFi zur Verfügung.
;Post
Wie in allen australischen Hauptstädten hat man das ehemals repräsentative, zentral gelegene ''General Post Office'' in ein Einkaufszentrum verwandelt.
{{vCard|type=post|before= Ein Postamt findet sich im Eingangsbereich des Hauptbahnhofs. In der ''Closisters Arcade'' ist eine weitere innerstädtische Filiale der|name=Australia Post|address=|phone=|email=|fax=|url=|hours=Mo.-Fr. 9.00-17.00|price=|lat=-31.953054|long=115.853251|lastedit= |description=Postkarten erreichen Deutschland meist schon nach 3-5 Tagen.}}
;Internetcafés
Verschiedene Internetcafés finden sich vor allem in Northbridge; sie bieten vor allem Zugang für Gamer an (Stundenpreis 2017: A$ 2,50-3,00). Die Tastaturen der Geräte sind daher oft verschlissen, auch laufen eher ältere Betriebssysteme.
Sowohl in der State Library als auch in der Perth Public Library, 595 Hay St., kann man nach Anmeldung für begrenzte Zeit Internetzugänge kostenlos nützen.
;Konsulate
Nahe beieinander im Bereich der St. Georges Terrace: Kroatien (9/68 St Georges Terrace); Indien (12 St. Georges Terrace); Griechenland (16 St. Georges Terrace); [https://kjri-perth.org.au/ Indonesien] (134 Adelaide Terrace); Kanada (220 St. Georges Terrace); Österreich (1133 Hay St.) und Großbritannien (251 Adelaide Terrace). Weiter westlich von Stadtzentrum: [https://www.thaiconsulateperth.com/ Thailand] (Ground floor 28/42 Ventnor Ave); Belgien (1095 Hay St.); Japan (111 Colin St.); Italien; Spanien. Die BRD vertritt ein Honorarkonsul (1133 Hay St.).
== Ausflüge ==
Wie wäre es mit [[Nördliches Westaustralien#Broome|Broome]] im Norden oder Kalgoorlie im Osten? Nicht zu vergessen sind die [[Nördliches Westaustralien|Pinnacles]] etwa 250 km nördlich von Perth. Ein weiteres bizarres Highlight von Australien…
{{vCard|type=zoo|name=Aquarium of Western Australia|address=91 Southside Dr, Hillarys WA 6025|directions=Joondalup Line bis Stirling, dann Bus 423 bis “West Coast Dr. before Heller Dr.” dann 10 Min. zu Fuß|phone=|email=|fax=|url=https://www.aqwa.com.au/ |hours=tgl. 10.00-17.00|price=A$ 30|lat=-31.826646 |long=115.737808|lastedit=2018-01-13|description=Wer gerade erst mit seinem Australien-Trip beginnt, kann hier erstmals, und noch mit der Sicherheit einer dicken Glasscheibe, die Meeresbewohner des Kontinents betrachten. Wer mutig ist, kann hier sogar mit Haien tauchen…}}
Entlang der Küste finden sich mehrere Tauchspots, die zahlreichsten auf Rottnest Island. Allerdings sind die Preise für Equipment und Tour an weniger populären Orten günstiger. So zum Beispiel in Mindarie nördlich Joondalup. Die angefahrenen Spots sind durchaus sehenswert, wenngleich sich eine andere Flora und Fauna als beispielsweise am [[Great Barrier Reef]] bietet, was nicht zuletzt an der Wassertemperatur liegt.
* Die Hafenstadt vor Perth: [[Fremantle]].
* ''[[Rottnest Island]]'' kann mit Schiffen verschiedener Anbieter erreicht werden. Die Boote starten vom Barracks St. Jetty, Hillary's Boat Harbour oder Fremantle. Preise (inkl. Nationalparksgebühr) liegen Anfang 2018 bei A$ 85-105 retour. Teilweise ist ein Leihfahrrad inklusive. Diese wunderschöne kleine Insel liegt vor Perth und wurde früher vor allem von den [[w:Quokka|Quokkas]], kleinen Wallabies, die von den ersten Seefahrern für Ratten gehalten wurden (daher auch der Name „Rattennest“), bewohnt. Heute kann man schöne Fahrradtouren unternehmen (Räder kann man direkt auf der Insel günstig mieten). Wer schnell fährt, schafft die Inselumrundung in guten zwei Stunden. Wer schlau ist, lässt sich mehr Zeit und genießt die kleinen Buchten und den Blick auf den Leuchtturm. Die Insel ist übrigens abgesehen von Dienstfahrzeugen der Bewohner autofrei.
* Ansonsten werden auch Ausflüge per Boot angeboten, zum Beispiel zu Weinproben entlang des Swan Rivers. Ausflüge zum “Whale watching” werden ab Barracks St. und Hillary's Boat Harbour angeboten und durchstreifen meist den Bereich zwischen der Küste und Rottnest Island.
[[File:Australia_pinnacles.jpg|thumb|300px|Pinnacles]]
* Richtung Süden siehe den Hauptartikel '''[[Südliches Westaustralien|südliches Westaustralien]].'''
* Richtung Norden siehe Artikel '''[[Nördliches Westaustralien]]'''
:* zum '''Yanchep-Nationalpark''' ca. 45 km nördlich, zahlreiche Höhlen, Koala-Kolonie
:* zum '''Nambung Nationalpark''' 200 km nördlich von Perth, Hauptattraktion sind die '''Pinnacles'''
== Literatur ==
* Corinna Melville, ''Reiseführer E-Book Australien'', MairDumont/Stefan Loose Reiseführer, 2024, S. 438 ff.; {{ISBN|978-3616034263}}.
== Weblinks ==
* [http://www.perth.wa.gov.au/ Offizielle Webseite der ''City of Perth'']
* [http://www.transperth.wa.gov.au/ Transperth] Fahrplan- und Tarifinfo
== Einzelnachweise ==
<references />
{{GeoData| lat= -31.95554| long= 115.86101| radius= }}
{{IstInKat|Westaustralien}}
{{class-4}}
{{Navigation Australien}}
2cmqjulzwv5oo74hsf6zu3hyfg12gj9
1769205
1769203
2026-04-17T11:01:54Z
Wowo2024
53507
/* Ausflüge */
1769205
wikitext
text/x-wiki
{{AndereOrte|Weitere Orte dieses Namens finden sich unter [[Perth (Wegweiser)]]}}
{{quickbar Ort
|Bild = [[file:Perth CBD from Alf Curlewis Gardens - Perth.jpg|296px|Skyline des CBD von Perth (2012)]]
| TouriInfoWeb= [https://perthtouristcentre.com.au/ perthtouristcentre.com.au]
| TouriInfoTel=
}}
'''Perth''' ist die Hauptstadt des Bundeslandes [[Westaustralien|Western Australia]] und die drittgrößte Stadt [[Australien]]s. Die – mit Umland – zwei Millionen Einwohner zählende Stadt ist die einzige Großstadt an der Westküste Australiens. Sie liegt etwa sechzehn Kilometer vor dessen Mündung am {{Marker | name =Swan River | type =river | wikidata =Q1137387}}. Dieser endet in [[Fremantle]], dem Hafenvorort der Stadt.
== Hintergrund ==
{{mapframe | type= geoline | stroke= #FF0000 | stroke-width= 2 | stroke-opacity= 1 | id =Q3183}}
[[File:Inner-Perth-map-new.svg|thumb|Stadtteile im Großraum Perth.]]
In {{Marker | name =Perth | type =city | wikidata =Q3183}} ankommen, heißt vor allem durchatmen: laut touristischer Eigenwerbung ist es die “city of no worries.“ Hier geht es noch mal entspannter zu, als dies sowieso in Australien der Fall ist. Zwischen den innerstädtischen Hochhäusern finden sich wenige alte Kirchen oder kleine Häuser aus dem 19. Jahrhundert. Perth ist die einzige größere Stadt in [[Westaustralien]] und daher wirtschaftliches Versorgungszentrum des Staates.
Perth wurde am 12. Juni 1829 gegründet<ref>John Stewart, ''The British Empire: An Encyclopedia of the Crown's Holdings, 1493 Through 1995'', McFarland Publishing, 1996, S. 278; {{ISBN|978-0786401772}}</ref> und erhielt seinen Namen vom damaligen britischen Minister für die Kolonien, Sir George Murray, der in Perthshire (Schottland) geboren wurde.
== Stadtteile ==
Die Innenstadt besteht aus dem ''Central Business District'' (CBD). Ferner sind folgende Regionen zu erwähnen:
* {{Marker | name =Central Perth (CBD) | type =region | wikidata =Q14229145}}
* {{Marker | name =Chinatown | type =region | wikidata =Q24089730}}
* {{Marker | name =Cockburn | type =region | wikidata =Q1105257}}
* {{Marker | name =Crawley | type =region | wikidata =Q5182964}}
* {{Marker | name =East Perth | type =region | wikidata =Q5329137}}
* {{Marker | name =Innaloo | type =region | wikidata =Q6035243}}
* {{Marker | name =Northbridge | type =region | wikidata =Q4327495}}
* {{Marker | name =North Perth | type =region | wikidata =Q7056320}}
* {{Marker | name =South Perth | type =region | wikidata =Q3965581}}
* {{Marker | name =West Perth | type =region | wikidata =Q7986202}}
Die im Englischen potenziell peinlichen Namen von Ortsteilen erwähnt man nicht. So heißt der reiche Stadtteil ''Cockburn'' im örtlichen Sprachgebrauch “Coe'burn”, auch “Innaloo” („auf dem Klo“ – beachte das zweite ''n'') wohnt man nicht.
== Anreise ==
Perth ist das Drehkreuz für Flüge nach Südostasien. [[Bali]] (3,5 Std. Flugzeit) ist näher als [[Melbourne]] (3,75 Std.). Nach [[Singapur]] ist man rund sieben Stunden unterwegs.
=== Mit dem Flugzeug ===
Der {{Marker|type=airport|name=Perth Airport |lat=-31.941691|long=115.974691 | wikidata =Q45935}} liegt etwas östlich der Stadt. Das internationale Terminal ist eher provinziell, bietet aber die üblichen überteuerten Dienste. Dazu gehören auch Duschen im Check-in-Bereich. Zwischen dem internationalen und dem nationalen Teil des Flughafens liegen acht Kilometer (unbedingt einplanen bei Anschlussflügen), die per Shuttle verbunden sind. Von S-Bahnstation beim Terminal 1 fährt die Airport Line in 18 Minuten in die Stadt.
In die Stadt fährt zum Terminal 1+2 (international) Bus 37 (nur Mo.-Fr.) zur Oats Street Station via Belmont. Von Terminal 3+4 gibt es die Ringlinie zur Redcliffe Station im 12-Minuten-Takt. Außerdem, alle Tage, Bus 940 zur Elizabeth Quay Bus Station und Redcliffe Station über den Great Eastern Highway.
=== Mit der Bahn ===
Der transaustralische Fernzug [[Indian-Pacific Railway|Indian-Pacific]] beginnt oder endet in der {{Marker | name =East Perth railway station | type =railway station | wikidata =Q5329143}}, wobei er über [[w:Kalgoorlie|Kalgoorlie]], [[w:Cook (South Australia)|Cook]], [[Adelaide]] und [[Broken Hill]] bis [[Sydney]] in [[New South Wales]] fährt. Daneben gibt es nur Fernzüge nach [[w:Eisenbahn in Western Australia|Australind]] im Süden oder nach Kalgoorlie.
=== Mit dem Bus ===
Fernbusse ins [[Nördliches Westaustralien|nördliche Westaustralien]] bietet der Fernbus-Monopolist [https://www.greyhound.com.au Greyhound Australia].
=== Auf der Straße ===
Perth ist der Verkehrsknotenpunkt Westaustraliens. Wichtigste Fernstraße ist der [[National Highway 1]] ({{RSIGN|AU|NA|1}}), der mehr oder weniger küstennah verläuft und ganz Australien umrundet. Im Norden kann über ihn [[Katherine]] (3578 km) und [[Darwin]] (318 km von Katherine über den [[Stuart Highway]]; beide im [[Northern Territory]]), im Süden Adelaide (2695 km; [[Südaustralien]]) erreicht werden.
== Mobilität ==
[[File:TransperthRailwayMap.svg|thumb|Transperth Bahnnetz-Karte. (Die Strecke nach Ellenbrook eröffnete im Dez. 2024)]]
Die ''Transperth''-Fahrkarten gelten sowohl in den Zügen als auch in den Bussen. Einzelfahrkarten, es gibt ein Zonensystem, kauft man beim Fahrer oder man erwirbt eine Wertkarte, ''SmartRider'' genannt. Diese kostet A$ 10, die nicht zurückerstattet werden, dazu lädt man ein Guthaben auf. Beim Ein- und Aussteigen muss die Karte ans Lesegerät gehalten werden. Abgebucht wird nach Zonen, von denen es neun gibt. Die Tagesobergrenze liegt beim Preis einer normalen Tageskarte (2017: A$ 12,60). Fahrten mit Wertkarte sind zwanzig Prozent günstiger, jedoch bei gleicher Obergrenze, so dass sich der hohe Chipkartenpreis bei Kurzaufenthalten nicht amortisiert. Schwarzfahren kostet A$ 100, man hat vier Wochen Zeit zu bezahlen.
Die vier ''CAT''-Linien der Innenstadt sind kostenfrei zu benutzen, sie fahren tagsüber in verschiedenen Takten (mal 2 Minuten, mal 10 Minuten). Gegen Abend endet dieser Service.
Die Innenstadt ist klein genug, um sie zu Fuß zu erkunden. Man sollte nur darauf achten, sich eine Unterkunft im Stadtkern zu suchen.
;Lokalbahn
Das Bahnnetz verfügt über fünf nach den Endstationen benannten Linien. Es sind die Fremantle Line, Midland Line, Armadale Line, Joondalup Line und Mandurah Line. Zentraler Abfahrtsort ist der Hauptbahnhof. Die Züge verkehren in regelmäßigen Abständen, tagsüber alle 10-20 Minuten. Während der Pendlerzeiten können die Züge dicht besetzt sein, außerhalb dieser Zeiten stehen fast immer genügend Sitzplätze in den Waggons zur Verfügung. Sicherheitspersonal kontrolliert immer wieder die Züge und Bahnsteige. In der Nähe vieler Bahnhaltepunkte gibt es Bushaltestellen. Von Perth nach Fremantle fährt man rund 30 Minuten.
;Bus
[[File:TransperthDNA 20171219.jpg|thumb|Ein typisches Beispiel australischer “anti social behaviour”-Maßnahmen zeigt dieses Schild in Bussen von Transperth.]]
Das Bussystem der Stadt ist gut ausgearbeitet und man kommt auch z. B. von entlegenen Campingplätzen in die City. Das Angenehme an Perth: selbst ohne Ortskenntnisse kann man sich mit dem Auto in die Stadt vorwagen (und sogar erfolgreich Parkplätze finden).
Mit dem Bus lässt sich auch von den Vororten aus der CBD schnell und günstig erreichen. Es gibt zahlreiche Knotenpunkte, an denen sich die Linien kreuzen. Für die Innenstadt sind dies der {{Marker|type=bus|name=Elisabeth Quay Terminal|lat=-31.956594|long=115.855485}} Oder der {{Marker|type=bus|name=Perth Busport|lat=-31.950674|long=115.857160}}, 557 Wellington St. beim Hbf. Gegen Abend sind die Vororte oft nur noch stündlich zu erreichen, manche Linien enden bereits zwischen 18 und 20 Uhr an Werktagen. Der letzte Bus fährt spätestens kurz nach 23 Uhr.
Die Busse sind recht pünktlich, zum Teil etwas älter, aber sauber und vor allem zu den Pendlerzeiten sehr gut gefüllt. Wie überall in Australien hält der Fahrer nur, wenn man sich durch Winken bemerkbar macht. Ebenso wird an kleinen Haltestellen vorbeigefahren, wenn nicht die "next Stop"-Taste gedrückt wurde.
;Fähre
Die einzige Fähre über den Swan River pendelt halbstündlich vom {{marker|type=ferry|name=Elizabeth Quay Jetty|lat=-31.957777|long=115.856279 | wikidata =Q5363395}} zum {{Marker|type=ferry|name=Mends St. Jetty|lat=-31.971237|long=115.853717}}
== Sehenswürdigkeiten ==
;Touristeninfo
* {{vCard|type=tourist information|name=Western Australian Visitor Centre|address=55 William St|phone=|email=|fax= |url=https://www.wavisitorcentre.com.au/ |hours=tgl. 09:30-16:30 Uhr, So. ab 11:00 Uhr |price=|lat=-31.953703|long=115.856666|lastedit=2024-05-09|description=}}
* {{vCard|type=tourist information|before=In einem im Stile der 1970er futuristischen Kiosk untergebracht ist das städtische|name=Visitor Information Center|address=242 Murray Street Mall|phone=|email=|fax=|url=|hours=|price=|lat=-31.952995|long=115.858830|lastedit=|description=}}
=== Kirchen ===
{{Scroll Gallery
|title = Sakralbauten in Perth
|St Mary's Cathedral, Perth. Exterior of the new side from the north west.jpg|Katholische St. Mary's Cathedral, am Victoria Sq., Sitz des Erzbischofs.
|Greek-Orthodox-Church-Northbridge.jpg| Griechisch-orthodoxe Kirche, Ecke Francis und Parker St., Northbridge.
|St George's Cathedral from the south-west.jpg|Anglikanische St George's Cathedral.
|Wesley Church 001.jpg|Wesley Uniting Church, 75 Wiliam St.
|Mosque Perth 20180108-3.jpg|Moschee von Perth, 427 William St.
|JhanaGrove-20180105 192456.jpg|Meditationszentrum ''Jhana Grove'' der Buddhist Society of Australia, nahe dem Vorort Serpentine.
}}
* {{vCard | type = cathedral | name = St. Mary's Cathedral | wikidata = Q2942506 | lastedit = | description = }}
* {{vCard | type = cathedral | name = St. Ceorge's Cathedral | wikidata = Q7593121 | lastedit = | description = anglikanische Kirche }}
=== Bauwerke ===
* {{vCard | type =skyscraper | name =St. Martis Tower | url = https://www.stmartins.com.au/ | wikidata = Q7594226 | lastedit = 2019-02-11 | description =1978 erbauter, 140 m hoher Wolkenkratzer. Im 33. Stockwerk befindet sich das ''C Restaurant'', es dreht sich in 90 min einmal um seine eigene Achse.}}
* {{vCard | type = monument | name = Bell Tower | url = https://www.thebelltower.com.au/ | address = Barrack Square, Riverside Dr, Perth WA 6000 | phone = +61 8 6210 0444 | wikidata = Q7653429 | lastedit = 2019-02-10 | description = Der Bell Tower am Barrak Street Jetty genannt, ein Glockenturm, der auch besichtigt werden kann. Er bietet einen schönen Ausblick auf den Swan River. Vor dem Gebäude wurde den schwarzen Schwänen, die dem Fluss seinen Namen gaben, ein Denkmal in Form von Bronze-Schwänen gesetzt. }}
[[File:Perth Mint.jpg|thumb|Perth Mint.]]
In der gesamten City findet man einzelne alte Gebäude, die sich eine Nische zwischen modernen Bürogebäuden erhalten haben.
* {{vCard | type = building | name = Perth Mint | wikidata = Q917524 | lastedit = 2019-02-10 | description = Auch die alte Münzanstalt (Perth Mint) ist sehenswert. Auch heute wird dort noch Gold gegossen, und Besucher können den Weg vom Goldnugget bis zur Münze verfolgen. | price =19 AUD hoch.}}
* {{vCard | type = stadium | name = WACA Ground | url = https://www.waca.com.au/ | address = Nelson Cres, Perth WA 6004 | phone = +61 8 9265 7222 | wikidata = Q2738971 | description = Das Stadion der ''Western Australia Cricket Association'' ("WACA") ist ein markanter Orientierungspunkt im östlichen Bereich der Innenstadt.}}
Die Skyline des CBD ist von weitem zu sehen, so erkennt man auch von {{Marker | name =Rottnest Island | type =island | wikidata =Q585317}} die markanten Bauwerke. Die beste Aussicht hat man vom ''Kings Park'' bzw. von ''Southbridge'' am Ufer des Swan Rivers.
Ein Gebäude im englischen Stil ist das ''Teahouse'' am {{Marker | name =Cottesloe Beach | type =beach | wikidata =Q21955723}}, das sich auf vielen Postkarten wiederfindet.
=== Denkmäler ===
Zahlreiche Denkmäler, insbesondere für in Kriegen getötete australische Soldaten, finden sich im Kings Park. Gedenktafeln finden sich an zahlreichen Gebäuden und erinnern meist an den Erbauer.
=== Museen ===
* {{vCard|type=museum|before=Im |name=Kulturbezirk|alt=Perth Cultural Centre|directions=Beim Nordausgang des Hbf über eine Fußbrücke|phone=|email=|fax=|url=|hours=|price= |lat=-31.949545|long=115.860636|lastedit=|description=Staatsbibliothek (Internet im 3. OG) und -theater. Außerdem:}}
* {{vCard|type=gallery |name=Art Gallery of Western Australia |address=|phone=|email=|fax=|url=https://artgallery.wa.gov.au/ |hours=10.00-17.00|price= | lat=|long=|lastedit= 2024-05-09|description= die ''Art Gallery of Western Australia'' mit Ausstellungen, u.a. auch viel Eingeborenenkunst, sogenannte “Aboriginal Art.” Der Besuch, der im Vergleich zu ähnlichen Häuser an der Ostküste kleinen Ausstellung, lohnt sich am ehesten bei schlechtem Wetter.|wikidata = Q4796833}}
* {{vCard|type=museum|name=Western Australian Museum |name-local=y|alt=|address=|directions=|phone=|url=https://visit.museum.wa.gov.au/boolabardip |hours=|price=|lat=|long=|lastedit=2024-05-09|description=|wikidata=Q3567483}}
* {{vCard | type = museum | name = Nostalgia Box | lat = -31.947481 | long = 115.861916 | url=https://thenostalgiabox.com.au/ | lastedit = 2024-05-09 | comment = Video Games Museum | description = | wikidata = Q28402951}}
=== Straßen und Plätze ===
{{Scroll Gallery
|title = In Perth
|Art Gallery of Western Australia in Perth September 2010 II.JPG|Art Gallery of Western Australia
|Perth Bell Tower panorama.jpg|Bell Tower
|AU-perth-bota-garden.jpg|Botanischer Garten
|AU-perth-camel-ride.jpg|Botanischer Garten
|AU-perth-pano.jpg|Panorama CBD von Perth 2018
|AU-perth-pano-monument.jpg|Denkmal 1. Weltkrieg im King's Park
}}
Die Fußgängerzone umfasst zwei kurze Abschnitte der beiden Parallelstraßen Hay Street und Murray Street zwischen Barrack Street und William Street.
=== Parks ===
* {{vCard|before = Der schönste Park ist sicherlich der |type=botanical garden|name=Kings Park and Botanical Garden|directions=Bus 935 (Endstation) oder Green CAT, selbiger nur Mo.-Fr.|phone=|email=|fax=|url=|hours=|price=|lat=-31.959700|long=115.841108|wikidata =Q3495894|description= Park ist eigentlich das falsche Wort, denn wir Europäer stellen uns darunter wohl eher eine gepflegte Grünfläche als ein riesiges Gebiet, das größtenteils aus Buschland besteht, vor. Der Park, inklusive den in australischen Städten unerlässlichen Kriegsdenkmälern, liegt oberhalb der Stadt. Von hier hat man, wie auch Königin Victoria auf ihrem Sockel, einen wunderbaren Blick auf die Stadt und den Swan River. Besonders abends ist das ein Erlebnis. Der botanische Garten wurde erst in den späten 1960ern angelegt, ist aber hervorragend beschildert und gepflegt. Wer sich in Westaustralien aufs Land begeben will kann sich hier über die örtliche Flora bestens informieren.}}
* {{vCard | name =Western Australian Botanic Garden | type =botanical garden | wikidata =Q68885137 | description =er liegt zwar innerhalb des Kings Park, bildet aber auf einer Fläche von 400 Hektar eine eine eigene gestalterische Einheit. Präsentiert werden über 3000 Pflanzen aus Westaustralien.}}
* {{vCard|type=park|before=Den nördlichen Abschluss von Northbridge bildet der|name=Hyde Park|address=|phone=|email=|fax=|url=|hours=|price=|lat=-31.938464 |long=115.861655|wikidata =Q14935818|description=Mit “water playground.”}}
== Aktivitäten ==
* {{vCard|type=zoo|before=Sehr schön ist auch der|name=Perth Zoo|address=|directions=Bus 30, 31, 34|phone=|email=|fax=|url=https://perthzoo.wa.gov.au/ |hours=|price=A$ 30|lat=-31.975467|long=115.852203|lastedit=2018-01-13| wikidata =Q3082583| description=bereits 1898 angelegter Zoo mit 1258 Tieren in mehr als 160 Arten.}}
* {{vCard|type=zoo|before=Wer Känguruhs, Koalas, Wombats etc. streicheln möchte, dem sei zu einem Besuch im|name=Caversham Wildlife Park |address=B/99 Lord St, Whiteman WA 6068|directions=Bus 955, 956|phone=|email=|fax=|url=https://www.cavershamwildlife.com.au/ |hours=tgl. 09:00-16:30 Uhr |price=A$ 34|lat=-31.833973|long=115.950372|lastedit=2024-05-09| wikidata =Q55606786 | description= auf dem Gelände des Whiteman Park im Norden der Stadt geraten. Hier werden die sonst eher scheuen Tiere von Pflegern zu bestimmten Zeiten dem Publikum hautnah präsentiert und Fragen prompt beantwortet. Wer eher Interesse an Pferdestärken hat, kann in unmittelbarer Nähe sowohl das '''Motor Museum of WA''' (tgl. 10:00-16:00), als auch das '''Tractor Museum''' (Mi., Sa.-So. 10:00-15:00) besuchen.}}
Im Oktober findet alljährlich {{en|“Spring in the Valley“}} statt. Dabei können zahlreiche Betriebe, wie Winzereien, Farmen, Pralinenfabriken, Brauereien besichtigt werden. Sie bieten ihre Produkte zur Verkostung und zum Kauf an. Für Weinliebhaber sei gesagt, dass es einen Busservice gibt, der zwischen den einzelnen Stationen verkehrt. In diesem Rahmen veranstaltet die “[https://www.duckstein.com.au/ Duckstein Brewery]” ein “real German Octoberfest.“ Ein Besuch lohnt sich, schon alleine um zu sehen, was Down Under als “typisch deutsch” gilt. Es werden neben Bier auch Bratwurst(imitationen) und andere Speisen angeboten. Meist versucht sich eine kleine australische Band an deutscher Bierzeltmusik inklusive Gesang.
Ebenfalls im Frühjahr (September/Oktober) findet die Royal Show statt, die als großer Jahrmarkt mit zahlreichen Fahrgeschäften am Besten zu beschreiben ist. In diesem Zeitraum blühen auch die Wildblumen im King’s Park, was als des “[https://www.bgpa.wa.gov.au/everlasting-kings-park-festival Wildflower Festival]” beworben wird.
Im Oktober/November besteht die Möglichkeit, Wale zu beobachten. Dazu werden auch besondere Touren angeboten. Die Bootsführer bringen ihr Schiff lediglich in die Nähe der Wale, stoppen die Maschinen, sofern beim Seegang möglich, und geben den Walen die Möglichkeit, sich dem Publikum zu zeigen. Der Erfolg ist unterschiedlich, so dass es vorkommen kann, dass man bei der Fahrt nach ''Rottnest Island'' mehr Wale sieht als während des Whale watchings.
* {{vCard|type=temple|name=Dhammaloka-Zentrum|address=18 Nanson Way|directions=Bus 388 Halt Wanerroo Rd after Morley|phone=|email=|fax=|url=|hours=Bibliothek Sa. und Mo. Jeden Freitag ab 19:00 gibt es Vorträge|price=|lat=-31.887106|long=115.842396|lastedit=|description=In Perth hat die [https://bswa.org Buddhist Society of Western Australia] des auch in Deutschland bekannten [[w:Ajahn Brahm|Ajahn Brahm]] ihren Sitz.}}
* {{vCard | type = zoo | name = AQWA | address=91 Southside Dr, Hillarys WA 6025 | hours=09:00-16:00| price= 19 A$| lastedit = 2024-05-09 | comment = Schauaquarium | description = | wikidata = Q296366}}
== Einkaufen ==
Gute Einkaufsmöglichkeiten bietet der ''Central Business District'' mit zwei parallel verlaufenden kurzen Fußgängerzonen, Hay Str. und Murray Str. (Rauchverbot auch auf der Straße). Hier wird etwa soviel angeboten wie in der selben Einrichtung im bayerischen [[Hof]]. Praktisch alle Non-food Geschäfte schließen um 17:30, am Wochenende um 17:00. Banken öffnen erst um 09:30 – typisch für einen verschlafenen Ort wie Perth. Wechselstuben nehmen hohe Gebühren zusätzlich zum schlechten Wechselkurs.
Supermärkte findet man in der Innenstadt nur zwei, sie liegen sonst in den Centern der einzelnen Stadtteile, etliche Kilometer außerhalb. Dort sind in der Regel auch Geschäfte zu finden, die den gewöhnlichen Bedarf decken. Auch die vier Filialen der Firma Aldi liegen mindestens sieben Kilometer außerhalb, am leichtesten erreicht man das {{marker|type=shop|name=Belmont Forum Shopping Centre|lat=-31.964521|long=115.935570}} und {{Marker|type=shop|name=Morley Shopping Centre|lat=-31.964521|long=115.935570}}, 4 Collier Rd ''(Beim Morley Bus Terminal)''.
Souvenirs findet man auch, aber nicht nur, in den Geschäften im Zentrum. Hay Street und Murray Street seien an dieser Stelle genannt. Aber auch in den angrenzenden Straßen finden sich zahlreiche Anbieter. Diese beiden Straßen bilden die Fußgängerzone im Central Business District. Viele Häuser sind zur Mall ausgebaut und erstrecken sich über mehrere Etagen. Es lohnt auch ein Blick in kleine, unscheinbare Passagen, die insbesondere zur Weihnachtszeit herrlich dekoriert sind. Zahlreiche Fast-Food-Anbieter und Food-Halls finden sich in diesem Bereich.
;Northbridge
Die “Chinatown” mit starker koreanischer Komponente, befindet sich im Ortsteil Northbridge, vor allem entlang der William Str und ihrer Seitenstraßen. Die zahlreichen kleinen Lebensmittelgeschäfte dort bieten Frischware oft deutlich günstiger als australische Supermärkte.
* {{vCard|type=shop|before=Empfehlenswert ist der koreanische Familienbetrieb |name=Emma’s Seafoods Yong Tofu|address=319 William St |phone=|email=|fax=|url=|hours=9.00-20/21.00|price=|lat=-31.946263|long=115.860762|lastedit=2024-05-09|description=}}
* {{vCard|type=shop|before=Sehenswert alleine schon wegen der altbackenen Einrichtung ist|name=Kakulas Bros.|address=185 William St |phone=|email=|fax= |url=http://kakulasbros.com.au/ |hours=8.00-17.30 |price=|lat=-31.949474|long=115.858675|lastedit=2024-05-09|description=Ein Paradies für Liebhaber von Öko- und europäischen Lebensmitteln. Zahlreiche Gewürze und Kaffeesorten in offenen Säcken zur Selbstbedienung.}}
* {{vCard|type=shop|before=Wer von australischer Massenware genug hat versuche es bei|name=European Foods Wholesalers|address=93-101 Aberdeen St |phone= |email=|fax=|url=|hours=|price=|lat=-31.946568|long=115.858407|lastedit=2024-01-04|description=}}
* {{vCard|type=shop|before=Etwas für seine politische Bildung tun kann man im Buchladen des|name=Perth Activist Centre|address=15/5 Aberdeen St |phone= |email=perth@socialist-alliance.org|fax=|url=https://www.greenleft.org.au/ |hours=leider etwas unregelmäßig, 10.00/11.00-16./17.00|price=|lat=-31.950913|long=115.867145|lastedit=2024-05-09|description=}}
;Außerhalb
* {{vCard|type=shop|name=Harbour Town Outlet Shoppingcenter (Watertown)|address=Wellington St. 840, West-Perth |phone=|email=|fax= |url=https://www.watertownbrandoutlet.com.au/ |hours=tgl. 9.00-17.30, Fr. bis 21.00|price=|lat=-31.946791|long=115.847493|lastedit=2018-01-13|description= Verschiedene Marken betreiben hier Direktverkäufe. Das Outlet Center ist zu Fuß in 20 Minuten vom Stadtzentrum aus zu erreichen. Sehr viel billiger als in der Innenstadt ist die Ware (oft Restposten) auch nicht, der Reiz liegt eher in der Anzahl der verschiedenen Geschäfte.}}
* {{vCard|type=shop|before=Das größte Einkaufszentrum von Perth ist die|name=Garden City Mall|address=125 Riseley St, Booragoon WA 6154|directions=|phone= |email=|fax=|url=https://gardencity.com.au |hours=9.00-17.30, Supermärkte länger|price=|lat=-32.033930|long=115.835942|lastedit=2018-01-12|description=Neben vielen Einzelhändlern findet man hier auch Geschäfte großer Ketten wie Myers, David Jones oder K-Mart. Die meisten Läden findet man aber auch in der Innenstadt.}}
* Frisches Obst, Gemüse, Fleisch, Handarbeiten usw. findet man auch auf den verschiedenen Markets, die meist am Wochenende stattfinden. So zum Beispiel in Subiaco oder auch Fremantle. Zusätzlich gibt es auch verschiedene Geschäfte, die nationale Spezialitäten von Immigranten anbieten. So findet man im Swan Valley eine deutsche Metzgerei, im Stadtgebiet eine Schweizer Bäckerei oder Geschäfte, die frische italienische Delikatessen anpreisen.
== Küche ==
Es finden sich Speisen aus nahezu allen Ländern, wenn man nur etwas geduldig ist und die Augen offen hält. Fast-Food der auch in Europa bekannten Ketten muss man hingegen nicht lange suchen. Ausgehen ist wie überall in Australien vergleichsweise teuer.
Mehr oder wenige authentische asiatische Restaurants finden sich im Bereich der Chinatown in der William Str von Northbridge.
=== Günstig ===
In den Foodhalls findet man in der Regel mindestens chinesisches, thailändisches und italienisches Essen. Oft sind auch Anbieter vegetarischer Speisen vertreten. Dabei kostet die Portion ab A$ 10, meist um A$ 15 für einen Lunch.
* {{vCard|type=restaurant|name=Taka|address=150-152 Barrack St|phone=|email=|fax=|url=http://www.takaskitchen.iinet.net.au/location.htm |hours=11.00-21.00, Sa./So. bis 17.00|price=|lat=-31.952546|long=115.861465|lastedit=|description=Pseudo japanische Abfütterung besonders Mittag.}}
* {{vCard|type=restaurant|before=Wer unbedingt Sauerkraut, „Rüben-Sandwich“ oder „original Berliner Currywurst“ möchte, gehe ins|name=Brotzeit|address=Shop 6, 140 William St|phone=|email=|fax=|url=https://brotzeit.com.au/ |hours=Di.-So. 11.30-22.00|price=|lat=-31.952088|long=115.858331|lastedit=|description=}}
=== Mittel ===
* {{vCard|type=restaurant|name=Annalakshmi|address=Barrack Sq.|directions=Hinter dem Bell Tower beim Bootsableger.|phone=|email=|fax= |url=http://www.annalakshmi.com.au/ |hours=12.00-14.00, 18.00-21.00|price=|lat=-31.959535|long=115.857438|lastedit=2018-01-13|description=Ein etwas ungewöhnliches Restaurant. Das Personal arbeitet ohne Bezahlung nach der Philosophie “Eat to your hearts content and pay what your heart desires.” Der gesamte Gewinn wird für medizinische Hilfe in Indien und Malaysia verwendet. Eine Reservierung ist angeraten, insbesondere bei Schülern und Studenten ist dieses Lokal beliebt.}}
* {{vCard|type=restaurant|name=Miss Maud|address=97 Murray St|phone=|email=|fax=|url=http://www.missmaud.com.au/ |hours=7.00-21.30 |price=|lat=-31.954242 |long=115.862578|lastedit=2018-01-13|description=Hotel und Pub ''cum'' schwedisches Restaurant, mit all-you-can-eat Smörgasbord (A$ 45-65). Die [http://www.missmaud.com.au/PastryHouse.aspx zugehörige Bäckerei] hat Filialen im Stadtgebiet.}}
=== Gehoben ===
Wer während des Essens einen fabelhaften Ausblick auf die Stadt, den Swan River, Rottnest Island etc. haben möchte, sollte das "C Restaurant" wählen. Es befindet sich in der 33. Etage des St Martins Towers hoch über der St Georges Terrace. Es ist das einzige Restaurant in Western Australia, das sich dreht. Dadurch kann man während der Mahlzeit die Landschaft an sich vorbeiziehen lassen.
== Nachtleben ==
Das Nachtleben findet im wesentlichen Freitag und Samstag Abend statt. Hierbei konzentriert es sich auf den Bereich Northbridge, wo sich die Lokalitäten dicht aneinanderreihen. Die Preise sind hoch, geboten wird wenig. Man sollte bereits gegen 18:00 Uhr abends zum Feiern gehen, denn gegen Mitternacht schließen die meisten Läden. Nur wenige haben bis 03:00 Uhr morgens geöffnet.
== Unterkunft ==
=== Günstig ===
* {{vCard | type = hotel |before = Die | name = Jugendherberge (YHA) | address = 300 Wellington St. | lat = -31.952783 | long = 115.864067 | directions = 400 m vom Hbf. Halt 27 des Yellow CAT. Vom Flughafen Bus 980 bis St. Georges Tce./Pier St. Letztere über den Hügel 5 Min. geradeaus. | checkin = 13.00 | checkout = 10.00 | price = Mitglieder A$ 26 im 6-Bett-Schlafsaal. Bei Buchung einer Woche ist die achte Nacht gratis. | description = Deutlich besser und geräumiger als andere hauptstädtische YHA. Alle Zimmer mit Klimaanlage. Große Küche, mit lizensiertem Cafe im EG, Waschküche, gratis WLAN, Fernsehraum und Fitnessstudio. Der einzige Nachteil sind die zu den Bahngleisen liegenden Zimmer nach hinten, es gibt an der Rezeption jedoch Ohrstöpsel gratis. }}
* Eine Übersicht privater Hostels, die sich vor allen in Northbridge finden gibt es [https://www.hostelz.com/hostels/Australia/Western-Australia/Perth hier].
<!-- == Lernen == -->
== Arbeiten ==
Für “working holiday visa”-Inhaber interessant könnten die Agenturen sein, die Jobs in den Minen im Norden des Landes vermitteln. Diese hochbezahlten Tätigkeiten (2018: Hilfsarbeiten A$ 38+, Fachkräfte (Mechaniker, Installateure, Schweißer usw. AS$ 45+), erfordern oft den vorherigen Erwerb gewisser westaustralischer Qualifikationen (erste Hilfe, site safety, LKW- oder Staplerschein o.ä.). Sie werden normalerweise nach einem four-in-one oder three-in-one-Raster vergeben. D. h. man arbeitet täglich zwölf Stunden für drei oder vier Wochen und hat dann eine Woche frei. Die Firma übernimmt Kost, Logis sowie An- und Abflug. Auch Kurzzeitbeschäftigte sollten unbedingt der zuständigen Gewerkschaft [https://wa.cfmeu.org.au/ CMFEU] (Bau und Bergbau) beitreten, um Tariflöhne und faire, vorschriftsmäßige Arbeitsbedingungen zu sichern.
Bei den saisonal zahlreich angebotenen Erntehelfertätigkeiten versuchen sich etliche Farmer beim Einsatz ausländischer Hilfskräfte um den gesetzlichen Mindestlohn (2017: A$ 22,50, geringer für “juniors” unter 21) zu drücken. Hier hilft eine Gewerkschaftsmitgliedschaft ebenfalls bei der Durchsetzung.
== Sicherheit ==
Abgesehen von den auch in Deutschland üblichen Maßnahmen gegen Diebstähle sind keine besonderen Maßnahmen notwendig. In der City, in Bahnhöfen und Zügen ist Sicherheitspersonal und Polizei häufig anzutreffen. Gegenden, die von Ausländern/Urlaubern gemieden werden sollten, sind im Bereich von Perth und Fremantle nicht bekannt. An Wochenenden sind mit Meth gedopte, aggressive Spinner nicht selten, man gehe ihnen von weitem aus dem Weg. Alkoholgenuß in der Öffentlichkeit ist verboten.
== Gesundheit ==
Die Sonneneinstrahlung ist deutlich stärker als in Mitteleuropa – der Breitengrad von Perth entspricht dem der Sahara. Wer sich ungeschützt längere Zeit in der Sonne aufhält, dem sei geraten, den Sonnenbrand mit Aloe Vera zu behandeln. Die Pflanze wächst in vielen Gärten, die Einwohner wissen über die Wirkung der Pflanzensäfte.
Sonst gelten die üblichen Vorsichtsmaßnahmen wie im Rest Australiens. Watch your fingers - die Redback-Spinne versteckt sich gerne in Spalten, Kanten und Löchern. Giftschlangen können laut dem Terrarium des Zoos auch in den Siedlungsgebieten angetroffen werden. Moskitos schlagen in der Dämmerung unerbittlich zu. Australien ist glücklicherweise malariafrei, so dass der Juckreiz das größte Übel ist. Am Strand können je nach Jahreszeit Quallen vorkommen. Quallen sollen auch im Swan River zu finden sein.
Ärzte und Apotheken findet man im gesamten Stadtgebiet. Besondere Impfungen sind nicht notwendig.
== Praktische Hinweise ==
Selbst ohne Reiseführer sollte Perth keine Schwierigkeiten darstellen, sofern man halbwegs englisch spricht. Die Leute sind - wie auch im übrigen Australien - sehr hilfsbereit. Der Tourismus ist durch "Rucksack-Touristen" geprägt und bietet ein entsprechend darauf ausgerichtetes Angebot. In der Tourist-Information nahe des Bahnhofs wird gerne bei der Planung von Ausflügen, Aktivitäten oder Buchung von Verkehrsmitteln und Unterkünften geholfen. Dort kann auch Kartenmaterial erworben werden.
Mobilfunkempfang ist im gesamten Stadtgebiet gegeben. An zahlreichen geschäftigen Plätzen stehen die kostenlosen Hotspots von Telstra-WiFi zur Verfügung.
;Post
Wie in allen australischen Hauptstädten hat man das ehemals repräsentative, zentral gelegene ''General Post Office'' in ein Einkaufszentrum verwandelt.
{{vCard|type=post|before= Ein Postamt findet sich im Eingangsbereich des Hauptbahnhofs. In der ''Closisters Arcade'' ist eine weitere innerstädtische Filiale der|name=Australia Post|address=|phone=|email=|fax=|url=|hours=Mo.-Fr. 9.00-17.00|price=|lat=-31.953054|long=115.853251|lastedit= |description=Postkarten erreichen Deutschland meist schon nach 3-5 Tagen.}}
;Internetcafés
Verschiedene Internetcafés finden sich vor allem in Northbridge; sie bieten vor allem Zugang für Gamer an (Stundenpreis 2017: A$ 2,50-3,00). Die Tastaturen der Geräte sind daher oft verschlissen, auch laufen eher ältere Betriebssysteme.
Sowohl in der State Library als auch in der Perth Public Library, 595 Hay St., kann man nach Anmeldung für begrenzte Zeit Internetzugänge kostenlos nützen.
;Konsulate
Nahe beieinander im Bereich der St. Georges Terrace: Kroatien (9/68 St Georges Terrace); Indien (12 St. Georges Terrace); Griechenland (16 St. Georges Terrace); [https://kjri-perth.org.au/ Indonesien] (134 Adelaide Terrace); Kanada (220 St. Georges Terrace); Österreich (1133 Hay St.) und Großbritannien (251 Adelaide Terrace). Weiter westlich von Stadtzentrum: [https://www.thaiconsulateperth.com/ Thailand] (Ground floor 28/42 Ventnor Ave); Belgien (1095 Hay St.); Japan (111 Colin St.); Italien; Spanien. Die BRD vertritt ein Honorarkonsul (1133 Hay St.).
== Ausflüge ==
Als Naherholungsgebiet gilt der bereits 1898 angelegte {{Marker | name =John Forrest National Park | type =national park | wikidata =Q1699032}} im Osten der Stadt. Auch die Hafenstadt südwestlich von Perth, {{Marker | name =[[Fremantle]] | type =city | wikidata =Q606212}}, ist einen Ausflug wert.
Weiter entfernt sind:
* [[Nördliches Westaustralien#Broome|Broome]] im Norden oder Kalgoorlie im Osten. Nicht zu vergessen sind die [[Nördliches Westaustralien|Pinnacles]] etwa 250 km nördlich von Perth. Ein weiteres bizarres Highlight von Australien…
* {{vCard|type=zoo|name=Aquarium of Western Australia|address=91 Southside Dr, Hillarys WA 6025|directions=Joondalup Line bis Stirling, dann Bus 423 bis “West Coast Dr. before Heller Dr.” dann 10 Min. zu Fuß|phone=|email=|fax=|url=https://www.aqwa.com.au/ |hours=tgl. 10.00-17.00|price=A$ 30|lat=-31.826646 |long=115.737808|lastedit=2018-01-13|description=Wer gerade erst mit seinem Australien-Trip beginnt, kann hier erstmals, und noch mit der Sicherheit einer dicken Glasscheibe, die Meeresbewohner des Kontinents betrachten. Wer mutig ist, kann hier sogar mit Haien tauchen…}}
* Entlang der Küste finden sich mehrere Tauchspots, die zahlreichsten auf ''Rottnest Island''. Allerdings sind die Preise für Equipment und Tour an weniger populären Orten günstiger. So zum Beispiel in Mindarie nördlich Joondalup. Die angefahrenen Spots sind durchaus sehenswert, wenngleich sich eine andere Flora und Fauna als beispielsweise am [[Great Barrier Reef]] bietet, was nicht zuletzt an der Wassertemperatur liegt.
* ''[[Rottnest Island]]'' kann mit Schiffen verschiedener Anbieter erreicht werden. Die Boote starten vom Barracks St. Jetty, Hillary's Boat Harbour oder Fremantle. Preise (inkl. Nationalparksgebühr) liegen Anfang 2018 bei A$ 85-105 retour. Teilweise ist ein Leihfahrrad inklusive. Diese wunderschöne kleine Insel liegt vor Perth und wurde früher vor allem von den [[w:Quokka|Quokkas]], kleinen Wallabies, die von den ersten Seefahrern für Ratten gehalten wurden (daher auch der Name „Rattennest“), bewohnt. Heute kann man schöne Fahrradtouren unternehmen (Räder kann man direkt auf der Insel günstig mieten). Wer schnell fährt, schafft die Inselumrundung in guten zwei Stunden. Wer schlau ist, lässt sich mehr Zeit und genießt die kleinen Buchten und den Blick auf den Leuchtturm. Die Insel ist übrigens abgesehen von Dienstfahrzeugen der Bewohner autofrei.
* Ansonsten werden auch Ausflüge per Boot angeboten, zum Beispiel zu Weinproben entlang des Swan Rivers. Ausflüge zum “Whale watching” werden ab Barracks St. und Hillary's Boat Harbour angeboten und durchstreifen meist den Bereich zwischen der Küste und Rottnest Island.
[[File:Australia_pinnacles.jpg|thumb|300px|Pinnacles]]
* Richtung Süden siehe den Hauptartikel '''[[Südliches Westaustralien|südliches Westaustralien]].'''
* Richtung Norden siehe Artikel '''[[Nördliches Westaustralien]]'''
:* zum '''Yanchep-Nationalpark''' ca. 45 km nördlich, zahlreiche Höhlen, Koala-Kolonie
:* zum '''Nambung Nationalpark''' 200 km nördlich von Perth, Hauptattraktion sind die '''Pinnacles'''
== Literatur ==
* Corinna Melville, ''Reiseführer E-Book Australien'', MairDumont/Stefan Loose Reiseführer, 2024, S. 438 ff.; {{ISBN|978-3616034263}}.
== Weblinks ==
* [http://www.perth.wa.gov.au/ Offizielle Webseite der ''City of Perth'']
* [http://www.transperth.wa.gov.au/ Transperth] Fahrplan- und Tarifinfo
== Einzelnachweise ==
<references />
{{GeoData| lat= -31.95554| long= 115.86101| radius= }}
{{IstInKat|Westaustralien}}
{{class-4}}
{{Navigation Australien}}
n96oa56rg5blzi7axgm347lp3aouw3n
Santiago de Compostela
0
5690
1769108
1743405
2026-04-16T21:19:43Z
Scholless
15050
/* Küche */ gestrafft
1769108
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Santiago de Compostela''' ist ein Wallfahrtsort im [[Spanien|spanischen]] [[Galicien]] mit der zum [[Welterbe/Europa#Spanien|Welterbe]] gehörenden Kathedrale.
== Hintergrund ==
Der Namensgeber der Stadt ist der Heilige Jakob (Sant Jago), dessen Grab im 9. Jahrhundert ein Einsiedler auf einem Sternenfeld (lat. Campus stellae > Compostela) gefunden haben will. Kurz darauf wurde eine Siedlung gegründet, die schnell zu einer Stadt wuchs. Santiago wurde zu einem geistigen Zentrum des Kampfes gegen die Mauren, weshalb im Jahre 997 durch den Emir von Córdoba der Feldherr Almansor nach Compostela geschickt wurde. Dieser fackelte nicht lange und zerstörte die rund 100 Jahre alte Pfeilerbasilika mit den ihr umgebenden Gebäuden. Doch von diesem Schicksalsschlag erholte sich die Stadt recht schnell. Bereits 1188 war die romanische Kathedrale an der Stelle der zerstörten Basilika errichtet. Mit der Reformation in Europa flaute der Pilgerstom nach Santiago immer mehr ab, und die Stadt wurde immer mehr zu einer bloßen Randerscheinung. Dies änderte sich Ende des 18. Jahrhunderts, als Pilger wieder begannen, nach Santiago zu reisen. Das Franco-Regime nutzte die Stadt und ihren Heiligen zu propagandistischen Zwecken. Ab 1933 wurde eine Spende an die Kathedrale per Gesetz eingeführt. 1981, als Galizien den neuen Autonomiestatus erhielt, wurde hier der Sitz des Präsidenten und des galizischen Parlaments eingerichtet, obwohl Santiago administrativ der Provinzhauptstadt A Coruña unterstellt ist.
== Anreise ==
=== Mit dem Flugzeug ===
{{Mapframe|42.88|-8.54|width = 350|height = 450|zoom=14}}
{{vCard | name = Flughafen Santiago de Compostela | type = airport | wikidata = Q1432777 | description = Er liegt rund 11 Kilometer östlich der Stadt. Angeflogen wird der Flughafen u.a. von Basel-Mulhouse, Genf, Zürich und Frankfurt aus.
}}
Zwischen dem Stadtzentrum und dem Flughafen verkehren alle 30 Minuten Shuttlebusse. Der Bus fährt in Santiago von der Haltestelle „Rúa do Doutor Teixeiro“ von 6:00 bis 0:00 und hält unter anderem auch am „Plaza de Galicia“ und am {{Marker Kopie |name=Busbahnhof von Santiago }} Busbahnhof. Vom Flughafen nach Santiago fährt der erste Shuttlebus um 6:45 und der letzte um 0:45 Uhr. Die Fahrt kostet 3 €, ein Ticket für die Hin- und Rückfahrt 5 € {{Stand|2015|09}}.<br />
Mit dem Privat- oder Mietwagen kann der Flughafen vom Stadtzentrum aus über die '''N 634a''' erreicht werden.
=== Mit der Bahn ===
Der {{Marker | name = Bahnhof Santiago de Compostela | type = train | lat = 42.87074 | long = -8.54477 | wikidata = Q8841900 }} liegt südlich der Altstadt am Ende der ''Rúa do Hórreo''. Dort halten annähernd stündlich Züge der [http://www.renfe.com/viajeros/ Renfe] von/nach [[A Coruña]] (Fahrtzeit ca. 30 Minuten), [[Ourense]] (40 Minuten), außerdem siebenmal am Tag von/nach [[Vigo]] (Fahrtzeit 1½ Stunden).
Im Fernverkehr halten dreimal pro Tag Alvia-Hochgeschwindigkeitszüge von/nach [[Madrid]]-Chamartín (5 Std.) sowie einmal am Tag ein Intercity von [[Irun]] an der spanisch-französischen Grenze und Donostia/San Sebastian (10½ Std.) über Burgos (7½ Std.) und [[León (Spanien)|León]] (5:15 Std).
Extrem luxuriös ankommen kann man mit den touristischen Sonderzügen des [[Kantabrien#Transcantábrico|Transcantábrico]], dessen einwöchige Nordspanien-Rundfahrten immer hier Halt machen.
=== Mit dem Bus ===
* {{vCard|type=bus|name=Busbahnhof von Santiago|address=Plaza Camilo Díaz Baliño|phone=+34 981 542 416|email=|fax=|url=http://www.tussa.org|hours=6:00-22:00|price=|lat=42.88796|long=-8.53290}}
* Es fahren unter anderem internationale Busse der [http://www.alsa.es/portal/site/Alsa ALSA] zu und von einer Vielzahl von Städten auch im deutschsprachigen Bereich.
=== Auf der Straße ===
Von [[A Coruña]] aus führt die Autobahn {{RSIGN|ES|AP|9}} '''Autopista AP-9''' (E1) an der Stadt '''Santiago''' vorbei bis nach [[Vigo]] und zur Grenze nach [[Portugal]], parallel dazu verläuft die nicht mautpflichtige '''N-550'''.<br />
Von [[Lugo]] im Osten resp. von der {{RSIGN|ES|A|6}} '''Autovía A-6''' aus führt die '''N-540''' südwestlich, bis nach 16 km auf die '''N-547''' gewechselt werden muss, um dan aus östlicher Richtung '''Santiago de Compostela''' zu erreichen. Die '''N-547''' endet in der {{RSIGN|ES|A|54}} '''Autovía del Aeroporto A-54''' ins Stadtzentrum.<br />
Die mautpflichtige {{RSIGN|ES|AP|53}} '''Autopista AP-53''' führt in südöstlicher Richtung nach Ourense, wo sie auf die westwärts führende {{RSIGN|ES|A|52}} '''Autovía A-52''' in Richtung [[León (Spanien)|León]] führt. Begleitet wird sie von der nicht mautpflichtigen '''N-525'''.<br />
Die '''AG-56''' resp. die im Bau befindliche '''CG-1.5''' und parallel die '''AC-543''' führen westwärts nach [[Noia]] an der [[Ría de Muros]] und weiter in Richtung [[Fisterra]].
=== Mit dem Fahrrad ===
Santiago ist der Endpunkt des europäischen Fernradwegs [[EuroVelo 3]] (auch „Pilgerroute“ oder „La Scandibérique“ genannt), der von Skandinavien durch Nordwestdeutschland, Belgien und Frankreich hierher führt. Die spanische Post bietet den Service, das Fahrrad in einer Transportverpackung zurück zu schicken.
=== Zu Fuß ===
Der traditionelle Weg nach Santiago de Compostela ist die Fußwanderung, auf dem [[Jakobsweg|Pilgerweg ('''Jakobsweg''')]]. Hier ist der Endpunkt aller Jakobswege: [[Camino Francés]] von der französischen Grenze in den Pyrenäen, Camino del Norte an der spanischen Nordküste entlang, Camino de Madrid, Caminho Português von Lissabon sowie der Camino a Fisterra vom/zum [[Cabo Fisterra]] am Westende des europäischen Festlands.
== Mobilität ==
<!-- {{Maps|42.8807|-8.5431|17|O|Stadtplan}}-->
Die Altstadt ist verkehrsberuhigt und daher ist die Erkundung zu Fuß fast unumgänglich. Die Sehenswürdigkeiten befinden sich allerdings weitgehend innerhalb der Altstadt und sind innerhalb von wenigen Minuten zu erreichen. In der Nähe der Altstadt gibt es mehrere gut ausgeschilderte Parkplätze wie den Platz an der {{Marker|type = parking|name = Av. de Xoán XXIII|lat = 42.884214|long = -8.544548}}. In dem Parkhaus gibt es auch öffentliche Toiletten
Ein kommunales Busnetz mit ca. 20 Linien wird von der städtischen Busgesellschaft [http://www.tussa.org TUSSA] unterhalten. Eine Vielzahl der Bushaltestellen ist als solche nicht erkennbar, es ist hilfreich Einheimische nach der nächsten Bushaltestelle zu fragen. Erschwerend kommt hinzu, dass in den Bussen die Haltestellen nicht angekündigt werden.
== Sehenswürdigkeiten ==
=== Straßen und Plätze ===
[[File:Santiago-plaza-del-obradorio.JPG|thumb|Praza del Obradoiro]]
Um die {{marker|type= square|lat=42.88045|long= -8.54571|name= Praza do Obradoiro|wikidata=Q7638209}} sind die '''Kathedrale''', der '''Sitz des Galizischen Präsidenten''', der '''Bischofspalast''' und das '''Hostal dos Reis Católicos''' (heute Staatshotel [[w:Parador|Parador Nacional]]) angeordnet, womit schon 5 der wichtigen Sehenswürdigkeiten der Stadt erwähnt sind. Umgeben sind sie von den Gässchen der Altstadt mit malerischen Häusern, häufig mit typischen verglasten Balkonen.
=== Kirchen ===
Santiago hat 15 Kirchen, darunter als bedeutendste die 1120 vollendete romanische Kathedrale mit zwei 78 m hohen Türmen, dreischiffigem Querhaus und dem angeblichen Grab des Apostels Jakobus (d. Ä.), des Schutzpatrons von Spanien, dazu kommen mehrere ehemalige Klöster.
==== Kathedrale ====
{{Scroll Gallery
|title = Kathedrale
|Image:Santiago GDFL catedral 050318 38.jpg|Kathedrale
|Image:Santiago Cathedral 200408.jpg|Obradoiro - Fassade
|Image:2010-Catedral de Santiago de Compostela-Galicia (Spain) 4.jpg|upright{{!}}Obradoiro - Fassade
|Image:Interior Catedral Santiago de Compostela.jpg|Pórtica di Gloria
|Image:Santiago catedral GDFL050914 030.JPG|Torre de la Carraca (Nordturm)
|Image:Santiago Catedral torre GDFL.jpg|upright{{!}}Torre de las Campanas (Südturm)
|Image:Spain.Santiago.de.Compostela.Catedral.Puerta.Meridional.jpg|Puerta de las Praterías (Südseite)
|Image:Santiago-seitenpforte-re.JPG|{{Hochkant|0.6}}Torre del Reloj
|Image:Santiago GDFL catedral 050318 40.jpg|{{Hochkant|0.6}}Torre del Reloj / Torre de la Berenguela
|Image:Cathedral square Santiago de Compostela.jpg|Azabachería-Fassade (Nordseite)
|Image:Catedral de Santiago-azabacheria.jpg|Azabachería-Fassade
|Image:Santiago-azabacheria-fassade.JPG|Puerta de la Azabachería
|Image:Puerta del Perdón Santiago.de.Compostela.jpg|Puerta Santa / Puerta del Perdón (Ostseite)
}}
{{Scroll Gallery
|title = Kathedrale, im Innern
|Image:Santiago Catedral 060510 001.jpg|Hauptalter, hinter der Statue des Hl. Jakobus passieren Pilger
|Image:Santiago-kathedrale-innen.JPG|upright{{!}}Hauptalter mit der Statue des Hl. Jakobus
|Image:Santiago Catedral Botafumeiro.jpg|Botafumeiro (Räuchergefäß)
|Image:Botafumeiro-santiago-copostela.ogv|Botafumeiro im Einsatz
|Image:SantCompostela93.jpg|upright{{!}}Krypta mit Reliquiar des Hl. Jakobus
}}
* {{vCard | name = Kathedrale von Santiago de Compostela | type = church | wikidata = Q205136 | description = Sie ist mindestens der dritte an dieser Stelle errichtete Sakralbau. Der Bau der heutigen Kathedrale wurde um 1075/77 begonnen. Zu Beginn als romanische Kathedrale geplant, wurde der Bau während der langen Bauzeit – wie es so üblich war – in den aktuellen Stilrichtungen abgeändert.
}}
Sie wurde 1985 zum [[Welterbe/Europa#Spanien|UNESCO-Weltkulturerbe]] erklärt.
Die '''Obradoiro-Fassade''' ist die Westfassade zum '''Praza do Obradoiro'''. Sie wurde im 18. Jahrhundert fertiggestellt und ist im üppigen Stil des Barock gehalten. Sie verdeckt nun die frühere Fassade, von der nur das Glorienportal noch erhalten ist.
Der Nordturm wird '''Carraca''' benannt, der Südturm '''Campanas''' (Glockenturm). Beide haben einen Aufbau im Barockstil auf dem unteren romanischen Turmteil.
Die '''Praterías-Fassade''' ist die Südfassade des Kreuzschiffes. Es handelt sich um die einzige Fassade, an der die romanische Struktur noch erhalten ist.
Der '''Uhrenturm''' (Torre del Reloj) wurde im 16. Jahrhundert errichtet und ist ein Werk des Rodrigo Gill de Hontañón; er befindet sich an der Südostecke des südlichen Seitenschiffes. An der Südostecke des Südanbaus befindet sich der '''Schatzturm''' (Torre del Tesoro).
An der Ostseite befinden sich das '''Königsportal''' und die '''Heilige Pforte'''. Die heilige Pforte ('''Puerta Santa''') ist die zweite von rechts an der östlichen Seite der Kathedrale, sie wird nur während des Compostelanischen Heiligen Jahres geöffnet. Diese Festlichkeit wird seit dem 12. Jahrhundert in dem Jahr begangen begangen, in dem der Namenstag des Apostels, der 25. Juli, auf einen Sonntag fällt. Es dauert immer vom Nachmittag des 31. Dezember bis zum nächsten 31. Dezember.
Auf der Nordseite befindet sich die '''Azabachería-Fassade''' zum gleichnamigen Platz. Früher wurde sie Paradies-Fassade genannt. Hier endet der [[Camino Francés|französische Jakobsweg]], welcher der meistbegangene ist. Bei dieser Fassade befinden sich die ersten klassizistischen Elemente, die in Compostela zur Anwendung kammen.
Der '''Innenraum der Kathedrale''' wird vom '''Hauptaltar''', der sich über dem Apostelgrab befindet, dominiert.
Hinter dem '''Hauptaltar''' befindet sich die über eine Seitenpforte mit einigen Treppenstufen erreichbare '''Camarín''' (St.-Jakobs-Nische), in ihr befindet sich die Sitzstatue des Jakobus als Meister. Es ist Brauch, dass die Pilger die Statue nach Erfüllung ihrer Pflichten umarmen. Deshalb hat die Steinstatue eine Heiligenschein, da viele ihren Hut auf seinen Kopf legen, um ihn besser umarmen zu können. Ein eigenartiges Schauspiel ist es, wenn sogar während der Messe der Strom der Pilger hinter der Jakobus-Statue auf dem Hauptalter nicht abbricht.
Eine weitere Besonderheit ist der '''Botafumeiro'''. Das gewaltige an einem Seil hängende Räuchergefäß wird von einer kräftigen Mannschaft in Schwingung versetzt und pendelt bis weit gegen das Dach des Querschiffs hinauf.
In der '''Krypta''', hinter dem Hauptaltar, befindet sich das Grabmal des Jakobs und seiner beiden Begleiter Athanasios und Theodoros.
Das '''Glorienportal''' ist nun von der Obradorio-Fassade verdeckt. Das reich verzierte Portal wurde im Auftrag von Ferdinand II. von seinem Hofarchitekten Mateo gestaltet. Das Portal spiegelt den Glaubenssatz ''Mitbürger der Heiligen und Hausgenossen Gottes sind aufgebaut auf dem Fundament der Apostel und Propheten'' wider. Die Mitte dominiert ein fast drei Meter hohe sitzender Jesus, bei ihm halten die vier Evangelisten Wache.
Führungen durch die Kathedrale (etwa der Dachrundgang) müssen z. T. vorab reserviert werden, dies kann [https://tickets.catedraldesantiago.es/site/CatedralDeSantiago/?lang=en online] oder vor Ort erfolgen. Pilger mit Pilgerausweis erhalten eine Preisermäßigung.
=== Burgen, Schlösser und Paläste ===
{{Scroll Gallery
|title = Paläste in Santiago
|Image:Santiago Hostal Obradoiro.jpg|Hostal dos Reis Católicos
|Image:SantCompostela98.jpg|upright{{!}}Hostal dos Reis Católicos
|Image:Santiago-abtei-san-martin.JPG|Abtei San Martín Pinario
|Image:Santiago concello GDFL050914 040.jpg|Pazo de Raxoi
|Image:Santiago-pazo-de-raxoi.JPG|Pazo de Raxoi
|Image:Santiago-pazo-fonseca.JPG|Pazo de Fonseca
|Image:Santiago fonseca GDFL050914 038.jpg|Pazo de Fonseca
|Image:Santiago Pazo de Fonseca 5.jpg|upright{{!}}Pazo de Fonseca
|Image:Santiago-casa-del-cabildo.JPG|Casa del Cabildo (Domkapitel)
}}
* Das {{Marker | name = Hostal dos Reis Católicos | type = see | lat = 42.88101 | long = -8.54572 | wikidata = Q155443 }} wurde als Pilgerhospiz 1498 von den katholischen Königen errichtet. Heute beherbergt es den wohl berühmtesten und auch teuersten Parador Spaniens. Es handelt sich hierbei um ein staatliches 5-Sterne-Hotel. Es befindet sich an der Nordseite der '''Praza do Obradoiro'''.
* Der {{Marker | name = Pazo de Raxoi | type = palace | wikidata = Q2513127 | lat = 42.88040 | long = -8.54611 }} ist der Sitz des galicischen Präsidenten. Er stammt aus dem Jahre 1777 und befindet sich an der Westseite der Praza do Obradoiro.
* Der {{Marker | name = Pazo de Xelmíres | type = see | lat = 42.88002 | long = -8.54553 }} (auch Palacio de Arzobispo) stammt aus dem 12./13. Jahrhundert. Das romanische Gebäude hat einen 32 Meter langen und 8 Meter breiten Festsaal und wird oft für Adelshochzeiten benutzt. Das Gebäude kann besichtigt werden. Er befindet sich an der südlichen Seite des Praza do Obradoiro. (Öffnungszeiten: Di-So 10:00-13:30 u. 16:30-19:30)
=== Denkmäler ===
* {{vCard|type=well |name=Pferdebrunnen |address=auf dem Plaza de Platerías |phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
=== Museen ===
* {{vCard | type = museum | name = Archäologisches Museum | name-local = Museo do Pobo Galego | url = http://www.museodopobo.es/ | email = info@museodopobo.com | lat = 42.88262 | long = -8.53912 | phone = +34 981-583620 | fax = +34 981-554840 | hours = 10:30-14:00 / 16:00-19:30, So 11:00-14:00 | price = 3.00/1.00€ | wikidata = Q3089563 | description =
}}
* {{vCard|type=museum|name=Museum der Kathedrale | name-local = Museo Catedral|address=Catedral de Santiago|phone=|email=|fax=|url=https://www.catedraldesantiago.es|hours=09:00-20:00 (Winter 10:00-20:00)|price=|lat=42.88052|long=-8.54522|directions=Eingang in der Kathedrale, im rechten Seitenschiff
}}
* {{vCard|type=museum|name=Pilgermuseum | name-local = Museo das Peregrinacións|address=Rúa de San Miguel, 4|phone=+34 981581558|email=informacion@mdperegrinacions.com|fax=+34 981581955|url=http://www.mdperegrinacions.com|hours=09:00-14:30|price=|lat=42.88221|long=-8.54274|description=wegen Umzug geschlossen bis November 2015
}}
* {{vCard | type = museum | name = Centro Galego de Arte Contemporánea | comment = moderne Kunst | url = http://www.cgac.org/ | email = cgac@xunta.es | address = Rúa Valle Inclán | lat = 42.88280 | long = -8.53967 | phone = +34 981 546619 | fax = +34 981 546625 | hours = 11:00-20:00 | wikidata = Q3397844 | description = }}
* {{vCard | type = museum | name = Museo Centro Gaias | address = Cidade da Cultura de Galicia, Edificio Museo Centro Gaiás, Monte Gaiás | wikidata = Q3290192 | lastedit = 2019-03-08 | description = s/n, 15707 Santiago de Compostela, La Coruña, Spanien }}
=== Parks ===
[[File:ES-santiago-2-marias.jpg|mini|Die zwei Marias]]
* {{Marker|type = park|name = Parque Alameda|url = http://www.parquealamedasantiago.com/|lat = 42.877126 |long = -8.547704|wikidata = Q53645922}} mit dem Aussichtspunkt {{Marker|type = see|name = Miradoiro de Catedral|lat = 42.878974|long = -8.549270}}
:* {{vCard | type = park | name = Caraballeira de Santa Susanana | wikidata = Q20535668 | description = Eichenhain bei der Kapelle Santa Susanna, er schließt an den Parque Alameda an, }}
:* '''[https://santiago-de-compostela.costasur.com/de/dos-marias.html Die zwei Marias]''' von Santiago de Compostela, zwei Statuen am Eingang des Parkes. Die beiden Schwestern gingen täglich um 2 Uhr im Park spazieren und zeigten ihre Alehnung des Franco-Regimes.
=== Verschiedenes ===
[[File:Santiago-pilgerbuero.JPG|thumb|Santiago de Compostela: Pilgerbüro]]
Im {{Marker | name = Pilgerbüro | type = tourist information | lat = 42.87965 | long = -8.54417 }} '''in der Casa do Deán''' in der Rua do Vilar erhalten diejenigen, welche die letzten 100 km des [[Jakobsweg|Jakobswegs]] bis zur Kathedrale zu Fuß oder die letzten 200 km per Fahrrad oder auf einem Reittier zurückgelegt haben, nach Vorlegen des abgestempelten Pilgerpasses die Pilgerurkunde, die '''Compostela'''.
== Aktivitäten ==
* In einer Seitenkapelle innerhalb der Kathedrale wird in der Pilgersaison täglich um 08:00 Uhr eine deutschsprachige Messe gefeiert.
* {{vCard|type=do |name=Deutschsprachige Pilgerseelsorge in Santiago de Compostela |address=|phone=|email=|fax= |url=https://www.auslandsseelsorge.de/pilgerseelsorge-santiago-de-compostela/ |hours=|price=|lat=|long=|lastedit=|description=Die Pilgerseelsorge bietet in der Pilgersaison täglich um 19.00 Uhr (ab 1. Oktober: 18.00 Uhr) eine Führung (sog. „geistlichen Rundgang“) um die Kathedrale an. Treffpunkt ist das Nordportal.}}
=== Feste ===
* {{vCard|type=festival |name=Ascencion |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=In der Woche rund um Christi Himmelfahrt gibt es auf dem Hügel des Park ''Alameda'' eine Art Kirmes mit vielen Fahrgeschäften speziell für Kinder und einem großen Riesenrad auf dem Hügel das dann über der Stadt thront.}}
== Einkaufen ==
[[File:Santiago-rua-do-vilar.JPG|thumb|Rua do Vilar]]
Zahlreiche Ladengeschäfte, die unter anderem Andenken und Devotionalien verkaufen, finden sich in der Fußgängerzone um die '''Rua do Vilar'''. Supermärkte haben in Santiago de Compostela Sonntags geschlossen.
=== Märkte ===
* {{vCard | type = market | name = Mercado de Abastos | url = https://www.mercadodeabastosdesantiago.com | lat = 42.879864 | long = -8.541299 | hours = Mo – Sa 8.00 – 15.00 Uhr, allerdings sind nicht immer alle Stände geöffnet | description = Die Markthallen finden sich in der ''Rua Ameás'' am östlichen Rand der Altstadt. }}
== Küche ==
* '''Tarta de Santiago''' ist ein Mandel-Kuchen mit einem Jakobskreuz (Cruz de Santiago) auf der Oberseite. Diese wird mit Puderzucker bestreut und das Kreuz wird ausgelassen. Der Kuchen besteht aus Mandeln, Zucker, Eier, geriebene Zitronenschale und natürlich Puderzucker, mancher gibt auch noch einen Schluck Likör dazu.
<div align="left"><gallery widths="220" heights="220">
Tarta de Santiago (4467497071).jpg|Tarta de Santiago
</gallery></div>
== Nachtleben ==
<!--=== Günstig ===
=== Mittel ===
=== Gehoben ===-->
== Unterkunft ==
[[File:ES-santiago-mirador-kathedral.jpg|mini|Blick vom Mirador im Parque Alameda]]
[[File:Santiago_Cidade_da_Cultura_01-06.JPG|mini|Cidade da Cultura]]
=== Günstig ===
Pilger, die die letzten 100 Kilometer zu Fuß oder die letzten 200 Kilometer per Fahrrad oder mit einem Pferd zurückgelegt haben, können hier günstig übernachten:
* {{vCard |type=hotel |name=Seminario Menor |address=Avda. Quiroga Palacios |phone=+34 981 589 200 |url=https://www.alberguesdelcamino.com/de/santiago/albergue-seminario-menor |email=santiago@alberguesdelcamino.com |description=60-300 Betten |price=Schlafsaal: 12€; Einzelzimmer: 15€}}
<!--* {{vCard |type=hotel |name=Herberge Acuario |url=http://www.acuariosantiago.com/de/index.php |address=Rua de Valiño |phone=+34 981 575 438|description=etwa 50 Betten |price=Schlafsaal: 12€}}-->
* {{vCard |type=hotel |name=Herberge San Lázaro |url=http://camino.xacobeo.es/en/hostels/hostel-san-lazaro-santiago-de-compostela |phone=+34 981 571 4881|description=etwa 80 Betten; max. 3 Nächte möglich |price=erste Nacht: 10€, Folgenächte: 7€}}
* {{vCard |type=hotel |name=Albergue Juan XIII |email=alberguesanfrancisco@gmail.com |url=https://www.alberguesanfrancisco.org |description=Refugio der Franziskaner, 25 Matratzen |address=Rúa des Castineiros |price=Spende}}
* [https://www.yourspainhostel.com/z_1045_de/Santiago-de-compostela.html Hostels]
=== Mittel ===
* {{vCard|type=hotel |name=Nest Style Santiago|address=Rúa do Doutor Teixeiro, 15 15701 Santiago de Compostela , A Coruña, Spagne|phone=+34 981 563 444|email=booking@neststylesantiago.com|fax=+34 981 589 653|url=http://neststylehotels.com/hotel-en-santiago/|hours=00:00-24:00|price=|lat = 42.875159 | long = -8.54504}}
=== Gehoben ===
* {{vCard|type=hotel |name=NH Collection|address=Av. do Burgo das Nacións, s/n, 15705 Santiago de Compostela, A Coruña|url=https://www.nh-collection.com/de/hotel/nh-collection-santiago-de-compostela}}
<!--
== Lernen ==
== Arbeiten ==
== Sicherheit ==-->
== Gesundheit ==
== Praktische Hinweise ==
* {{vCard|type=tourist information|name=Turismo de Santiago|address=Rúa do Vilar, 63|phone=++34 981 555 129|email=info@santiagoturismo.com|fax=|url=https://www.santiagoturismo.com|hours=09:00-19:00, Sa/So 09:00-14:00/16:00-19:00|price=|lat=42.87815|long=-8.54479|description= kommunale Touristeninformation}}
* das {{Marker | name = Hauptpostamt | name-map = Oficina de Correos | type = post | lat = 42.87884 | long = -8.54519 }} liegt an der '''Rua do Franco,4'''
* Unter dem '''Pazo de Raxoi''' befindet sich eine Polizeistation sowie ein öffentliches WC
== Ausflüge ==
* zum '''Ende der Welt''' in [[Fisterra]], wo für die ganz unentwegten Pilger der Jakobsweg an der Atlantikküste seinen Abschluss findet.
* an die Badestrände der [[Rías Baixas]]
== Literatur ==
== Weblinks ==
* [https://www.santiagoturismo.com/ Tourist-Info des Verkehrsvereins]
* [http://www.santiagodecompostela.org/english.php?lg=ing Stadtverwaltung] (englisch), [http://www.santiagodecompostela.org/deutche.php Deutsche Kurzfassung]
* [https://santiago-de-compostela.costasur.com/de/index.html Kommerzielle Seite über Sehenswürdigkeiten und Tourismus]
{{Navigationsleiste Kulturhauptstädte Europas}}
{{GeoData| lat= 42.88025| long= -8.54484| radius= }}
{{IstInKat|A Coruña (Provinz)}}
{{Unesco|Kontinent = Europa |Spanien}}
{{class-3}}
[[Kategorie:Pilgerorte in Europa]]
h2t4c467su53jrapw4un8pttbxrxvzx
1769109
1769108
2026-04-16T21:19:58Z
Scholless
15050
/* Nachtleben */ gestrafft
1769109
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Santiago de Compostela''' ist ein Wallfahrtsort im [[Spanien|spanischen]] [[Galicien]] mit der zum [[Welterbe/Europa#Spanien|Welterbe]] gehörenden Kathedrale.
== Hintergrund ==
Der Namensgeber der Stadt ist der Heilige Jakob (Sant Jago), dessen Grab im 9. Jahrhundert ein Einsiedler auf einem Sternenfeld (lat. Campus stellae > Compostela) gefunden haben will. Kurz darauf wurde eine Siedlung gegründet, die schnell zu einer Stadt wuchs. Santiago wurde zu einem geistigen Zentrum des Kampfes gegen die Mauren, weshalb im Jahre 997 durch den Emir von Córdoba der Feldherr Almansor nach Compostela geschickt wurde. Dieser fackelte nicht lange und zerstörte die rund 100 Jahre alte Pfeilerbasilika mit den ihr umgebenden Gebäuden. Doch von diesem Schicksalsschlag erholte sich die Stadt recht schnell. Bereits 1188 war die romanische Kathedrale an der Stelle der zerstörten Basilika errichtet. Mit der Reformation in Europa flaute der Pilgerstom nach Santiago immer mehr ab, und die Stadt wurde immer mehr zu einer bloßen Randerscheinung. Dies änderte sich Ende des 18. Jahrhunderts, als Pilger wieder begannen, nach Santiago zu reisen. Das Franco-Regime nutzte die Stadt und ihren Heiligen zu propagandistischen Zwecken. Ab 1933 wurde eine Spende an die Kathedrale per Gesetz eingeführt. 1981, als Galizien den neuen Autonomiestatus erhielt, wurde hier der Sitz des Präsidenten und des galizischen Parlaments eingerichtet, obwohl Santiago administrativ der Provinzhauptstadt A Coruña unterstellt ist.
== Anreise ==
=== Mit dem Flugzeug ===
{{Mapframe|42.88|-8.54|width = 350|height = 450|zoom=14}}
{{vCard | name = Flughafen Santiago de Compostela | type = airport | wikidata = Q1432777 | description = Er liegt rund 11 Kilometer östlich der Stadt. Angeflogen wird der Flughafen u.a. von Basel-Mulhouse, Genf, Zürich und Frankfurt aus.
}}
Zwischen dem Stadtzentrum und dem Flughafen verkehren alle 30 Minuten Shuttlebusse. Der Bus fährt in Santiago von der Haltestelle „Rúa do Doutor Teixeiro“ von 6:00 bis 0:00 und hält unter anderem auch am „Plaza de Galicia“ und am {{Marker Kopie |name=Busbahnhof von Santiago }} Busbahnhof. Vom Flughafen nach Santiago fährt der erste Shuttlebus um 6:45 und der letzte um 0:45 Uhr. Die Fahrt kostet 3 €, ein Ticket für die Hin- und Rückfahrt 5 € {{Stand|2015|09}}.<br />
Mit dem Privat- oder Mietwagen kann der Flughafen vom Stadtzentrum aus über die '''N 634a''' erreicht werden.
=== Mit der Bahn ===
Der {{Marker | name = Bahnhof Santiago de Compostela | type = train | lat = 42.87074 | long = -8.54477 | wikidata = Q8841900 }} liegt südlich der Altstadt am Ende der ''Rúa do Hórreo''. Dort halten annähernd stündlich Züge der [http://www.renfe.com/viajeros/ Renfe] von/nach [[A Coruña]] (Fahrtzeit ca. 30 Minuten), [[Ourense]] (40 Minuten), außerdem siebenmal am Tag von/nach [[Vigo]] (Fahrtzeit 1½ Stunden).
Im Fernverkehr halten dreimal pro Tag Alvia-Hochgeschwindigkeitszüge von/nach [[Madrid]]-Chamartín (5 Std.) sowie einmal am Tag ein Intercity von [[Irun]] an der spanisch-französischen Grenze und Donostia/San Sebastian (10½ Std.) über Burgos (7½ Std.) und [[León (Spanien)|León]] (5:15 Std).
Extrem luxuriös ankommen kann man mit den touristischen Sonderzügen des [[Kantabrien#Transcantábrico|Transcantábrico]], dessen einwöchige Nordspanien-Rundfahrten immer hier Halt machen.
=== Mit dem Bus ===
* {{vCard|type=bus|name=Busbahnhof von Santiago|address=Plaza Camilo Díaz Baliño|phone=+34 981 542 416|email=|fax=|url=http://www.tussa.org|hours=6:00-22:00|price=|lat=42.88796|long=-8.53290}}
* Es fahren unter anderem internationale Busse der [http://www.alsa.es/portal/site/Alsa ALSA] zu und von einer Vielzahl von Städten auch im deutschsprachigen Bereich.
=== Auf der Straße ===
Von [[A Coruña]] aus führt die Autobahn {{RSIGN|ES|AP|9}} '''Autopista AP-9''' (E1) an der Stadt '''Santiago''' vorbei bis nach [[Vigo]] und zur Grenze nach [[Portugal]], parallel dazu verläuft die nicht mautpflichtige '''N-550'''.<br />
Von [[Lugo]] im Osten resp. von der {{RSIGN|ES|A|6}} '''Autovía A-6''' aus führt die '''N-540''' südwestlich, bis nach 16 km auf die '''N-547''' gewechselt werden muss, um dan aus östlicher Richtung '''Santiago de Compostela''' zu erreichen. Die '''N-547''' endet in der {{RSIGN|ES|A|54}} '''Autovía del Aeroporto A-54''' ins Stadtzentrum.<br />
Die mautpflichtige {{RSIGN|ES|AP|53}} '''Autopista AP-53''' führt in südöstlicher Richtung nach Ourense, wo sie auf die westwärts führende {{RSIGN|ES|A|52}} '''Autovía A-52''' in Richtung [[León (Spanien)|León]] führt. Begleitet wird sie von der nicht mautpflichtigen '''N-525'''.<br />
Die '''AG-56''' resp. die im Bau befindliche '''CG-1.5''' und parallel die '''AC-543''' führen westwärts nach [[Noia]] an der [[Ría de Muros]] und weiter in Richtung [[Fisterra]].
=== Mit dem Fahrrad ===
Santiago ist der Endpunkt des europäischen Fernradwegs [[EuroVelo 3]] (auch „Pilgerroute“ oder „La Scandibérique“ genannt), der von Skandinavien durch Nordwestdeutschland, Belgien und Frankreich hierher führt. Die spanische Post bietet den Service, das Fahrrad in einer Transportverpackung zurück zu schicken.
=== Zu Fuß ===
Der traditionelle Weg nach Santiago de Compostela ist die Fußwanderung, auf dem [[Jakobsweg|Pilgerweg ('''Jakobsweg''')]]. Hier ist der Endpunkt aller Jakobswege: [[Camino Francés]] von der französischen Grenze in den Pyrenäen, Camino del Norte an der spanischen Nordküste entlang, Camino de Madrid, Caminho Português von Lissabon sowie der Camino a Fisterra vom/zum [[Cabo Fisterra]] am Westende des europäischen Festlands.
== Mobilität ==
<!-- {{Maps|42.8807|-8.5431|17|O|Stadtplan}}-->
Die Altstadt ist verkehrsberuhigt und daher ist die Erkundung zu Fuß fast unumgänglich. Die Sehenswürdigkeiten befinden sich allerdings weitgehend innerhalb der Altstadt und sind innerhalb von wenigen Minuten zu erreichen. In der Nähe der Altstadt gibt es mehrere gut ausgeschilderte Parkplätze wie den Platz an der {{Marker|type = parking|name = Av. de Xoán XXIII|lat = 42.884214|long = -8.544548}}. In dem Parkhaus gibt es auch öffentliche Toiletten
Ein kommunales Busnetz mit ca. 20 Linien wird von der städtischen Busgesellschaft [http://www.tussa.org TUSSA] unterhalten. Eine Vielzahl der Bushaltestellen ist als solche nicht erkennbar, es ist hilfreich Einheimische nach der nächsten Bushaltestelle zu fragen. Erschwerend kommt hinzu, dass in den Bussen die Haltestellen nicht angekündigt werden.
== Sehenswürdigkeiten ==
=== Straßen und Plätze ===
[[File:Santiago-plaza-del-obradorio.JPG|thumb|Praza del Obradoiro]]
Um die {{marker|type= square|lat=42.88045|long= -8.54571|name= Praza do Obradoiro|wikidata=Q7638209}} sind die '''Kathedrale''', der '''Sitz des Galizischen Präsidenten''', der '''Bischofspalast''' und das '''Hostal dos Reis Católicos''' (heute Staatshotel [[w:Parador|Parador Nacional]]) angeordnet, womit schon 5 der wichtigen Sehenswürdigkeiten der Stadt erwähnt sind. Umgeben sind sie von den Gässchen der Altstadt mit malerischen Häusern, häufig mit typischen verglasten Balkonen.
=== Kirchen ===
Santiago hat 15 Kirchen, darunter als bedeutendste die 1120 vollendete romanische Kathedrale mit zwei 78 m hohen Türmen, dreischiffigem Querhaus und dem angeblichen Grab des Apostels Jakobus (d. Ä.), des Schutzpatrons von Spanien, dazu kommen mehrere ehemalige Klöster.
==== Kathedrale ====
{{Scroll Gallery
|title = Kathedrale
|Image:Santiago GDFL catedral 050318 38.jpg|Kathedrale
|Image:Santiago Cathedral 200408.jpg|Obradoiro - Fassade
|Image:2010-Catedral de Santiago de Compostela-Galicia (Spain) 4.jpg|upright{{!}}Obradoiro - Fassade
|Image:Interior Catedral Santiago de Compostela.jpg|Pórtica di Gloria
|Image:Santiago catedral GDFL050914 030.JPG|Torre de la Carraca (Nordturm)
|Image:Santiago Catedral torre GDFL.jpg|upright{{!}}Torre de las Campanas (Südturm)
|Image:Spain.Santiago.de.Compostela.Catedral.Puerta.Meridional.jpg|Puerta de las Praterías (Südseite)
|Image:Santiago-seitenpforte-re.JPG|{{Hochkant|0.6}}Torre del Reloj
|Image:Santiago GDFL catedral 050318 40.jpg|{{Hochkant|0.6}}Torre del Reloj / Torre de la Berenguela
|Image:Cathedral square Santiago de Compostela.jpg|Azabachería-Fassade (Nordseite)
|Image:Catedral de Santiago-azabacheria.jpg|Azabachería-Fassade
|Image:Santiago-azabacheria-fassade.JPG|Puerta de la Azabachería
|Image:Puerta del Perdón Santiago.de.Compostela.jpg|Puerta Santa / Puerta del Perdón (Ostseite)
}}
{{Scroll Gallery
|title = Kathedrale, im Innern
|Image:Santiago Catedral 060510 001.jpg|Hauptalter, hinter der Statue des Hl. Jakobus passieren Pilger
|Image:Santiago-kathedrale-innen.JPG|upright{{!}}Hauptalter mit der Statue des Hl. Jakobus
|Image:Santiago Catedral Botafumeiro.jpg|Botafumeiro (Räuchergefäß)
|Image:Botafumeiro-santiago-copostela.ogv|Botafumeiro im Einsatz
|Image:SantCompostela93.jpg|upright{{!}}Krypta mit Reliquiar des Hl. Jakobus
}}
* {{vCard | name = Kathedrale von Santiago de Compostela | type = church | wikidata = Q205136 | description = Sie ist mindestens der dritte an dieser Stelle errichtete Sakralbau. Der Bau der heutigen Kathedrale wurde um 1075/77 begonnen. Zu Beginn als romanische Kathedrale geplant, wurde der Bau während der langen Bauzeit – wie es so üblich war – in den aktuellen Stilrichtungen abgeändert.
}}
Sie wurde 1985 zum [[Welterbe/Europa#Spanien|UNESCO-Weltkulturerbe]] erklärt.
Die '''Obradoiro-Fassade''' ist die Westfassade zum '''Praza do Obradoiro'''. Sie wurde im 18. Jahrhundert fertiggestellt und ist im üppigen Stil des Barock gehalten. Sie verdeckt nun die frühere Fassade, von der nur das Glorienportal noch erhalten ist.
Der Nordturm wird '''Carraca''' benannt, der Südturm '''Campanas''' (Glockenturm). Beide haben einen Aufbau im Barockstil auf dem unteren romanischen Turmteil.
Die '''Praterías-Fassade''' ist die Südfassade des Kreuzschiffes. Es handelt sich um die einzige Fassade, an der die romanische Struktur noch erhalten ist.
Der '''Uhrenturm''' (Torre del Reloj) wurde im 16. Jahrhundert errichtet und ist ein Werk des Rodrigo Gill de Hontañón; er befindet sich an der Südostecke des südlichen Seitenschiffes. An der Südostecke des Südanbaus befindet sich der '''Schatzturm''' (Torre del Tesoro).
An der Ostseite befinden sich das '''Königsportal''' und die '''Heilige Pforte'''. Die heilige Pforte ('''Puerta Santa''') ist die zweite von rechts an der östlichen Seite der Kathedrale, sie wird nur während des Compostelanischen Heiligen Jahres geöffnet. Diese Festlichkeit wird seit dem 12. Jahrhundert in dem Jahr begangen begangen, in dem der Namenstag des Apostels, der 25. Juli, auf einen Sonntag fällt. Es dauert immer vom Nachmittag des 31. Dezember bis zum nächsten 31. Dezember.
Auf der Nordseite befindet sich die '''Azabachería-Fassade''' zum gleichnamigen Platz. Früher wurde sie Paradies-Fassade genannt. Hier endet der [[Camino Francés|französische Jakobsweg]], welcher der meistbegangene ist. Bei dieser Fassade befinden sich die ersten klassizistischen Elemente, die in Compostela zur Anwendung kammen.
Der '''Innenraum der Kathedrale''' wird vom '''Hauptaltar''', der sich über dem Apostelgrab befindet, dominiert.
Hinter dem '''Hauptaltar''' befindet sich die über eine Seitenpforte mit einigen Treppenstufen erreichbare '''Camarín''' (St.-Jakobs-Nische), in ihr befindet sich die Sitzstatue des Jakobus als Meister. Es ist Brauch, dass die Pilger die Statue nach Erfüllung ihrer Pflichten umarmen. Deshalb hat die Steinstatue eine Heiligenschein, da viele ihren Hut auf seinen Kopf legen, um ihn besser umarmen zu können. Ein eigenartiges Schauspiel ist es, wenn sogar während der Messe der Strom der Pilger hinter der Jakobus-Statue auf dem Hauptalter nicht abbricht.
Eine weitere Besonderheit ist der '''Botafumeiro'''. Das gewaltige an einem Seil hängende Räuchergefäß wird von einer kräftigen Mannschaft in Schwingung versetzt und pendelt bis weit gegen das Dach des Querschiffs hinauf.
In der '''Krypta''', hinter dem Hauptaltar, befindet sich das Grabmal des Jakobs und seiner beiden Begleiter Athanasios und Theodoros.
Das '''Glorienportal''' ist nun von der Obradorio-Fassade verdeckt. Das reich verzierte Portal wurde im Auftrag von Ferdinand II. von seinem Hofarchitekten Mateo gestaltet. Das Portal spiegelt den Glaubenssatz ''Mitbürger der Heiligen und Hausgenossen Gottes sind aufgebaut auf dem Fundament der Apostel und Propheten'' wider. Die Mitte dominiert ein fast drei Meter hohe sitzender Jesus, bei ihm halten die vier Evangelisten Wache.
Führungen durch die Kathedrale (etwa der Dachrundgang) müssen z. T. vorab reserviert werden, dies kann [https://tickets.catedraldesantiago.es/site/CatedralDeSantiago/?lang=en online] oder vor Ort erfolgen. Pilger mit Pilgerausweis erhalten eine Preisermäßigung.
=== Burgen, Schlösser und Paläste ===
{{Scroll Gallery
|title = Paläste in Santiago
|Image:Santiago Hostal Obradoiro.jpg|Hostal dos Reis Católicos
|Image:SantCompostela98.jpg|upright{{!}}Hostal dos Reis Católicos
|Image:Santiago-abtei-san-martin.JPG|Abtei San Martín Pinario
|Image:Santiago concello GDFL050914 040.jpg|Pazo de Raxoi
|Image:Santiago-pazo-de-raxoi.JPG|Pazo de Raxoi
|Image:Santiago-pazo-fonseca.JPG|Pazo de Fonseca
|Image:Santiago fonseca GDFL050914 038.jpg|Pazo de Fonseca
|Image:Santiago Pazo de Fonseca 5.jpg|upright{{!}}Pazo de Fonseca
|Image:Santiago-casa-del-cabildo.JPG|Casa del Cabildo (Domkapitel)
}}
* Das {{Marker | name = Hostal dos Reis Católicos | type = see | lat = 42.88101 | long = -8.54572 | wikidata = Q155443 }} wurde als Pilgerhospiz 1498 von den katholischen Königen errichtet. Heute beherbergt es den wohl berühmtesten und auch teuersten Parador Spaniens. Es handelt sich hierbei um ein staatliches 5-Sterne-Hotel. Es befindet sich an der Nordseite der '''Praza do Obradoiro'''.
* Der {{Marker | name = Pazo de Raxoi | type = palace | wikidata = Q2513127 | lat = 42.88040 | long = -8.54611 }} ist der Sitz des galicischen Präsidenten. Er stammt aus dem Jahre 1777 und befindet sich an der Westseite der Praza do Obradoiro.
* Der {{Marker | name = Pazo de Xelmíres | type = see | lat = 42.88002 | long = -8.54553 }} (auch Palacio de Arzobispo) stammt aus dem 12./13. Jahrhundert. Das romanische Gebäude hat einen 32 Meter langen und 8 Meter breiten Festsaal und wird oft für Adelshochzeiten benutzt. Das Gebäude kann besichtigt werden. Er befindet sich an der südlichen Seite des Praza do Obradoiro. (Öffnungszeiten: Di-So 10:00-13:30 u. 16:30-19:30)
=== Denkmäler ===
* {{vCard|type=well |name=Pferdebrunnen |address=auf dem Plaza de Platerías |phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
=== Museen ===
* {{vCard | type = museum | name = Archäologisches Museum | name-local = Museo do Pobo Galego | url = http://www.museodopobo.es/ | email = info@museodopobo.com | lat = 42.88262 | long = -8.53912 | phone = +34 981-583620 | fax = +34 981-554840 | hours = 10:30-14:00 / 16:00-19:30, So 11:00-14:00 | price = 3.00/1.00€ | wikidata = Q3089563 | description =
}}
* {{vCard|type=museum|name=Museum der Kathedrale | name-local = Museo Catedral|address=Catedral de Santiago|phone=|email=|fax=|url=https://www.catedraldesantiago.es|hours=09:00-20:00 (Winter 10:00-20:00)|price=|lat=42.88052|long=-8.54522|directions=Eingang in der Kathedrale, im rechten Seitenschiff
}}
* {{vCard|type=museum|name=Pilgermuseum | name-local = Museo das Peregrinacións|address=Rúa de San Miguel, 4|phone=+34 981581558|email=informacion@mdperegrinacions.com|fax=+34 981581955|url=http://www.mdperegrinacions.com|hours=09:00-14:30|price=|lat=42.88221|long=-8.54274|description=wegen Umzug geschlossen bis November 2015
}}
* {{vCard | type = museum | name = Centro Galego de Arte Contemporánea | comment = moderne Kunst | url = http://www.cgac.org/ | email = cgac@xunta.es | address = Rúa Valle Inclán | lat = 42.88280 | long = -8.53967 | phone = +34 981 546619 | fax = +34 981 546625 | hours = 11:00-20:00 | wikidata = Q3397844 | description = }}
* {{vCard | type = museum | name = Museo Centro Gaias | address = Cidade da Cultura de Galicia, Edificio Museo Centro Gaiás, Monte Gaiás | wikidata = Q3290192 | lastedit = 2019-03-08 | description = s/n, 15707 Santiago de Compostela, La Coruña, Spanien }}
=== Parks ===
[[File:ES-santiago-2-marias.jpg|mini|Die zwei Marias]]
* {{Marker|type = park|name = Parque Alameda|url = http://www.parquealamedasantiago.com/|lat = 42.877126 |long = -8.547704|wikidata = Q53645922}} mit dem Aussichtspunkt {{Marker|type = see|name = Miradoiro de Catedral|lat = 42.878974|long = -8.549270}}
:* {{vCard | type = park | name = Caraballeira de Santa Susanana | wikidata = Q20535668 | description = Eichenhain bei der Kapelle Santa Susanna, er schließt an den Parque Alameda an, }}
:* '''[https://santiago-de-compostela.costasur.com/de/dos-marias.html Die zwei Marias]''' von Santiago de Compostela, zwei Statuen am Eingang des Parkes. Die beiden Schwestern gingen täglich um 2 Uhr im Park spazieren und zeigten ihre Alehnung des Franco-Regimes.
=== Verschiedenes ===
[[File:Santiago-pilgerbuero.JPG|thumb|Santiago de Compostela: Pilgerbüro]]
Im {{Marker | name = Pilgerbüro | type = tourist information | lat = 42.87965 | long = -8.54417 }} '''in der Casa do Deán''' in der Rua do Vilar erhalten diejenigen, welche die letzten 100 km des [[Jakobsweg|Jakobswegs]] bis zur Kathedrale zu Fuß oder die letzten 200 km per Fahrrad oder auf einem Reittier zurückgelegt haben, nach Vorlegen des abgestempelten Pilgerpasses die Pilgerurkunde, die '''Compostela'''.
== Aktivitäten ==
* In einer Seitenkapelle innerhalb der Kathedrale wird in der Pilgersaison täglich um 08:00 Uhr eine deutschsprachige Messe gefeiert.
* {{vCard|type=do |name=Deutschsprachige Pilgerseelsorge in Santiago de Compostela |address=|phone=|email=|fax= |url=https://www.auslandsseelsorge.de/pilgerseelsorge-santiago-de-compostela/ |hours=|price=|lat=|long=|lastedit=|description=Die Pilgerseelsorge bietet in der Pilgersaison täglich um 19.00 Uhr (ab 1. Oktober: 18.00 Uhr) eine Führung (sog. „geistlichen Rundgang“) um die Kathedrale an. Treffpunkt ist das Nordportal.}}
=== Feste ===
* {{vCard|type=festival |name=Ascencion |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=In der Woche rund um Christi Himmelfahrt gibt es auf dem Hügel des Park ''Alameda'' eine Art Kirmes mit vielen Fahrgeschäften speziell für Kinder und einem großen Riesenrad auf dem Hügel das dann über der Stadt thront.}}
== Einkaufen ==
[[File:Santiago-rua-do-vilar.JPG|thumb|Rua do Vilar]]
Zahlreiche Ladengeschäfte, die unter anderem Andenken und Devotionalien verkaufen, finden sich in der Fußgängerzone um die '''Rua do Vilar'''. Supermärkte haben in Santiago de Compostela Sonntags geschlossen.
=== Märkte ===
* {{vCard | type = market | name = Mercado de Abastos | url = https://www.mercadodeabastosdesantiago.com | lat = 42.879864 | long = -8.541299 | hours = Mo – Sa 8.00 – 15.00 Uhr, allerdings sind nicht immer alle Stände geöffnet | description = Die Markthallen finden sich in der ''Rua Ameás'' am östlichen Rand der Altstadt. }}
== Küche ==
* '''Tarta de Santiago''' ist ein Mandel-Kuchen mit einem Jakobskreuz (Cruz de Santiago) auf der Oberseite. Diese wird mit Puderzucker bestreut und das Kreuz wird ausgelassen. Der Kuchen besteht aus Mandeln, Zucker, Eier, geriebene Zitronenschale und natürlich Puderzucker, mancher gibt auch noch einen Schluck Likör dazu.
<div align="left"><gallery widths="220" heights="220">
Tarta de Santiago (4467497071).jpg|Tarta de Santiago
</gallery></div>
== Nachtleben ==
== Unterkunft ==
[[File:ES-santiago-mirador-kathedral.jpg|mini|Blick vom Mirador im Parque Alameda]]
[[File:Santiago_Cidade_da_Cultura_01-06.JPG|mini|Cidade da Cultura]]
=== Günstig ===
Pilger, die die letzten 100 Kilometer zu Fuß oder die letzten 200 Kilometer per Fahrrad oder mit einem Pferd zurückgelegt haben, können hier günstig übernachten:
* {{vCard |type=hotel |name=Seminario Menor |address=Avda. Quiroga Palacios |phone=+34 981 589 200 |url=https://www.alberguesdelcamino.com/de/santiago/albergue-seminario-menor |email=santiago@alberguesdelcamino.com |description=60-300 Betten |price=Schlafsaal: 12€; Einzelzimmer: 15€}}
<!--* {{vCard |type=hotel |name=Herberge Acuario |url=http://www.acuariosantiago.com/de/index.php |address=Rua de Valiño |phone=+34 981 575 438|description=etwa 50 Betten |price=Schlafsaal: 12€}}-->
* {{vCard |type=hotel |name=Herberge San Lázaro |url=http://camino.xacobeo.es/en/hostels/hostel-san-lazaro-santiago-de-compostela |phone=+34 981 571 4881|description=etwa 80 Betten; max. 3 Nächte möglich |price=erste Nacht: 10€, Folgenächte: 7€}}
* {{vCard |type=hotel |name=Albergue Juan XIII |email=alberguesanfrancisco@gmail.com |url=https://www.alberguesanfrancisco.org |description=Refugio der Franziskaner, 25 Matratzen |address=Rúa des Castineiros |price=Spende}}
* [https://www.yourspainhostel.com/z_1045_de/Santiago-de-compostela.html Hostels]
=== Mittel ===
* {{vCard|type=hotel |name=Nest Style Santiago|address=Rúa do Doutor Teixeiro, 15 15701 Santiago de Compostela , A Coruña, Spagne|phone=+34 981 563 444|email=booking@neststylesantiago.com|fax=+34 981 589 653|url=http://neststylehotels.com/hotel-en-santiago/|hours=00:00-24:00|price=|lat = 42.875159 | long = -8.54504}}
=== Gehoben ===
* {{vCard|type=hotel |name=NH Collection|address=Av. do Burgo das Nacións, s/n, 15705 Santiago de Compostela, A Coruña|url=https://www.nh-collection.com/de/hotel/nh-collection-santiago-de-compostela}}
<!--
== Lernen ==
== Arbeiten ==
== Sicherheit ==-->
== Gesundheit ==
== Praktische Hinweise ==
* {{vCard|type=tourist information|name=Turismo de Santiago|address=Rúa do Vilar, 63|phone=++34 981 555 129|email=info@santiagoturismo.com|fax=|url=https://www.santiagoturismo.com|hours=09:00-19:00, Sa/So 09:00-14:00/16:00-19:00|price=|lat=42.87815|long=-8.54479|description= kommunale Touristeninformation}}
* das {{Marker | name = Hauptpostamt | name-map = Oficina de Correos | type = post | lat = 42.87884 | long = -8.54519 }} liegt an der '''Rua do Franco,4'''
* Unter dem '''Pazo de Raxoi''' befindet sich eine Polizeistation sowie ein öffentliches WC
== Ausflüge ==
* zum '''Ende der Welt''' in [[Fisterra]], wo für die ganz unentwegten Pilger der Jakobsweg an der Atlantikküste seinen Abschluss findet.
* an die Badestrände der [[Rías Baixas]]
== Literatur ==
== Weblinks ==
* [https://www.santiagoturismo.com/ Tourist-Info des Verkehrsvereins]
* [http://www.santiagodecompostela.org/english.php?lg=ing Stadtverwaltung] (englisch), [http://www.santiagodecompostela.org/deutche.php Deutsche Kurzfassung]
* [https://santiago-de-compostela.costasur.com/de/index.html Kommerzielle Seite über Sehenswürdigkeiten und Tourismus]
{{Navigationsleiste Kulturhauptstädte Europas}}
{{GeoData| lat= 42.88025| long= -8.54484| radius= }}
{{IstInKat|A Coruña (Provinz)}}
{{Unesco|Kontinent = Europa |Spanien}}
{{class-3}}
[[Kategorie:Pilgerorte in Europa]]
2i3bkyzrnbgdpe3bbz0wrv9mkjqfota
Venetien
0
6300
1769033
1745867
2026-04-16T16:14:23Z
Qualitätssicherung
50648
/* Küche */ Redundanz zum wortgleichen Hauptartikel „Essen und Trinken in Venetien“ entfernt
1769033
wikitext
text/x-wiki
{{Quickbar Region Italien}}
Die Region '''Venetien''' (ital. ''Veneto'') liegt im Nordosten [[Italien]]s. Die Hauptstadt ist [[Venedig]].
== Regionen ==
[[Datei:Map of region of Veneto, Italy, with provinces-it.svg|300px|thumb|Administrative Gliederung von Venetien]]
Administrativ ist Venetien in 7 Provinzen gegliedert:
* [[Belluno (Provinz)|Belluno (BL)]],
* [[Padua (Provinz)|Padua (PD)]], ''Padova''
* [[Rovigo (Provinz)|Rovigo (RO)]]
* [[Treviso (Provinz)|Treviso (TV)]]
* [[Venedig (Provinz)|Venedig (VE)]], ''Venezia''
* [[Verona (Provinz)| Verona (VR)]]
* [[Vicenza (Provinz)|Vicenza (VI)]]
Landschaftlich lässt sich die Region unterteilen in eine Berglandschaft und in eine Tiefebene. Die Berglandschaft erstreckt sich von den Dolomiten bis zu den Voralpen. Hier liegen
* '''[[Cadore]]''' - Tal des Flusses Piave zwischen den Dolomiten im Norden und der Stadt [[Belluno]] im Süden. Dem Cadore schließt sich das
* '''[[Val Belluna]]''', das Tal der Piave zwischen [[Belluno]] und [[Feltre]], an.
* '''[[Valle d' Ampezzo]]''' - Dieses Dolomitental mit dem Ferienort [[Cortina d’Ampezzo]] mündet in das Cadore-Tal.
* '''[[Sieben Gemeinden]]''' (''Sette Comuni'') - deutsche Sprachinsel an der Grenze zu [[Trentino-Südtirol]]; Hauptort [[Asiago]].
* Das Ostufer des '''[[Gardasee|Gardasees]]''' gehört ebenfalls zu Venetien.
Der größte Teil der Region liegt in einer Tiefebene, nur unterbrochen von einigen Hügellandschaften:
* '''Venetische Poebene''' siehe die Artikel [[Padua (Provinz)]], [[Treviso (Provinz)]] und [[Rovigo (Provinz)]]
* '''Venetische Adriaküste''' mit Lagunen rund um [[Venedig]], siehe Artikel [[Venedig (Provinz)]]
== Orte ==
{{Mapframe |zoom=7|width = 350|height = 350}}{{mapshape|type = geoline}}
[[Bild:Canal Grande Chiesa della Salute e Dogana dal ponte dell Accademia.jpg|mini|Venedig]]
* {{Marker | type=city | wikidata=Q641 | name= [[Venedig]] }} – einzigartige Lagunenstadt, alte Kunstmetropole und Hauptstadt Venetiens
[[Datei:Arena-XE3F2406a.jpg|mini|Arena von Verona]]
* {{Marker | type=city | wikidata=Q617 | name= [[Padua]] }} – alte und renommierte Universitätsstadt, Wallfahrtsort des Heiligen Antonius
* {{Marker | type=city | wikidata=Q5475 | name= [[Treviso]] }}
* {{Marker | type=city | wikidata=Q2028 | name= [[Verona]] }} – mit der römischen Arena und Handlungsort von ''Romeo und Julia''
* {{Marker | type=city | wikidata=Q6537 | name= [[Vicenza]] }} – Stadt der Villen des Renaissance-Architekten Palladio
* {{Marker | type=city | wikidata=Q47094 | name= [[Bassano del Grappa]] }} – pittoreske Altstadt am Fuß der Voralpen mit berühmter Holzbrücke über die Brenta
* {{Marker | type=city | wikidata=Q6558 | name= [[Belluno]] }}
* {{Marker | type=city |wikidata = Q3512102|name =[[Bibione]]}} – Badeort an der nördlichen Adria
* {{Marker | type=city | wikidata=Q47248 | name= [[Caorle]] }}
* {{Marker | type=city |wikidata = Q41158|name =[[Cortina d’Ampezzo]]}} – mondäner Urlaubs- und Wintersportort (1224 m) in den östlichen Dolomiten
* {{Marker | type=city | wikidata=Q55416 | name= [[Chioggia]] }} – Hafenstadt im Süden der Lagune von Venedig, aufgrund der Ähnlichkeit zur großen Nachbarin „Klein-Venedig“ genannt
* {{Marker | type=city | wikidata=Q47281 | name= [[Jesolo]] }} – Badeort bei Venedig
* {{Marker | type=city | wikidata=Q47821 | name= [[Malcesine]] }} – am Ostufer des Gardasees
* {{Marker | type=city | wikidata=Q34434 | name= [[Montegrotto Terme]] }}
== Weitere Ziele ==
* '''[[Alleghe]]'''
* '''[[Dolomiten]]''' mit der [[Marmolata]] (höchste Erhebung in Venetien, 3343 Meter)
== Hintergrund ==
Auf Italienisch heißt die Region '''''Veneto''''', wobei die erste Silbe betont ist und das erste 'e' wie ein 'ä' klingt.
Benannt ist die Region nach dem '''Volk der [[w:Veneter (Adria)|Veneter]]''', das hier in der Antike siedelte. Im 2. Jahrhundert wurde Venetien nach und nach ins Römische Reich integriert, maßgeblich hierbei war die Gründung von [[Aquileia]], eine der wichtigsten Römerstädte in Oberitalien. Die römische Region ''Venetia'' gehörte zur Provinz ''Gallia Cisalpina'' und umfasste ungefähr die heutigen Regionen Venetien, [[Friaul-Julisch Venetien]] und [[Trentino-Südtirol]]. Sie werden bis heute manchmal unter der Bezeichnung ''Triveneto'' oder ''Tre Venezie'' (die „drei Venetien“) zusammengefasst. In der Völkerwanderungszeit zogen verschiedene germanische Völker durch die Region. Die venetische Küste gehörte vom 6. bis 11. Jahrhundert zum Oströmischen Reich, das Landesinnere hingegen zum Langobardenreich bzw. ab der Zeit Karls des Großen zum Frankenreich.
[[Datei:1516 Vittore Carpacci, The Lion of St Mark (detail) Tempera on canvas, Palazzo Ducale, Venice.jpg|mini|''Der Löwe von St. Markus'' (Gemälde von Vittore Carpaccio, 1516, ausgestellt im Dogenpalast Venedig)]]
Sehr prägend für die Geschichte Ventiens war die '''Republik Venedig'''. Der (nicht historisch überprüfbaren) Legende nach wurde Venedig im Jahr 421 gegründet. Der erste Doge (von lateinisch ''Dux''=‚Herzog‘ oder ‚Führer‘) wurde 697 gewählt, was als Anfangspunkt der venezianischen Adelsrepublik gilt. Im Jahr 828 wurden Reliquien des Heiligen Markus nach Venedig gebracht, er ist seither Schutzpatron der Stadt wie der Region. Der Markuslöwe (ein geflügelter Löwe mit Bibel) und die rot-goldene Flagge sind Symbole Venedigs wie Venetiens. Ab 840 erkannte das Frankenreich die Unabhängigkeit der Republik an, deren traditioneller Beiname ''Serenissima'' (‚die Durchlauchtigste‘) lautet.
[[Datei:Venezianische Kolonien.png|mini|Republik Venedig mit Kolonien und Stützpunkten]]
Im 10. Jahrhundert erwarb Venedig erste Kolonien rund um die Adria, bis nach [[Dalmatien]], damit begann sein Aufstieg zur Großmacht. Das Landesinnere Venetiens gehörte damals aber noch nicht zur Seefahrerrepublik, sondern zu verschiedenen Fürstentümern, insbesondere der Markgrafschaft Verona. Im Hochmittelalter entwickelten sich daraus mehrere, rivalisierende Stadtstaaten (Verona, Padua, Treviso und Vicenza), die unter der Herrschaft von Adelsfamilien standen (z. B. den Scaligern). Die Universität Padua wurde 1222 gegründet und ist damit eine der ältesten Europas.
Im 14. und 15. Jahrhundert griff die Herrschaft der Republik Venedig auch auf das Landesinnere, die sogenannte ''Terraferma'' (Festland) über. Damit entstand Venetien in seiner modernen Form. Am Übergang vom Mittelalter zur Neuzeit um 1500 dominierten Venedig und Genua den Handel im gesamten Mittelmeerraum, das venezianische Kolonialreich reichte bis nach [[Zypern]]. Das Territorium der Republik wurde im 15. bis 17. Jahrhundert mit damals modernen Festungen und Bastionen – sowohl zur Land- wie zur Seeseite – gesichert, deren Überreste heute zum Weltkulturerbe gehören. Mit der Expansion des Osmanischen Reichs im östlichen Mittelmeerraum im 15. und 16. Jahrhundert begann allerdings der Niedergang Venedigs.
Venedig und Venetien spielten eine prägende Rolle für die europäischen Kunstgeschichte, vor allem während der Spätgotik und der Renaissance. Im 16. Jahrhundert galt die ''venezianische Schule'' als das non-plus-ultra in der europäischen Malerei. Zu den bekanntesten Künstlern, die aus Venetien kamen oder hier tätig waren, gehören Giotto, Donatello, Giovanni Bellini, Tizian, Tintoretto und Bernardo Bellotto („Canaletto“). In der Architektur war Andrea Palladio der bedeutendste Renaissance-Baumeister in Oberitalien. Der wichtigste venezianische Komponist dürfte Antonio Vivaldi sein.
Die Republik Venedig endete 1797 mit der Eroberung durch Napoleon, Venetien gehörte anschließend zum napoleonischen Königreich Italien. Nach dem Wiener Kongress 1815 kam Ventien zum Königreich Lombardo-Venetien, einem Land des habsburgischen Kaisertum Österreich, Venedig war dessen Hauptstadt. Erst im Zuge des ''Risogimento'', der nationalen Einigung Italiens kam Venetien zum Königreich Italien. Im Ersten Weltkrieg verlief die Front zwischen Italien und Österreich durch den Norden Venetiens. Bei Vittorio Veneto fand eine der entscheidenden Schlachten statt.
Lange Zeit war Venetien eine relativ arme und kleinbäuerlich geprägte Region, aus der viele auswanderten (vor allem nach Brasilien, Argentinien und in die Schweiz). Im Zuge des italienischen Wirtschaftswunders der 1960er- und 70er-Jahre wandelte es sich hingegen zu einer der am stärksten industrialisierten und wirtschaftlich stärksten Regionen Italiens. Seither gibt es eine zunehmende autonomistische oder gar nationalistische Bewegung, die die Eigenständigkeit Venetiens betont und verstärkte Selbstverwaltung oder gar die Unabhängigkeit Venetiens anstrebt. Bei einem nicht verbindlichen Referendum im Oktober 2017 sprach sich bei einer Beteiligung von 57 % der Wahlberechtigten 98 % für eine stärkere Autonomie der Region innerhalb Italiens aus. Bis in die 1980er-Jahre war Venetien eine Hochburg der Christdemokraten, mit Wahlergebnissen von 50 bis 60 Prozent. Heute ist hier die Lega Nord (Liga Veneta) so stark wie nirgendwo sonst.
== Sprache ==
Umgangssprachen sind Italienisch und Venetisch. Letzteres ist kein Dialekt, sondern eine eigene romanische Sprache (darauf legen die Veneter großen Wert), die mit dem Italienischen, aber auch dem Rätoromanischen verwandt ist. Venetisch wird eher in umgangssprachlichen Situationen, mit Familie und Bekannten verwendet, Standard-Italienisch in offiziellen Kontexten und gegenüber Fremden.
In Venedig und Verona ist man sehr auf internationale Touristen eingestellt, hier kommt man gut mit Englisch oder sogar Deutsch zurecht. Wer sich außerhalb ausgetretener Touristenpfade bewegt, sollte sich aber möglichst zumindest um ein paar Brocken Italienisch bemühen.
== Anreise ==
=== Mit dem Flugzeug ===
Größter Flughafen der Region ist {{marker |type = airport |name = Flughafen Venedig „Marco Polo“ |wikidata = Q849347 |show = none}} mit zahlreichen Direktverbindungen aus dem deutschsprachigen Raum. Deutlich kleiner, aber ebenfalls direkt aus D/A/CH erreichbar, sind die Flughäfen {{marker |type = airport |name = Flughafen Verona „Valerio Catullo“ |wikidata = Q1433197 |show = none}} und der hauptsächlich von [[Ryanair]] genutzte {{marker |type = airport |name = Flughafen Treviso |wikidata = Q513474 |show = none}}.
=== Mit der Bahn ===
Im inneritalienischen Verkehr werden Venedig, [[Mestre]], [[Padua]], Verona und [[Vicenza]] von den Hochgeschwindigkeitszügen ''Frecciarossa'' und ''Italo'' bedient.
Aus dem deutschsprachigen Raum bieten sich vor allem Nacht- und Autoreisezüge an. ÖBB Nightjet-Linien führen von Wien über Klagenfurt oder von München über Salzburg nach Padua, Vicenza, Verona und Peschiera del Garda (mit Autotransport von Wien nach Verona) bzw. von Wien über Linz oder von München über Salzburg nach Treviso und Venedig. Daneben gibt es den UEX Urlaubs-Express von Hamburg-Altona über Hannover nach Verona.
Tagsüber fährt im Zweistundentakt der Eurocity von München über Innsbruck und Bozen nach Verona (Fahrtzeit insgesamt 5½ Stunden) und zweimal pro Tag der RailJet von Wien über Villach nach Venedig (7½ Std). Aus der Schweiz fährt nur einmal am Tag ein Eurocity von Zürich nach Verona, Padua und Venedig (Zürich–Verona in 5:20 Std.), ansonsten muss man in Mailand umsteigen.
=== Auf der Straße ===
Aus Deutschland (sowie Westösterreich und Südtirol) fährt man in der Regel über die Brenner-Autobahn bis Trient, und dann entweder auf der A22 weiter bis Verona, oder – wenn man lieber etwas langsamer reist – über die landschaftlich schöne SS47 durch das in die Voralpen geschnittene Suganatal nach Bassano del Grappa und Padua.
Aus dem Osten und Süden Österreichs gelangt man über die Süd- (A2) bzw. Alpe-Adria-Autobahn (A23) an Villach und Udine vorbei in die Gegend von Venedig. Aus der Schweiz führt die Route typischerweise durchs Tessin, vorbei an Mailand, Brescia und dem Südufer des Gardasees.
Wenn man es besonders szenisch haben will, kann man auch von Bozen über die ''Große Dolomitenstraße'' nach Cortina d’Ampezzo fahren.
=== Mit dem Fahrrad ===
Der Fernradweg [[Via Claudia Augusta (Radroute)|Via Claudia Augusta]] führt vom Donauwörth und Augsburg über die Alpen nach Verona und Venedig (insgesamt ca. 700 km). Zudem führt die EuroVelo-Route EV7 („Sonnen-Route“) von Linz und Salzburg zum Gardasee.
== Mobilität ==
Die Region hat ein recht dichtes '''Eisenbahn'''netz. Alle größeren Städte werden von Zügen der Trenitalia oder der regionalen [http://www.sistemiterritorialispa.it/sistemiterritoriali/index.asp Sistemi Territoriali] (ST) bedient. Besonders im Kern der Region, zwischen Venedig, Padua, Treviso und Castelfranco, fahren Regionalzüge in einem engen Takt.
Will man aber auch Sehenswürdigkeiten außerhalb der Städte oder die dünner besiedelten Teile Venetiens besuchen, empfiehlt sich ein '''Auto'''. Wichtigste Straßenachse der Region ist die Autobahn A4 („Autostrada Serenissima“), die Venedig, Padua, Vicenza und Verona verbindet. Von dieser zweigen nach Norden die A27, die Treviso, Conegliano, Vittorio Veneto und Belluno erschließt, nach Süden die A13 nach Rovigo, sowie in beide Richtungen die A31 ab.
Zwischen Padua und Venedig gibt es eine '''schiff'''bare Wasserstraße über den Brentakanal. Auf diesem fahren auch Ausflugsschiffe (Anbieter [https://www.battellidelbrenta.it/home.php?setlan=de Batelli del Brenta], [https://www.ilburchiello.it/de Il Burchiello]), von denen aus man gut die historischen Villen sehen kann, die den Kanal säumen. Zudem kann man über den Fissero-Kanal und das Flusssystem Tartaro–Canalbianco–Po di Levante von Mantua durch die Poebene im Süden Venetiens bis zur Adria schippern.
Es gibt ein '''Rad'''wegenetz. Die Route I1 führt beispielsweise vom Gardasee über Verona, Vicenza und Padua nach Venedig (insgesamt 185 km). Der „Ring des Veneto“ (Route I2) führt auf insgesamt 305 km von Venedig über Chioggia, Abano Terme, Vicenza, Bassano del Grappa und Treviso zurück nach Venedig.
== Sehenswürdigkeiten ==
Venedig ist eine der italienischen Regionen mit den meisten Welterbestätten:
* '''[[Venedig]] und seine Lagune''': die ''Serenissima'', auf über hundert Inseln errichtete ehemalige Hauptstadt einer reichen und mächtigen Seefahrerrepublik mit ihren Kanälen, Palästen und Gondeln ist einzigartig und schlägt Menschen aus aller Welt in ihren Band. Abseits von Markusplatz und Canal Grande lassen sich aber zum Glück noch Stadtviertel finden, die nicht von Touristen überlaufen sind. Auch die Nebeninseln der Lagune (allen voran die Glasbläserinsel Murano) sind sehenswert.
* '''Palladio-Villen''': Andrea Palladio war der bedeutendste Renaissance-Architekt Oberitaliens. Er entwarf über 80 größere Bauwerke, darunter Landsitze, Stadtpaläste und Kirchen, vor allem in der Stadt und Provinz Vicenza. Sie sind von einer besonderen Ausgewogenheit und Ästhetik, die Villen passen sich geradezu ideal in die jeweilige Landschaft ein, meist sind sie auch von schönen Gärten umgeben. Zu den bedeutendsten darunter gehören ''La Rotonda'', ''Villa Barbaro'' in Maser, ''Villa Foscari'' in Mira und ''Villa Emo'' in Vedelago. Weitere herausragende Werke Palladios sind die Kirchen San Giorgio Maggiore und Il Redentore in Venedig, das Teatro Olimpico und die Basilica Palladiana in Vicenza sowie die Alte Brücke in Bassano del Grappa.
* '''Altstadt von [[Vicenza]]'''
<gallery mode="packed" heights="150">
Datei:Saint Mark's Campanile and Palazzo Ducale, Venice, September 2017 -2.jpg|Markusplatz und Dogenpalast
Datei:Rialto Gondoliers.jpg|Rialtobrücke
Datei:Villa Emo Fanzolo fronte 2009-07-18 f05b.jpg|Villa Emo
Datei:Interior of Teatro Olimpico (Vicenza) scena .jpg|Teatro Olimpico, Vicenza
</gallery>
* '''Altstadt von [[Verona]]''': kulturhistorische Sehenswürdigkeiten aus Antike, Mittelalter und Renaissance, insbesondere die römische Arena und die Burg Castelvecchio; ein weiterer Besuchermagnet ist das Haus der Capulets mit dem „Balkon der Julia“
* '''Botanischer Garten [[Padua]]''': der älteste, noch an seinem ursprünglichen Standort befindliche, botanische Garten der Welt, gegründet 1545.
* Die '''befestigte Stadt [[Peschiera del Garda]]''', Teil der Verteidigungsbauten der Republik Venedig aus der Renaissancezeit.
* Prähistorische Pfahlbauten aus dem 2. und 3. Jahrtausend v. Chr. in Peschiera del Garda, Cerea und Arquà Petrarca
<gallery mode="packed" heights="150">
Datei:Balcone di Giulietta a Verona.jpg|„Balkon der Julia“, Verona
Datei:OrtoBotPadova Incrocio viali.jpg|Botanischer Garten Padua
Datei:Peschiera del Garda - panoramio (1).jpg|Festung Peschiera del Garda
</gallery>
Weitere:
* '''Padua''': Freskengemälde von Giotto (14. Jahrhundert) in der Scrovegni-Kapelle, weiteren Kirchen und Palästen in [[Padua]]; Basilika des Heiligen Antonius in Padua, eines der meistbesuchten katholischen Heiligtümer Italiens; Palazzo della Ragione (mittelalterlicher Gerichtspalast, das große Holzgewölbe de Ratssaals ist eine der außergewöhnlichsten architektonischen Schöpfungen des ausgehenden Mittelalters)
* Die Prosecco-Hügel von [[Conegliano]] und [[Valdobbiadene]]: Herkunftsgebiet des weltbekannten Schaumweins, idyllische, vom Weinbau geprägte Kulturlandschaft
* Byzantinische Architektur von [[Torcello]]: Kirchen aus dem 11. Jahrhundert, als Torcello noch größer und reicher als Venedig war.
* Grand Hotel des Bains: einst prunkvolles Grandhotel aus dem Jahr 1900 am Lido di Venezia
<gallery mode="packed" heights="150">
Datei:Giotto di Bondone 009.jpg|Wandfresko von Giotto, Scrovegni-Kapelle
Datei:Valdobbiadene - San Giovanni.jpg|Prosecco-Hügel bei Valdobbiadene
Datei:Torcello 1989.jpg|Torcello: Santa Maria Assunta und Santa Fosca
Datei:Hotel des Bains 01.jpg|Hotel des Bains in Lido
</gallery>
== Aktivitäten ==
* '''Gardaland''' in Castelnuovo del Garda (am Gardasee), größter Freizeitpark Italiens
* Der Wasserfall-Park [https://www.parcodellecascate.it Parco delle Cascate] in Molina, nördlich von Verona lädt zum Wandern ein.
* Wandern und Klettern in den Dolomiten
* Wintersport in den Venetischen Alpen. Das bekannteste Skigebiet der Region ist [[Cortina d’Ampezzo]]
* Opernbesuch im ''Teatro La Fenice'' Venedig, in der ''Arena'' von Verona oder im ''Teatro Olimpico'' in Vicenza – die drei gehören zu den berühmtesten und beeindruckendsten Bühnen Europas
<gallery mode="packed" heights="150">
Datei:Passo Falzarego - Viev from ski resort (Cortina d'Ampezzo ) - panoramio.jpg|Skigebiet Cortina d'Ampezzo
Datei:Teatro La Fenice, Venice.jpg|Teatro La Fenice, Venedig
</gallery>
== Küche ==
{{Hauptartikel|Essen und Trinken in Venetien}}
== Nachtleben ==
== Sicherheit ==
== Klima ==
{{Klimatab-col|ort=Klima von Venedig|sourcelink=Quelle:[http://wetterkontor.de/de/klima/klima2.asp?land=it&stat=16105 Wetterkontor] |sourcetext=
|xt=1|xtjan=5.8|xtfeb=8.2|xtmar=12.0|xtapr=16.3|xtmai=21.2|xtjun=24.8|xtjul=27.5|xtaug=27.0|xtsep=23.6|xtoct=18.1|xtnov=11.5|xtdec=6.7
|nt=1|ntjan=-0.9|ntfeb=0.7|ntmar=3.8|ntapr=7.9|ntmai=12.3|ntjun=15.9|ntjul=17.8|ntaug=17.3|ntsep=14.2|ntoct=9.4|ntnov=4.2|ntdec=0.0
|at=|atjan=0|atfeb=0|atmar=0|atapr=0|atmai=0|atjun=0|atjul=0|ataug=0|atsep=0|atoct=0|atnov=0|atdec=0
|wt=1|wtjan=9|wtfeb=8|wtmar=10|wtapr=13|wtmai=17|wtjun=21|wtjul=23|wtaug=24|wtsep=21|wtoct=18|wtnov=14|wtdec=11
|rm=1|rmjan=37|rmfeb=48|rmmar=61|rmapr=78|rmmai=65|rmjun=69|rmjul=52|rmaug=69|rmsep=59|rmoct=77|rmnov=94|rmdec=61
|rd=1|rdjan=7|rdfeb=6|rdmar=7|rdapr=8|rdmai=8|rdjun=9|rdjul=6|rdaug=7|rdsep=5|rdoct=6|rdnov=8|rddec=6
|rh=|rhjan=0|rhfeb=0|rhmar=0|rhapr=0|rhmai=0|rhjun=0|rhjul=0|rhaug=0|rhsep=0|rhoct=0|rhnov=0|rhdec=0
|cl=|cljan=0|clfeb=0|clmar=0|clapr=0|clmai=0|cljun=0|cljul=0|claug=0|clsep=0|cloct=0|clnov=0|cldec=0
|sd=1|sdjan=2.6|sdfeb=3.8|sdmar=4.6|sdapr=5.8|sdmai=7.4|sdjun=8.1|sdjul=9.3|sdaug=8.3|sdsep=6.6|sdoct=4.9|sdnov=2.9|sddec=2.5
|sm=|smjan=0|smfeb=0|smmar=0|smapr=0|smmai=0|smjun=0|smjul=0|smaug=0|smsep=0|smoct=0|smnov=0|smdec=0
}}
== Literatur ==
== Weblinks ==
* [http://www.italien-inseln.de/italia/venetien-veneto.html Venetien Informationen]
* [http://www.gardasee-aktuell.com Informationen zum Gardasee und Umland]
{{class-3}}
{{GeoData| lat= 46.1| long= 12.1| radius= }}
{{IstInKat|Oberitalien}}
3cl50q4j087f6k7k815qcwrgl4y3akk
1769034
1769033
2026-04-16T16:17:32Z
Qualitätssicherung
50648
/* Sehenswürdigkeiten */ Scrol gallery für bessere Mobildarstellung
1769034
wikitext
text/x-wiki
{{Quickbar Region Italien}}
Die Region '''Venetien''' (ital. ''Veneto'') liegt im Nordosten [[Italien]]s. Die Hauptstadt ist [[Venedig]].
== Regionen ==
[[Datei:Map of region of Veneto, Italy, with provinces-it.svg|300px|thumb|Administrative Gliederung von Venetien]]
Administrativ ist Venetien in 7 Provinzen gegliedert:
* [[Belluno (Provinz)|Belluno (BL)]],
* [[Padua (Provinz)|Padua (PD)]], ''Padova''
* [[Rovigo (Provinz)|Rovigo (RO)]]
* [[Treviso (Provinz)|Treviso (TV)]]
* [[Venedig (Provinz)|Venedig (VE)]], ''Venezia''
* [[Verona (Provinz)| Verona (VR)]]
* [[Vicenza (Provinz)|Vicenza (VI)]]
Landschaftlich lässt sich die Region unterteilen in eine Berglandschaft und in eine Tiefebene. Die Berglandschaft erstreckt sich von den Dolomiten bis zu den Voralpen. Hier liegen
* '''[[Cadore]]''' - Tal des Flusses Piave zwischen den Dolomiten im Norden und der Stadt [[Belluno]] im Süden. Dem Cadore schließt sich das
* '''[[Val Belluna]]''', das Tal der Piave zwischen [[Belluno]] und [[Feltre]], an.
* '''[[Valle d' Ampezzo]]''' - Dieses Dolomitental mit dem Ferienort [[Cortina d’Ampezzo]] mündet in das Cadore-Tal.
* '''[[Sieben Gemeinden]]''' (''Sette Comuni'') - deutsche Sprachinsel an der Grenze zu [[Trentino-Südtirol]]; Hauptort [[Asiago]].
* Das Ostufer des '''[[Gardasee|Gardasees]]''' gehört ebenfalls zu Venetien.
Der größte Teil der Region liegt in einer Tiefebene, nur unterbrochen von einigen Hügellandschaften:
* '''Venetische Poebene''' siehe die Artikel [[Padua (Provinz)]], [[Treviso (Provinz)]] und [[Rovigo (Provinz)]]
* '''Venetische Adriaküste''' mit Lagunen rund um [[Venedig]], siehe Artikel [[Venedig (Provinz)]]
== Orte ==
{{Mapframe |zoom=7|width = 350|height = 350}}{{mapshape|type = geoline}}
[[Bild:Canal Grande Chiesa della Salute e Dogana dal ponte dell Accademia.jpg|mini|Venedig]]
* {{Marker | type=city | wikidata=Q641 | name= [[Venedig]] }} – einzigartige Lagunenstadt, alte Kunstmetropole und Hauptstadt Venetiens
[[Datei:Arena-XE3F2406a.jpg|mini|Arena von Verona]]
* {{Marker | type=city | wikidata=Q617 | name= [[Padua]] }} – alte und renommierte Universitätsstadt, Wallfahrtsort des Heiligen Antonius
* {{Marker | type=city | wikidata=Q5475 | name= [[Treviso]] }}
* {{Marker | type=city | wikidata=Q2028 | name= [[Verona]] }} – mit der römischen Arena und Handlungsort von ''Romeo und Julia''
* {{Marker | type=city | wikidata=Q6537 | name= [[Vicenza]] }} – Stadt der Villen des Renaissance-Architekten Palladio
* {{Marker | type=city | wikidata=Q47094 | name= [[Bassano del Grappa]] }} – pittoreske Altstadt am Fuß der Voralpen mit berühmter Holzbrücke über die Brenta
* {{Marker | type=city | wikidata=Q6558 | name= [[Belluno]] }}
* {{Marker | type=city |wikidata = Q3512102|name =[[Bibione]]}} – Badeort an der nördlichen Adria
* {{Marker | type=city | wikidata=Q47248 | name= [[Caorle]] }}
* {{Marker | type=city |wikidata = Q41158|name =[[Cortina d’Ampezzo]]}} – mondäner Urlaubs- und Wintersportort (1224 m) in den östlichen Dolomiten
* {{Marker | type=city | wikidata=Q55416 | name= [[Chioggia]] }} – Hafenstadt im Süden der Lagune von Venedig, aufgrund der Ähnlichkeit zur großen Nachbarin „Klein-Venedig“ genannt
* {{Marker | type=city | wikidata=Q47281 | name= [[Jesolo]] }} – Badeort bei Venedig
* {{Marker | type=city | wikidata=Q47821 | name= [[Malcesine]] }} – am Ostufer des Gardasees
* {{Marker | type=city | wikidata=Q34434 | name= [[Montegrotto Terme]] }}
== Weitere Ziele ==
* '''[[Alleghe]]'''
* '''[[Dolomiten]]''' mit der [[Marmolata]] (höchste Erhebung in Venetien, 3343 Meter)
== Hintergrund ==
Auf Italienisch heißt die Region '''''Veneto''''', wobei die erste Silbe betont ist und das erste 'e' wie ein 'ä' klingt.
Benannt ist die Region nach dem '''Volk der [[w:Veneter (Adria)|Veneter]]''', das hier in der Antike siedelte. Im 2. Jahrhundert wurde Venetien nach und nach ins Römische Reich integriert, maßgeblich hierbei war die Gründung von [[Aquileia]], eine der wichtigsten Römerstädte in Oberitalien. Die römische Region ''Venetia'' gehörte zur Provinz ''Gallia Cisalpina'' und umfasste ungefähr die heutigen Regionen Venetien, [[Friaul-Julisch Venetien]] und [[Trentino-Südtirol]]. Sie werden bis heute manchmal unter der Bezeichnung ''Triveneto'' oder ''Tre Venezie'' (die „drei Venetien“) zusammengefasst. In der Völkerwanderungszeit zogen verschiedene germanische Völker durch die Region. Die venetische Küste gehörte vom 6. bis 11. Jahrhundert zum Oströmischen Reich, das Landesinnere hingegen zum Langobardenreich bzw. ab der Zeit Karls des Großen zum Frankenreich.
[[Datei:1516 Vittore Carpacci, The Lion of St Mark (detail) Tempera on canvas, Palazzo Ducale, Venice.jpg|mini|''Der Löwe von St. Markus'' (Gemälde von Vittore Carpaccio, 1516, ausgestellt im Dogenpalast Venedig)]]
Sehr prägend für die Geschichte Ventiens war die '''Republik Venedig'''. Der (nicht historisch überprüfbaren) Legende nach wurde Venedig im Jahr 421 gegründet. Der erste Doge (von lateinisch ''Dux''=‚Herzog‘ oder ‚Führer‘) wurde 697 gewählt, was als Anfangspunkt der venezianischen Adelsrepublik gilt. Im Jahr 828 wurden Reliquien des Heiligen Markus nach Venedig gebracht, er ist seither Schutzpatron der Stadt wie der Region. Der Markuslöwe (ein geflügelter Löwe mit Bibel) und die rot-goldene Flagge sind Symbole Venedigs wie Venetiens. Ab 840 erkannte das Frankenreich die Unabhängigkeit der Republik an, deren traditioneller Beiname ''Serenissima'' (‚die Durchlauchtigste‘) lautet.
[[Datei:Venezianische Kolonien.png|mini|Republik Venedig mit Kolonien und Stützpunkten]]
Im 10. Jahrhundert erwarb Venedig erste Kolonien rund um die Adria, bis nach [[Dalmatien]], damit begann sein Aufstieg zur Großmacht. Das Landesinnere Venetiens gehörte damals aber noch nicht zur Seefahrerrepublik, sondern zu verschiedenen Fürstentümern, insbesondere der Markgrafschaft Verona. Im Hochmittelalter entwickelten sich daraus mehrere, rivalisierende Stadtstaaten (Verona, Padua, Treviso und Vicenza), die unter der Herrschaft von Adelsfamilien standen (z. B. den Scaligern). Die Universität Padua wurde 1222 gegründet und ist damit eine der ältesten Europas.
Im 14. und 15. Jahrhundert griff die Herrschaft der Republik Venedig auch auf das Landesinnere, die sogenannte ''Terraferma'' (Festland) über. Damit entstand Venetien in seiner modernen Form. Am Übergang vom Mittelalter zur Neuzeit um 1500 dominierten Venedig und Genua den Handel im gesamten Mittelmeerraum, das venezianische Kolonialreich reichte bis nach [[Zypern]]. Das Territorium der Republik wurde im 15. bis 17. Jahrhundert mit damals modernen Festungen und Bastionen – sowohl zur Land- wie zur Seeseite – gesichert, deren Überreste heute zum Weltkulturerbe gehören. Mit der Expansion des Osmanischen Reichs im östlichen Mittelmeerraum im 15. und 16. Jahrhundert begann allerdings der Niedergang Venedigs.
Venedig und Venetien spielten eine prägende Rolle für die europäischen Kunstgeschichte, vor allem während der Spätgotik und der Renaissance. Im 16. Jahrhundert galt die ''venezianische Schule'' als das non-plus-ultra in der europäischen Malerei. Zu den bekanntesten Künstlern, die aus Venetien kamen oder hier tätig waren, gehören Giotto, Donatello, Giovanni Bellini, Tizian, Tintoretto und Bernardo Bellotto („Canaletto“). In der Architektur war Andrea Palladio der bedeutendste Renaissance-Baumeister in Oberitalien. Der wichtigste venezianische Komponist dürfte Antonio Vivaldi sein.
Die Republik Venedig endete 1797 mit der Eroberung durch Napoleon, Venetien gehörte anschließend zum napoleonischen Königreich Italien. Nach dem Wiener Kongress 1815 kam Ventien zum Königreich Lombardo-Venetien, einem Land des habsburgischen Kaisertum Österreich, Venedig war dessen Hauptstadt. Erst im Zuge des ''Risogimento'', der nationalen Einigung Italiens kam Venetien zum Königreich Italien. Im Ersten Weltkrieg verlief die Front zwischen Italien und Österreich durch den Norden Venetiens. Bei Vittorio Veneto fand eine der entscheidenden Schlachten statt.
Lange Zeit war Venetien eine relativ arme und kleinbäuerlich geprägte Region, aus der viele auswanderten (vor allem nach Brasilien, Argentinien und in die Schweiz). Im Zuge des italienischen Wirtschaftswunders der 1960er- und 70er-Jahre wandelte es sich hingegen zu einer der am stärksten industrialisierten und wirtschaftlich stärksten Regionen Italiens. Seither gibt es eine zunehmende autonomistische oder gar nationalistische Bewegung, die die Eigenständigkeit Venetiens betont und verstärkte Selbstverwaltung oder gar die Unabhängigkeit Venetiens anstrebt. Bei einem nicht verbindlichen Referendum im Oktober 2017 sprach sich bei einer Beteiligung von 57 % der Wahlberechtigten 98 % für eine stärkere Autonomie der Region innerhalb Italiens aus. Bis in die 1980er-Jahre war Venetien eine Hochburg der Christdemokraten, mit Wahlergebnissen von 50 bis 60 Prozent. Heute ist hier die Lega Nord (Liga Veneta) so stark wie nirgendwo sonst.
== Sprache ==
Umgangssprachen sind Italienisch und Venetisch. Letzteres ist kein Dialekt, sondern eine eigene romanische Sprache (darauf legen die Veneter großen Wert), die mit dem Italienischen, aber auch dem Rätoromanischen verwandt ist. Venetisch wird eher in umgangssprachlichen Situationen, mit Familie und Bekannten verwendet, Standard-Italienisch in offiziellen Kontexten und gegenüber Fremden.
In Venedig und Verona ist man sehr auf internationale Touristen eingestellt, hier kommt man gut mit Englisch oder sogar Deutsch zurecht. Wer sich außerhalb ausgetretener Touristenpfade bewegt, sollte sich aber möglichst zumindest um ein paar Brocken Italienisch bemühen.
== Anreise ==
=== Mit dem Flugzeug ===
Größter Flughafen der Region ist {{marker |type = airport |name = Flughafen Venedig „Marco Polo“ |wikidata = Q849347 |show = none}} mit zahlreichen Direktverbindungen aus dem deutschsprachigen Raum. Deutlich kleiner, aber ebenfalls direkt aus D/A/CH erreichbar, sind die Flughäfen {{marker |type = airport |name = Flughafen Verona „Valerio Catullo“ |wikidata = Q1433197 |show = none}} und der hauptsächlich von [[Ryanair]] genutzte {{marker |type = airport |name = Flughafen Treviso |wikidata = Q513474 |show = none}}.
=== Mit der Bahn ===
Im inneritalienischen Verkehr werden Venedig, [[Mestre]], [[Padua]], Verona und [[Vicenza]] von den Hochgeschwindigkeitszügen ''Frecciarossa'' und ''Italo'' bedient.
Aus dem deutschsprachigen Raum bieten sich vor allem Nacht- und Autoreisezüge an. ÖBB Nightjet-Linien führen von Wien über Klagenfurt oder von München über Salzburg nach Padua, Vicenza, Verona und Peschiera del Garda (mit Autotransport von Wien nach Verona) bzw. von Wien über Linz oder von München über Salzburg nach Treviso und Venedig. Daneben gibt es den UEX Urlaubs-Express von Hamburg-Altona über Hannover nach Verona.
Tagsüber fährt im Zweistundentakt der Eurocity von München über Innsbruck und Bozen nach Verona (Fahrtzeit insgesamt 5½ Stunden) und zweimal pro Tag der RailJet von Wien über Villach nach Venedig (7½ Std). Aus der Schweiz fährt nur einmal am Tag ein Eurocity von Zürich nach Verona, Padua und Venedig (Zürich–Verona in 5:20 Std.), ansonsten muss man in Mailand umsteigen.
=== Auf der Straße ===
Aus Deutschland (sowie Westösterreich und Südtirol) fährt man in der Regel über die Brenner-Autobahn bis Trient, und dann entweder auf der A22 weiter bis Verona, oder – wenn man lieber etwas langsamer reist – über die landschaftlich schöne SS47 durch das in die Voralpen geschnittene Suganatal nach Bassano del Grappa und Padua.
Aus dem Osten und Süden Österreichs gelangt man über die Süd- (A2) bzw. Alpe-Adria-Autobahn (A23) an Villach und Udine vorbei in die Gegend von Venedig. Aus der Schweiz führt die Route typischerweise durchs Tessin, vorbei an Mailand, Brescia und dem Südufer des Gardasees.
Wenn man es besonders szenisch haben will, kann man auch von Bozen über die ''Große Dolomitenstraße'' nach Cortina d’Ampezzo fahren.
=== Mit dem Fahrrad ===
Der Fernradweg [[Via Claudia Augusta (Radroute)|Via Claudia Augusta]] führt vom Donauwörth und Augsburg über die Alpen nach Verona und Venedig (insgesamt ca. 700 km). Zudem führt die EuroVelo-Route EV7 („Sonnen-Route“) von Linz und Salzburg zum Gardasee.
== Mobilität ==
Die Region hat ein recht dichtes '''Eisenbahn'''netz. Alle größeren Städte werden von Zügen der Trenitalia oder der regionalen [http://www.sistemiterritorialispa.it/sistemiterritoriali/index.asp Sistemi Territoriali] (ST) bedient. Besonders im Kern der Region, zwischen Venedig, Padua, Treviso und Castelfranco, fahren Regionalzüge in einem engen Takt.
Will man aber auch Sehenswürdigkeiten außerhalb der Städte oder die dünner besiedelten Teile Venetiens besuchen, empfiehlt sich ein '''Auto'''. Wichtigste Straßenachse der Region ist die Autobahn A4 („Autostrada Serenissima“), die Venedig, Padua, Vicenza und Verona verbindet. Von dieser zweigen nach Norden die A27, die Treviso, Conegliano, Vittorio Veneto und Belluno erschließt, nach Süden die A13 nach Rovigo, sowie in beide Richtungen die A31 ab.
Zwischen Padua und Venedig gibt es eine '''schiff'''bare Wasserstraße über den Brentakanal. Auf diesem fahren auch Ausflugsschiffe (Anbieter [https://www.battellidelbrenta.it/home.php?setlan=de Batelli del Brenta], [https://www.ilburchiello.it/de Il Burchiello]), von denen aus man gut die historischen Villen sehen kann, die den Kanal säumen. Zudem kann man über den Fissero-Kanal und das Flusssystem Tartaro–Canalbianco–Po di Levante von Mantua durch die Poebene im Süden Venetiens bis zur Adria schippern.
Es gibt ein '''Rad'''wegenetz. Die Route I1 führt beispielsweise vom Gardasee über Verona, Vicenza und Padua nach Venedig (insgesamt 185 km). Der „Ring des Veneto“ (Route I2) führt auf insgesamt 305 km von Venedig über Chioggia, Abano Terme, Vicenza, Bassano del Grappa und Treviso zurück nach Venedig.
== Sehenswürdigkeiten ==
Venedig ist eine der italienischen Regionen mit den meisten Welterbestätten:
* '''[[Venedig]] und seine Lagune''': die ''Serenissima'', auf über hundert Inseln errichtete ehemalige Hauptstadt einer reichen und mächtigen Seefahrerrepublik mit ihren Kanälen, Palästen und Gondeln ist einzigartig und schlägt Menschen aus aller Welt in ihren Band. Abseits von Markusplatz und Canal Grande lassen sich aber zum Glück noch Stadtviertel finden, die nicht von Touristen überlaufen sind. Auch die Nebeninseln der Lagune (allen voran die Glasbläserinsel Murano) sind sehenswert.
* '''Palladio-Villen''': Andrea Palladio war der bedeutendste Renaissance-Architekt Oberitaliens. Er entwarf über 80 größere Bauwerke, darunter Landsitze, Stadtpaläste und Kirchen, vor allem in der Stadt und Provinz Vicenza. Sie sind von einer besonderen Ausgewogenheit und Ästhetik, die Villen passen sich geradezu ideal in die jeweilige Landschaft ein, meist sind sie auch von schönen Gärten umgeben. Zu den bedeutendsten darunter gehören ''La Rotonda'', ''Villa Barbaro'' in Maser, ''Villa Foscari'' in Mira und ''Villa Emo'' in Vedelago. Weitere herausragende Werke Palladios sind die Kirchen San Giorgio Maggiore und Il Redentore in Venedig, das Teatro Olimpico und die Basilica Palladiana in Vicenza sowie die Alte Brücke in Bassano del Grappa.
* '''Altstadt von [[Vicenza]]'''
{{Scroll Gallery
|title=Venedig
|Saint Mark's Campanile and Palazzo Ducale, Venice, September 2017 -2.jpg|Markusplatz und Dogenpalast
|Rialto Gondoliers.jpg|Rialtobrücke
|Villa Emo Fanzolo fronte 2009-07-18 f05b.jpg|Villa Emo
|Interior of Teatro Olimpico (Vicenza) scena .jpg|Teatro Olimpico, Vicenza
}}
{{Scroll Gallery
|title=Andere Orte Venetiens
|Balcone di Giulietta a Verona.jpg|„Balkon der Julia“, Verona
|OrtoBotPadova Incrocio viali.jpg|Botanischer Garten Padua
|Peschiera del Garda - panoramio (1).jpg|Festung Peschiera del Garda
|Giotto di Bondone 009.jpg|Wandfresko von Giotto, Scrovegni-Kapelle
|Valdobbiadene - San Giovanni.jpg|Prosecco-Hügel bei Valdobbiadene
|Torcello 1989.jpg|Torcello: Santa Maria Assunta und Santa Fosca
|Hotel des Bains 01.jpg|Hotel des Bains in Lido
}}
* '''Altstadt von [[Verona]]''': kulturhistorische Sehenswürdigkeiten aus Antike, Mittelalter und Renaissance, insbesondere die römische Arena und die Burg Castelvecchio; ein weiterer Besuchermagnet ist das Haus der Capulets mit dem „Balkon der Julia“
* '''Botanischer Garten [[Padua]]''': der älteste, noch an seinem ursprünglichen Standort befindliche, botanische Garten der Welt, gegründet 1545.
* Die '''befestigte Stadt [[Peschiera del Garda]]''', Teil der Verteidigungsbauten der Republik Venedig aus der Renaissancezeit.
* Prähistorische Pfahlbauten aus dem 2. und 3. Jahrtausend v. Chr. in Peschiera del Garda, Cerea und Arquà Petrarca
;Weitere
* '''Padua''': Freskengemälde von Giotto (14. Jahrhundert) in der Scrovegni-Kapelle, weiteren Kirchen und Palästen in [[Padua]]; Basilika des Heiligen Antonius in Padua, eines der meistbesuchten katholischen Heiligtümer Italiens; Palazzo della Ragione (mittelalterlicher Gerichtspalast, das große Holzgewölbe de Ratssaals ist eine der außergewöhnlichsten architektonischen Schöpfungen des ausgehenden Mittelalters)
* Die Prosecco-Hügel von [[Conegliano]] und [[Valdobbiadene]]: Herkunftsgebiet des weltbekannten Schaumweins, idyllische, vom Weinbau geprägte Kulturlandschaft
* Byzantinische Architektur von [[Torcello]]: Kirchen aus dem 11. Jahrhundert, als Torcello noch größer und reicher als Venedig war.
* Grand Hotel des Bains: einst prunkvolles Grandhotel aus dem Jahr 1900 am Lido di Venezia
<gallery mode="packed" heights="150">
</gallery>
== Aktivitäten ==
* '''Gardaland''' in Castelnuovo del Garda (am Gardasee), größter Freizeitpark Italiens
* Der Wasserfall-Park [https://www.parcodellecascate.it Parco delle Cascate] in Molina, nördlich von Verona lädt zum Wandern ein.
* Wandern und Klettern in den Dolomiten
* Wintersport in den Venetischen Alpen. Das bekannteste Skigebiet der Region ist [[Cortina d’Ampezzo]]
* Opernbesuch im ''Teatro La Fenice'' Venedig, in der ''Arena'' von Verona oder im ''Teatro Olimpico'' in Vicenza – die drei gehören zu den berühmtesten und beeindruckendsten Bühnen Europas
<gallery mode="packed" heights="150">
Datei:Passo Falzarego - Viev from ski resort (Cortina d'Ampezzo ) - panoramio.jpg|Skigebiet Cortina d'Ampezzo
Datei:Teatro La Fenice, Venice.jpg|Teatro La Fenice, Venedig
</gallery>
== Küche ==
{{Hauptartikel|Essen und Trinken in Venetien}}
== Nachtleben ==
== Sicherheit ==
== Klima ==
{{Klimatab-col|ort=Klima von Venedig|sourcelink=Quelle:[http://wetterkontor.de/de/klima/klima2.asp?land=it&stat=16105 Wetterkontor] |sourcetext=
|xt=1|xtjan=5.8|xtfeb=8.2|xtmar=12.0|xtapr=16.3|xtmai=21.2|xtjun=24.8|xtjul=27.5|xtaug=27.0|xtsep=23.6|xtoct=18.1|xtnov=11.5|xtdec=6.7
|nt=1|ntjan=-0.9|ntfeb=0.7|ntmar=3.8|ntapr=7.9|ntmai=12.3|ntjun=15.9|ntjul=17.8|ntaug=17.3|ntsep=14.2|ntoct=9.4|ntnov=4.2|ntdec=0.0
|at=|atjan=0|atfeb=0|atmar=0|atapr=0|atmai=0|atjun=0|atjul=0|ataug=0|atsep=0|atoct=0|atnov=0|atdec=0
|wt=1|wtjan=9|wtfeb=8|wtmar=10|wtapr=13|wtmai=17|wtjun=21|wtjul=23|wtaug=24|wtsep=21|wtoct=18|wtnov=14|wtdec=11
|rm=1|rmjan=37|rmfeb=48|rmmar=61|rmapr=78|rmmai=65|rmjun=69|rmjul=52|rmaug=69|rmsep=59|rmoct=77|rmnov=94|rmdec=61
|rd=1|rdjan=7|rdfeb=6|rdmar=7|rdapr=8|rdmai=8|rdjun=9|rdjul=6|rdaug=7|rdsep=5|rdoct=6|rdnov=8|rddec=6
|rh=|rhjan=0|rhfeb=0|rhmar=0|rhapr=0|rhmai=0|rhjun=0|rhjul=0|rhaug=0|rhsep=0|rhoct=0|rhnov=0|rhdec=0
|cl=|cljan=0|clfeb=0|clmar=0|clapr=0|clmai=0|cljun=0|cljul=0|claug=0|clsep=0|cloct=0|clnov=0|cldec=0
|sd=1|sdjan=2.6|sdfeb=3.8|sdmar=4.6|sdapr=5.8|sdmai=7.4|sdjun=8.1|sdjul=9.3|sdaug=8.3|sdsep=6.6|sdoct=4.9|sdnov=2.9|sddec=2.5
|sm=|smjan=0|smfeb=0|smmar=0|smapr=0|smmai=0|smjun=0|smjul=0|smaug=0|smsep=0|smoct=0|smnov=0|smdec=0
}}
== Literatur ==
== Weblinks ==
* [http://www.italien-inseln.de/italia/venetien-veneto.html Venetien Informationen]
* [http://www.gardasee-aktuell.com Informationen zum Gardasee und Umland]
{{class-3}}
{{GeoData| lat= 46.1| long= 12.1| radius= }}
{{IstInKat|Oberitalien}}
9575785nk5aehoplgysxh44h0k74kbv
Westaustralien
0
6416
1768999
1749904
2026-04-16T13:07:52Z
Wowo2024
53507
Artikel erheblich erweitert +Quellen +geoline-mapframe.
1768999
wikitext
text/x-wiki
{{Quickbar Bundesstaat Australien}}
'''Westaustralien''' ({{enS|''Western Australia''}}) ist der größte [[Australien|australische]] Bundesstaat und und grenzt im Nordosten an das [[Northern Territory ]] und im Südosten an [[Südaustralien]].
== Hintergrund ==
{{Marker | name =Westaustralien | type =region | wikidata =Q3206}} nimmt 32,9 % der Landfläche von ganz Australien ein, das {{Marker | name =[[Outback]] | type =landscape | lat =-25.344026 | long =127.650146 | wikidata =Q569073}} macht etwa 85 % der Fläche Westaustraliens aus.
== Geschichte ==
Indigene Aborigines wie die Malgana, Noongar, Wadandi, Wongi, Yamatji oder Yawuru siedelten hier mindestens bereits seit 48000 vor Christus. Auf sie traf als erster Europäer der holländische Seefahrer [[w:Dirk Hartog|Dirk Hartog]], als er am 25. Oktober 1616 auf der später nach ihm benannten {{Marker | name =Dirk Hartog Island | type =island | wikidata =Q1227891}} an der {{Marker | name =Dirk Hartog Landing Site | type =viewpoint | wikidata =Q1227877}} landete und die Zinntafel {{Marker | name =Hartog Plate | type =see | wikidata =Q2867164}} mit Datum und Namen hinterließ.<ref>[https://www.google.de/books/edition/The_History_of_Australian_Exploration_fr/ELNWAAAAYAAJ?hl=de&gbpv=1&dq=dirk+hartog+1616&pg=PA22&printsec=frontcover Ernest Favenc, ''The History of Australian Exploration from 1788 to 1888'', Golden Book Press, 1888, S. 22]</ref> Am 4. Februar 1697 landete hier am {{Marker | name =Cape Inscription | type =cape | wikidata =Q2937054}} sein Landsmann [[w:Willem de Vlamingh|Willem de Vlamingh]], fügte auf seiner neuen Zinnplatte seine eigene Nachricht hinzu, schrieb die Gravur seines Vorgängers ab und brachte dessen Tafel zurück nach Holland. Am 7. August 1699 landete der Engländer William Dampier in der {{Marker | name =Shark Bay | type =bay | wikidata =Q217487 | show =copy}}.
Eine genauere Kartografierung gelang erst dem Engländer [[w:Matthew Flinders|Matthew Flinders]], als er am 7. Dezember 1801 an {{Marker | name =Cape Leeuwin | type =cape | wikidata =Q1536418}} ankam. Die britische Kolonialisierung Australiens begann mit der Gründung der Strafkolonie [[New South Wales]] am 26. Januar 1788. Als weitere Kolonien folgten [[Western Australia]] (18. Juni 1829), South Australia (28. Dezember 1836), [[Victoria (Australien)|Victoria]] (1. Juli 1851), [[Queensland]] (6. Juni 1859) und [[Northern Territory]] (6. Juli 1863). Am 1. Januar 1901 schlossen sich diese sechs einzelnen australischen Kolonien zum ''Commonwealth of Australia'' zusammen.<ref>[https://www.google.de/books/edition/Das_Ausland/DiDIy_Me2ToC?hl=de&gbpv=1&dq=arthur+Phillip+1788+sydney+cove&pg=PA1031&printsec=frontcover J.F. Cotta'sche Buchhandlung (Hrsg.), ''Das Ausland'', Band 60, J.F. Cotta'sche Buchhandlung, 1887, S. 1031]</ref>
== Klima, Flora und Fauna ==
Im [[Nördliches Westaustralien|Nördlichen Westaustralien]] herrscht ein tropisches, vom Monsun beeinflusstes Klima mit feuchtem Sommer (Dezember bis Februar) und trockenem Winter (Juni bis August). Subtropisches bis mediterranes Klima besteht im [[Südliches Westaustralien|Südlichen Westaustralien]] mit heißem und trockenen Sommer und mildem, aber feuchtem Winter. Die Regenzeit fällt in den Zeitraum Oktober bis März, die Trockenzeit liegt zwischen April und September. Der Sommer weist sehr hohe Tagestemperaturen von mehr als 40 °C auf. Die Trockenzeit ist mit Tagestemperaturen um die 30 °C milder als die Regenzeit, deren Tagestemperaturen um die 40 °C schwanken. Falls es regnet, gibt es heftige Niederschläge, die Straßen schnell unpassierbar machen können ({{enS|''flash floods''}}). Die Nachttemperaturen können zwischen Juni und August auf 10 °C, zwischen April und Oktober um die 20 °C liegen. Wie in ganz Australien ist der UV-Index überdurchschnittlich hoch (über 10).
{{Scroll Gallery
|title = Klimadiagramme einzelner Orte in Westaustralien.
|align =center
|Bild:Klimadiagramm-Geraldton-Australien-metrisch-deutsch.png|Geraldton
|Bild:Klimadiagramm-Perth-Australien-metrisch-deutsch.png|[[Perth]]
|Bild:Klimadiagramm-Albany-Australien-metrisch-deutsch.png|[[Südliches Westaustralien#Albany|Albany]] an der Südküste
}}
In Westaustralien gibt es 202 Säugetierarten, davon gelten 53 Arten als gefährdet. Zu den Arten gehören die allgegenwärtigen Kängurus, Numbats, Quokkas und die marinen Arten Buckelwale, Dugongs oder Walhaie. Über 650 Vogelarten können beobachtet werden wie das westaustralische Wappentier, der Schwarze Schwan. Auch 6200 Reptilienarten ergänzen die Fauna wie Dornteufel, Geckos, Goannas (Warane), Krokodile (Salzwasser- und Süßwasser-Krokodile) und Schlangen. Letztere können dem Menschen lebensgefährlich werden wie der Taipan und die Mulga.
== Reisevorbereitung ==
Die beste Reisezeit liegt zwischen April und September. Der meiste Tourismus konzentriert sich auf die Westküste um Perth und die Südwestküste um Albany. Hier sind die touristischen Fazilitäten wie Hotels, Gaststätten oder Reiseunternehmen auf hohes touristisches Aufkommen sehr gut vorbereitet.
== Regionen ==
[[Datei:00 2161 Purnululu-Nationalpark - Western Australia.jpg|mini|Region Kimberley: ''Purnululu-Nationalpark'']]
Western Australia wird politisch/administrativ in neun Regionen und die Perth Metropolitan Region unterteilt:
{| class="wikitable" style="padding:1em; vertical-align:top; border:2px;"
|-
! [[w:Region|Region]]
! Hauptort
|-
| {{Marker | name =Gascoyne | type =region | wikidata =Q1495083}} || {{Marker | name =Carnarvon | type =town | wikidata =Q1021880}}
|-
| {{Marker | name =Goldfields–Esperance | type =region | wikidata =Q60120}} || {{Marker | name =Kalgoorlie | type =town | wikidata =Q329503}}
|-
| {{Marker | name =Great Southern | type =region | wikidata =Q60228}} || {{Marker | name =Albany | type =town | wikidata =Q704257}}
|-
| {{Marker | name =Kimberley | type =region | wikidata =Q672805}} || {{Marker | name =Broome | type =town | wikidata =Q606294}}
|-
| {{Marker | name =Mid West | type =region | wikidata =Q606266}} || {{Marker | name =Geraldton | type =town | wikidata =Q605267}}
|-
| {{Marker | name =Peel | type =region | wikidata =Q1973683}} || {{Marker | name =Mandurah | type =town | wikidata =Q595542}}
|-
| {{Marker | name =Perth Metropolitan Region | type =region | wikidata =Q7170870}} || {{Marker | name =Perth | type =city | wikidata =Q3183}}
|-
| {{Marker | name =Pilbara | type =region | wikidata =Q1362696}} || {{Marker | name =Karratha | type =town | wikidata =Q1309107}}
|-
| {{Marker | name =South West | type =region | wikidata =Q60385}} || {{Marker | name =Bunbury | type =town | wikidata =Q256711}}
|-
| {{Marker | name =Wheatbelt | type =region | wikidata =Q1850966}} || {{Marker | name =Northam | type =town | wikidata =Q478147}}
|}
Geografisch und klimatisch unterscheidet man {{Marker | name =Nördliches Westaustralien | type =region | lat =-22.268764 | long =122.651367 | wikidata =Q55868334}} und {{Marker | name =Südliches Westaustralien | type =region | lat =-31.428663 | long =123.090820 | wikidata =Q55868039}}.
In Westaustralien liegen einige Teilwüsten des Outbacks:
* {{Marker | name =Gibson Desert | type =desert | wikidata =Q272577}}
* {{Marker | name =Great Sandy Desert | type =desert | wikidata =Q326896}}
* {{Marker | name =Little Sandy Desert | type =desert | wikidata =Q4076}}
* {{Marker | name =Tanami Desert | type =desert | wikidata =Q674262}}
== Anreise ==
=== Mit dem Flugzeug ===
Für internationale Flüge nach Westaustralien steht der {{Marker | name =Perth Airport | type =airport | wikidata =Q45935}} zur Verfügung. Die Auslandsflüge werden in den Terminals T1 und T2 im Westen der Stadt abgefertigt, Inlandsflüge werden an den Terminals T3 und T4 im Osten der Stadt angeboten und vernetzen diverse Städte in Australien und auch Westaustralien.
=== Mit der Bahn ===
Der transkontinentale Fernreisezug [[Indian-Pacific Railway|Indian Pacific]] verkehrt ab/bis {{Marker | name =East Perth railway station | type =railway station | wikidata =Q5329143}}. Einzelheiten zu diesem Bundesstaat in [[Reisen mit dem Zug in Australien#Westaustralien|Reisen mit dem Zug in Australien]].
Die {{Marker | name =Perth railway station | type =railway station | wikidata =Q7170917}} ist das Drehkreuz für das [https://www.transperth.wa.gov.au Transperth-Schienennetz], von wo aus die Regionalbahnen verkehren.
=== Auf der Straße ===
Wichtigste Fernstraße in Westaustralien ist der ganz Australien umringende [[National Highway 1|National Highway}]] {{RSIGN|AU|NA|1}} (Details siehe [[#National Highway 1|National Highway 1]]).
Der ''Eyre Highway'' verbindet [[Port Augusta]] in [[Südaustralien]] mit {{Marker | name =Norseman | type =town | wikidata =Q1016823}}, von wo er sich verzweigt.
== Per Bus ==
Ab/bis Perth verkehren Buslinien von [https://www.transwa.wa.gov.au Transwa] und [https://www.greyhound.com.au Greyhound Australia].
== Orte ==
[[Datei:Perth CBD from Alf Curlewis Gardens - Perth.jpg|mini|Skyline von Perth]]
Die Hauptstadt des größten australischen Staates ist {{Marker | name =[[Perth]] | type =city | wikidata =Q3183}}. Dort leben mit rund 1,8 Millionen Einwohnern 82 % aller Westaustralier. Zur Agglomeration gehört auch die 1829 gegründete Hafenstadt {{Marker | name =[[Fremantle]] | type =city | wikidata =Q606212}}. Weitere Städte sind an der Küste nach Norden {{Marker | name =[[Carnarvon]] | type =town | wikidata =Q1021880 | show =copy}}, {{Marker | name =Broome | type =town | wikidata =Q606294 | show =copy}} und {{Marker | name =[[Port Hedland]] | type =town | wikidata =Q550465}}. Im Landesinneren liegt die 1893 gegründete Goldgräberstadt {{Marker | name =[[Kalgoorlie-Boulder]] | type =city | wikidata =Q329503}}.
== Nationalparks ==
{{mapframe | type= geoline | stroke= #FF0000 | stroke-width= 2 | stroke-opacity= 1 | id =Q3206}}
[[Datei:Karijini1.jpg|mini|Der ''Karijini-Nationalpark'' gilt als schönster Westaustraliens]]
In Westaustralien gibt es 112 Nationalparks, darunter:
* {{Marker | name =Avon Valley National Park | type =national park | wikidata =Q791260}}
* {{Marker | name =Bunuba National Park | type =national park | wikidata =Q122228529}}
* {{Marker | name =Cape Arid National Park | type =national park | wikidata =Q442279}}
* {{Marker | name =Drysdale River National Park | type =national park | wikidata =Q918062}}
* {{Marker | name =Karijini National Park | type =national park | wikidata =Q1729357 | status =top-sight}}
* {{Marker | name =Karlamilyi National Park | type =national park | wikidata =Q1733755 }}
* {{Marker | name =Leeuwin-Naturaliste National Park | type =national park | wikidata =Q60167}}
* {{Marker | name =Prince Regent National Park | type =national park | wikidata =Q2586011}}
* {{Marker | name =[[Purnululu-Nationalpark]] | type =national park | wikidata =Q679568}}
* {{Marker | name =Tunnel Creek National Park | type =national park | wikidata =Q446220}}
* {{Marker | name =Warlibirri National Park | type =national park | wikidata =Q121878997}}
* {{Marker | name =Windjana Gorge National Park | type =national park | wikidata =Q2072918}}
* {{Marker | name =Wolfe Creek Meteorite Crater National Park | type =national park | wikidata =Q2109503}}
== Berge, Flüsse, Seen ==
[[Datei:Gascoyne.jpg|mini|Der ''Gascoyne River'' bei Carnarvon ohne Wasser]]
Höchster Berg in Westaustralien ist der 1251 m hohe {{Marker | name =Mount Meharry | type =mountain | wikidata =Q1788401}}, der zur Bergkette {{Marker | name =Hamersley Range | type =mountain range | wikidata =Q1573394}} gehört. Längster – aber nicht immer wasserführender – Fluss ist der 978 km lange {{Marker | name =Gascoyne River | type =river | lat =-25.343333 | long =119.657778 | wikidata =Q1495089}}. Größter Süßwasser-See ist der {{Marker | name =Lake Argyle | type =lake | wikidata =Q1757739}}, ein 1972 angelegter Stausee, 740 km² groß. Der größte Teil des 3.494 km² großen Salzsees {{Marker | name =Lake Mackay | type =lake | wikidata =Q1074063}} gehört zu Westaustralien.
== Weitere Sehenswürdigkeiten ==
[[Datei:Wave Rock, January 2025 01.jpg|mini|Der ''Wave Rock'']]
Der 15 m hohe und 110 m lange {{Marker | name =Wave Rock | type =viewpoint | wikidata =Q1754627 | status =top-sight}} ist eine Granit-Felsformation, die wie eine große Welle aussieht, sie befindet sich beim Dorf {{Marker | name =Hyden | type =village | wikidata =Q1377673}}. Tagesreisen zum Wave Rock werden in Perth angeboten.
Der westliche Teil der 197.195 km² großen {{Marker | name =Nullabor Plain | type =landscape | lat =-31.882222 | long =127.328796 | wikidata =Q381050 | status =top-sight}} gehört zu Westaustralien und ist eine abflusslose, nicht ganz baumlose ([[w:Lateinisch|lateinisch]] „nulla arbor“, „kein Baum“) Steppenlandschaft.
Weinkenner können die 2130 km² große Weinregion {{Marker | name =Margaret River | type =landscape | wikidata =Q6759841}} mit über 200 Weingütern besuchen.
Vor der westlichen Küste liegen das Touristenresort {{Marker | name =[[Monkey Mia]] | type =landscape | wikidata =Q628994}}, das Korallenriff {{Marker | name =[[Ningaloo Reef]] | type =reef | wikidata =Q1541665}} und die {{Marker | name =[[Shark Bay]] | type =bay | wikidata = Q217487}}.
== Aktivitäten ==
De Tourist hat viele Möglichkeiten zum Angeln, Bootsfahren, Wandern und Wassersport.
Für Off-Road-Fans gibt es den {{Marker | name =[[Anne Beadell Highway]] | type =road | wikidata =Q565011}}. Er ist eine 1340 km lange Piste zwischen {{Marker | name =[[Coober Pedy]] | type =city | wikidata =Q779188 | show =none}} ([[Südaustralien]]) und {{Marker | name =Laverton | type =town | wikidata =Q1002750}} (Westaustralien).
Die 1962 gegründete {{Marker | name =Rawlinna station | type =farm | wikidata =Q7297024}} gilt mit 60.000 Schafen auf einer Fläche von 10.117 km² als die weltweit größte Schaffarm. Die Anzahl der Tiere schwankt zwischen Trocken- und Regenzeit. Touristen können auf dieser Farm arbeiten, wofür ein Visum für einen Arbeitsurlaub ({{enS|''working holiday visa''}}) erforderlich ist.
Für zahlreiche Aborigine-Reservate, meist abseits der Hauptstraßen, sind Einreiseerlaubnisse erforderlich ([https://aapapermits.microsoftcrmportals.com Antrag für eine Transiterlaubnis]). Etwa 70 % der online beantragten Transiterlaubnisse für Autofahrer können sofort und gebührenfrei abgerufen werden. Genehmigungen längerer Aufenthalte oder für Fahrrad- bzw. Kamelreisen dauern länger.
Schnorcheln mit Walhaien kann man in {{Marker | name =Exmouth | type =town | wikidata =Q1383990}}, dort gibt es viele Tauchshops, die diese Touren anbieten (recht teuer, um 300  AUS$). Auch Tauchen lernen oder Gehen lohnt sich: Das {{Marker | name =Ningaloo Reef | type =reef | wikidata =Q1541665}} ist ein echter Tauch-Geheimtipp.
== National Highway 1 ==
[[Datei:90 Mile Straight sign, Balladonia, 2017 (01).jpg|mini|Nicht einschlafen: 146,6 km geradeaus auf dem Eyre Highway]]
[[Datei:Beware sign, Balladonia, 2017 (02).jpg|mini|Achtung vor querenden Kamelen, Emus und Kängurus]]
Der [[National Highway 1|National Highway]] {{RSIGN|AU|NA|1}} kommt vom [[Northern Territory]] östlich von {{Marker | name =[[Kununurra]] | type =city | wikidata =Q1110973}} über die {{Marker | name =Grenze zum Northern Territory | type =road | lat =-15.981628 | long =129.000499}}, führt in Westaustralien durch {{Marker | name =Wyndham | type =town | wikidata =Q477835}}, {{Marker | name =Port Hedland | type =town | wikidata =Q550465 | show =copy}}, {{Marker | name =Geraldton | type =town | wikidata =Q605267 | show =copy}}, {{Marker | name =Perth | type =town | wikidata =Q3183 | show =copy}}, {{Marker | name =Mandurah | type =town | wikidata =Q595542 | show =copy}}, {{Marker | name =Bunbury | type =town | wikidata =Q256711 | show =copy}}, {{Marker | name =Walpole | type =town | wikidata =Q735780}}, {{Marker | name =Esperance | type =town | wikidata =Q1007665}} und {{Marker | name =Norseman | type =town | wikidata =Q1016823 | show =copy}}. Es folgt eine 146,6 km lange, schnurgerade Strecke zwischen {{Marker | name =Balladonia | type =village | lat =-32.464591 | long =123.868535 | wikidata =Q631111}} und {{Marker | name =Caiguna | type =village | wikidata =Q1025841}}, die unter dem Namen {{Marker | name =90 Mile straight | type =road | lat =-32.310929 | long =125.160112}} bekannt ist. Die Teilstrecke in der ''Nullarbour Plan'' ist Australiens längste kurvenlose Straße und liegt weltweit an Rang 11. Der Highway heißt hier auch ''Eyre Highway'' und führt weiter über das {{Marker | name =Cocklebiddy Roadhouse | type =shop | lat =-32.036930 | long =126.097244}}, {{Marker | name =Madura | type =town | wikidata =Q1883531}} und vorbei am {{Marker | name =Eucla National Park | type =national park | wikidata =Q1130900}}. Bei {{Marker | name =Border Village | type =town | wikidata =Q4944624}} verlässt der Highway Westaustralien Richtung Südaustralien.
== Indian-Pacific ==
[[Datei:Looking east on the trans australia line from cook.jpg|mini|478 Kilometer geradeaus: Der Indian-Pacific]]
Die 4352 km lange Strecke des Fernzuges {{Marker | name =[[Indian-Pacific Railway|Indian-Pacific]] | type =tour operator | lat =-30.840563 | long =121.270376}} beginnt/endet in Sydney. Er hält in Westaustralien lediglich in der {{Marker | name =Kalgoorlie railway station | type =railway station | wikidata = Q14935833}} und dem End- oder Startbahnhof {{Marker | name =East Perth railway station | type =railway station | wikidata =Q5329143 | show =copy}}. Ein Ein- oder Ausstieg ist nur in Perth möglich. In der {{Marker | name =Nullabor Plain | type =landscape | wikidata =Q381050 | show =copy}} durchquert der Zug mit einer Streckenlänge von 478 km die längste gerade Gleisstrecke der Welt, beginnend westlich von {{Marker | name =Loongana | type =town | wikidata =Q6675747}} (Westaustralien) bis {{Marker | name =Ooldea | type =town | wikidata =Q1706138}} (Südaustralien) ohne jede Kurve.
== Gesundheit ==
{{Siehe auch|Australien#Gesundheit}}<br />
Bereits bei einem UV-Index von 3 genügen 15 Minuten ungeschützte Exposition in der Sonne, um Hautschäden entstehen zu lassen. Bei einem Index von 10 oder höher sind in Australien stark sonnenschützende lange Kleidung und Sonnenschutzmittel mit einem Lichtschutzfaktor von mindestens 50 erforderlich. Die Gefahr der Dehydrierung ist überall sehr hoch, so dass für ausreichenden Wasservorrat (5 Liter pro Tag/Person) zu sorgen ist.
== Sicherheit ==
{{Siehe auch|Australien#Sicherheit}}<br />
In Australien herrscht Linksverkehr, was den an Rechtsverkehr gewöhnten Touristen besonders im Kreisverkehr und an Kreuzungen anfangs irritiert. Die Höchstgeschwindigkeit auf dem National Highway 1 beträgt 110 km/h. Angesichts der teilweise weiten Abstände zwischen Ortschaften mit Versorgungsmöglichkeit ist bei jeder Gelegenheit vollzutanken. Häufige Verkehrskontrollen fokussieren sich auf die Blutalkoholgrenze von 0,5 ‰.
Die Kriminalitätsraten in Westaustralien für Gewalttaten (22,99 pro tausend Einwohner) und Vermögensdelikte (52,53) liegen über dem australischen Durchschnitt. In Perth liegt die Rate für alle Straftaten bei 41,8, was gering ist für eine Großstadt. Am unsichersten sind {{Marker | name =Halls Creek | type =village | wikidata =Q992686}}, {{Marker | name =Meekatharra | type =village | wikidata =Q581029}} und {{Marker | name =Derby | type =village | wikidata =Q1018373}} – nicht gerade mit touristischen Highlights versehen.
Der aufmerksame Tourist kleidet sich stets unauffällig und ohne Markenware, achtet auf sein Gepäck und beobachtet konzentriert seine nähere Umgebung.
== Weblinks ==
* {{Offizielle Webseite}}
== Einzelnachweise ==
<references />
{{GeoData| lat=-26 | long=121 | radius= }}
{{class-2}}
{{IstInKat|Australien}}
{{IstIn|Westaustralien}}
{{Navigation Australien}}
j2yqo1ggp64mzm147tcl4vd7rtbz8kh
1769134
1768999
2026-04-17T04:57:46Z
RolandUnger
3
+show = copy
1769134
wikitext
text/x-wiki
{{Quickbar Bundesstaat Australien}}
'''Westaustralien''' ({{enS|''Western Australia''}}) ist der größte [[Australien|australische]] Bundesstaat und und grenzt im Nordosten an das [[Northern Territory ]] und im Südosten an [[Südaustralien]].
== Hintergrund ==
{{Marker | name =Westaustralien | type =region | wikidata =Q3206}} nimmt 32,9 % der Landfläche von ganz Australien ein, das {{Marker | name =[[Outback]] | type =landscape | lat =-25.344026 | long =127.650146 | wikidata =Q569073}} macht etwa 85 % der Fläche Westaustraliens aus.
== Geschichte ==
Indigene Aborigines wie die Malgana, Noongar, Wadandi, Wongi, Yamatji oder Yawuru siedelten hier mindestens bereits seit 48000 vor Christus. Auf sie traf als erster Europäer der holländische Seefahrer [[w:Dirk Hartog|Dirk Hartog]], als er am 25. Oktober 1616 auf der später nach ihm benannten {{Marker | name =Dirk Hartog Island | type =island | wikidata =Q1227891}} an der {{Marker | name =Dirk Hartog Landing Site | type =viewpoint | wikidata =Q1227877}} landete und die Zinntafel {{Marker | name =Hartog Plate | type =see | wikidata =Q2867164}} mit Datum und Namen hinterließ.<ref>[https://www.google.de/books/edition/The_History_of_Australian_Exploration_fr/ELNWAAAAYAAJ?hl=de&gbpv=1&dq=dirk+hartog+1616&pg=PA22&printsec=frontcover Ernest Favenc, ''The History of Australian Exploration from 1788 to 1888'', Golden Book Press, 1888, S. 22]</ref> Am 4. Februar 1697 landete hier am {{Marker | name =Cape Inscription | type =cape | wikidata =Q2937054}} sein Landsmann [[w:Willem de Vlamingh|Willem de Vlamingh]], fügte auf seiner neuen Zinnplatte seine eigene Nachricht hinzu, schrieb die Gravur seines Vorgängers ab und brachte dessen Tafel zurück nach Holland. Am 7. August 1699 landete der Engländer William Dampier in der {{Marker | name =Shark Bay | type =bay | wikidata =Q217487 | show =copy}}.
Eine genauere Kartografierung gelang erst dem Engländer [[w:Matthew Flinders|Matthew Flinders]], als er am 7. Dezember 1801 an {{Marker | name =Cape Leeuwin | type =cape | wikidata =Q1536418}} ankam. Die britische Kolonialisierung Australiens begann mit der Gründung der Strafkolonie [[New South Wales]] am 26. Januar 1788. Als weitere Kolonien folgten [[Western Australia]] (18. Juni 1829), South Australia (28. Dezember 1836), [[Victoria (Australien)|Victoria]] (1. Juli 1851), [[Queensland]] (6. Juni 1859) und [[Northern Territory]] (6. Juli 1863). Am 1. Januar 1901 schlossen sich diese sechs einzelnen australischen Kolonien zum ''Commonwealth of Australia'' zusammen.<ref>[https://www.google.de/books/edition/Das_Ausland/DiDIy_Me2ToC?hl=de&gbpv=1&dq=arthur+Phillip+1788+sydney+cove&pg=PA1031&printsec=frontcover J.F. Cotta'sche Buchhandlung (Hrsg.), ''Das Ausland'', Band 60, J.F. Cotta'sche Buchhandlung, 1887, S. 1031]</ref>
== Klima, Flora und Fauna ==
Im [[Nördliches Westaustralien|Nördlichen Westaustralien]] herrscht ein tropisches, vom Monsun beeinflusstes Klima mit feuchtem Sommer (Dezember bis Februar) und trockenem Winter (Juni bis August). Subtropisches bis mediterranes Klima besteht im [[Südliches Westaustralien|Südlichen Westaustralien]] mit heißem und trockenen Sommer und mildem, aber feuchtem Winter. Die Regenzeit fällt in den Zeitraum Oktober bis März, die Trockenzeit liegt zwischen April und September. Der Sommer weist sehr hohe Tagestemperaturen von mehr als 40 °C auf. Die Trockenzeit ist mit Tagestemperaturen um die 30 °C milder als die Regenzeit, deren Tagestemperaturen um die 40 °C schwanken. Falls es regnet, gibt es heftige Niederschläge, die Straßen schnell unpassierbar machen können ({{enS|''flash floods''}}). Die Nachttemperaturen können zwischen Juni und August auf 10 °C, zwischen April und Oktober um die 20 °C liegen. Wie in ganz Australien ist der UV-Index überdurchschnittlich hoch (über 10).
{{Scroll Gallery
|title = Klimadiagramme einzelner Orte in Westaustralien.
|align =center
|Bild:Klimadiagramm-Geraldton-Australien-metrisch-deutsch.png|Geraldton
|Bild:Klimadiagramm-Perth-Australien-metrisch-deutsch.png|[[Perth]]
|Bild:Klimadiagramm-Albany-Australien-metrisch-deutsch.png|[[Südliches Westaustralien#Albany|Albany]] an der Südküste
}}
In Westaustralien gibt es 202 Säugetierarten, davon gelten 53 Arten als gefährdet. Zu den Arten gehören die allgegenwärtigen Kängurus, Numbats, Quokkas und die marinen Arten Buckelwale, Dugongs oder Walhaie. Über 650 Vogelarten können beobachtet werden wie das westaustralische Wappentier, der Schwarze Schwan. Auch 6200 Reptilienarten ergänzen die Fauna wie Dornteufel, Geckos, Goannas (Warane), Krokodile (Salzwasser- und Süßwasser-Krokodile) und Schlangen. Letztere können dem Menschen lebensgefährlich werden wie der Taipan und die Mulga.
== Reisevorbereitung ==
Die beste Reisezeit liegt zwischen April und September. Der meiste Tourismus konzentriert sich auf die Westküste um Perth und die Südwestküste um Albany. Hier sind die touristischen Fazilitäten wie Hotels, Gaststätten oder Reiseunternehmen auf hohes touristisches Aufkommen sehr gut vorbereitet.
== Regionen ==
[[Datei:00 2161 Purnululu-Nationalpark - Western Australia.jpg|mini|Region Kimberley: ''Purnululu-Nationalpark'']]
Western Australia wird politisch/administrativ in neun Regionen und die Perth Metropolitan Region unterteilt:
{| class="wikitable" style="padding:1em; vertical-align:top; border:2px;"
|-
! [[w:Region|Region]]
! Hauptort
|-
| {{Marker | name =Gascoyne | type =region | wikidata =Q1495083}} || {{Marker | name =Carnarvon | type =town | wikidata =Q1021880}}
|-
| {{Marker | name =Goldfields–Esperance | type =region | wikidata =Q60120}} || {{Marker | name =Kalgoorlie | type =town | wikidata =Q329503}}
|-
| {{Marker | name =Great Southern | type =region | wikidata =Q60228}} || {{Marker | name =Albany | type =town | wikidata =Q704257}}
|-
| {{Marker | name =Kimberley | type =region | wikidata =Q672805}} || {{Marker | name =Broome | type =town | wikidata =Q606294}}
|-
| {{Marker | name =Mid West | type =region | wikidata =Q606266}} || {{Marker | name =Geraldton | type =town | wikidata =Q605267}}
|-
| {{Marker | name =Peel | type =region | wikidata =Q1973683}} || {{Marker | name =Mandurah | type =town | wikidata =Q595542}}
|-
| {{Marker | name =Perth Metropolitan Region | type =region | wikidata =Q7170870}} || {{Marker | name =Perth | type =city | wikidata =Q3183}}
|-
| {{Marker | name =Pilbara | type =region | wikidata =Q1362696}} || {{Marker | name =Karratha | type =town | wikidata =Q1309107}}
|-
| {{Marker | name =South West | type =region | wikidata =Q60385}} || {{Marker | name =Bunbury | type =town | wikidata =Q256711}}
|-
| {{Marker | name =Wheatbelt | type =region | wikidata =Q1850966}} || {{Marker | name =Northam | type =town | wikidata =Q478147}}
|}
Geografisch und klimatisch unterscheidet man {{Marker | name =Nördliches Westaustralien | type =region | lat =-22.268764 | long =122.651367 | wikidata =Q55868334}} und {{Marker | name =Südliches Westaustralien | type =region | lat =-31.428663 | long =123.090820 | wikidata =Q55868039}}.
In Westaustralien liegen einige Teilwüsten des Outbacks:
* {{Marker | name =Gibson Desert | type =desert | wikidata =Q272577}}
* {{Marker | name =Great Sandy Desert | type =desert | wikidata =Q326896}}
* {{Marker | name =Little Sandy Desert | type =desert | wikidata =Q4076}}
* {{Marker | name =Tanami Desert | type =desert | wikidata =Q674262}}
== Anreise ==
=== Mit dem Flugzeug ===
Für internationale Flüge nach Westaustralien steht der {{Marker | name =Perth Airport | type =airport | wikidata =Q45935}} zur Verfügung. Die Auslandsflüge werden in den Terminals T1 und T2 im Westen der Stadt abgefertigt, Inlandsflüge werden an den Terminals T3 und T4 im Osten der Stadt angeboten und vernetzen diverse Städte in Australien und auch Westaustralien.
=== Mit der Bahn ===
Der transkontinentale Fernreisezug [[Indian-Pacific Railway|Indian Pacific]] verkehrt ab/bis {{Marker | name =East Perth railway station | type =railway station | wikidata =Q5329143}}. Einzelheiten zu diesem Bundesstaat in [[Reisen mit dem Zug in Australien#Westaustralien|Reisen mit dem Zug in Australien]].
Die {{Marker | name =Perth railway station | type =railway station | wikidata =Q7170917}} ist das Drehkreuz für das [https://www.transperth.wa.gov.au Transperth-Schienennetz], von wo aus die Regionalbahnen verkehren.
=== Auf der Straße ===
Wichtigste Fernstraße in Westaustralien ist der ganz Australien umringende [[National Highway 1|National Highway}]] {{RSIGN|AU|NA|1}} (Details siehe [[#National Highway 1|National Highway 1]]).
Der ''Eyre Highway'' verbindet [[Port Augusta]] in [[Südaustralien]] mit {{Marker | name =Norseman | type =town | wikidata =Q1016823}}, von wo er sich verzweigt.
== Per Bus ==
Ab/bis Perth verkehren Buslinien von [https://www.transwa.wa.gov.au Transwa] und [https://www.greyhound.com.au Greyhound Australia].
== Orte ==
[[Datei:Perth CBD from Alf Curlewis Gardens - Perth.jpg|mini|Skyline von Perth]]
Die Hauptstadt des größten australischen Staates ist {{Marker | name =[[Perth]] | type =city | wikidata =Q3183 | show = copy }}. Dort leben mit rund 1,8 Millionen Einwohnern 82 % aller Westaustralier. Zur Agglomeration gehört auch die 1829 gegründete Hafenstadt {{Marker | name =[[Fremantle]] | type =city | wikidata =Q606212}}. Weitere Städte sind an der Küste nach Norden {{Marker | name =[[Carnarvon]] | type =town | wikidata =Q1021880 | show =copy}}, {{Marker | name =Broome | type =town | wikidata =Q606294 | show =copy}} und {{Marker | name =[[Port Hedland]] | type =town | wikidata =Q550465}}. Im Landesinneren liegt die 1893 gegründete Goldgräberstadt {{Marker | name =[[Kalgoorlie-Boulder]] | type =city | wikidata =Q329503 | show = copy }}.
== Nationalparks ==
{{mapframe | type= geoline | stroke= #FF0000 | stroke-width= 2 | stroke-opacity= 1 | id =Q3206}}
[[Datei:Karijini1.jpg|mini|Der ''Karijini-Nationalpark'' gilt als schönster Westaustraliens]]
In Westaustralien gibt es 112 Nationalparks, darunter:
* {{Marker | name =Avon Valley National Park | type =national park | wikidata =Q791260}}
* {{Marker | name =Bunuba National Park | type =national park | wikidata =Q122228529}}
* {{Marker | name =Cape Arid National Park | type =national park | wikidata =Q442279}}
* {{Marker | name =Drysdale River National Park | type =national park | wikidata =Q918062}}
* {{Marker | name =Karijini National Park | type =national park | wikidata =Q1729357 | status =top-sight}}
* {{Marker | name =Karlamilyi National Park | type =national park | wikidata =Q1733755 }}
* {{Marker | name =Leeuwin-Naturaliste National Park | type =national park | wikidata =Q60167}}
* {{Marker | name =Prince Regent National Park | type =national park | wikidata =Q2586011}}
* {{Marker | name =[[Purnululu-Nationalpark]] | type =national park | wikidata =Q679568}}
* {{Marker | name =Tunnel Creek National Park | type =national park | wikidata =Q446220}}
* {{Marker | name =Warlibirri National Park | type =national park | wikidata =Q121878997}}
* {{Marker | name =Windjana Gorge National Park | type =national park | wikidata =Q2072918}}
* {{Marker | name =Wolfe Creek Meteorite Crater National Park | type =national park | wikidata =Q2109503}}
== Berge, Flüsse, Seen ==
[[Datei:Gascoyne.jpg|mini|Der ''Gascoyne River'' bei Carnarvon ohne Wasser]]
Höchster Berg in Westaustralien ist der 1251 m hohe {{Marker | name =Mount Meharry | type =mountain | wikidata =Q1788401}}, der zur Bergkette {{Marker | name =Hamersley Range | type =mountain range | wikidata =Q1573394}} gehört. Längster – aber nicht immer wasserführender – Fluss ist der 978 km lange {{Marker | name =Gascoyne River | type =river | lat =-25.343333 | long =119.657778 | wikidata =Q1495089}}. Größter Süßwasser-See ist der {{Marker | name =Lake Argyle | type =lake | wikidata =Q1757739}}, ein 1972 angelegter Stausee, 740 km² groß. Der größte Teil des 3.494 km² großen Salzsees {{Marker | name =Lake Mackay | type =lake | wikidata =Q1074063}} gehört zu Westaustralien.
== Weitere Sehenswürdigkeiten ==
[[Datei:Wave Rock, January 2025 01.jpg|mini|Der ''Wave Rock'']]
Der 15 m hohe und 110 m lange {{Marker | name =Wave Rock | type =viewpoint | wikidata =Q1754627 | status =top-sight}} ist eine Granit-Felsformation, die wie eine große Welle aussieht, sie befindet sich beim Dorf {{Marker | name =Hyden | type =village | wikidata =Q1377673}}. Tagesreisen zum Wave Rock werden in Perth angeboten.
Der westliche Teil der 197.195 km² großen {{Marker | name =Nullabor Plain | type =landscape | lat =-31.882222 | long =127.328796 | wikidata =Q381050 | status =top-sight}} gehört zu Westaustralien und ist eine abflusslose, nicht ganz baumlose ([[w:Lateinisch|lateinisch]] „nulla arbor“, „kein Baum“) Steppenlandschaft.
Weinkenner können die 2130 km² große Weinregion {{Marker | name =Margaret River | type =landscape | wikidata =Q6759841}} mit über 200 Weingütern besuchen.
Vor der westlichen Küste liegen das Touristenresort {{Marker | name =[[Monkey Mia]] | type =landscape | wikidata =Q628994}}, das Korallenriff {{Marker | name =[[Ningaloo Reef]] | type =reef | wikidata =Q1541665}} und die {{Marker | name =[[Shark Bay]] | type =bay | wikidata = Q217487}}.
== Aktivitäten ==
De Tourist hat viele Möglichkeiten zum Angeln, Bootsfahren, Wandern und Wassersport.
Für Off-Road-Fans gibt es den {{Marker | name =[[Anne Beadell Highway]] | type =road | wikidata =Q565011}}. Er ist eine 1340 km lange Piste zwischen {{Marker | name =[[Coober Pedy]] | type =city | wikidata =Q779188 | show =none}} ([[Südaustralien]]) und {{Marker | name =Laverton | type =town | wikidata =Q1002750}} (Westaustralien).
Die 1962 gegründete {{Marker | name =Rawlinna station | type =farm | wikidata =Q7297024}} gilt mit 60.000 Schafen auf einer Fläche von 10.117 km² als die weltweit größte Schaffarm. Die Anzahl der Tiere schwankt zwischen Trocken- und Regenzeit. Touristen können auf dieser Farm arbeiten, wofür ein Visum für einen Arbeitsurlaub ({{enS|''working holiday visa''}}) erforderlich ist.
Für zahlreiche Aborigine-Reservate, meist abseits der Hauptstraßen, sind Einreiseerlaubnisse erforderlich ([https://aapapermits.microsoftcrmportals.com Antrag für eine Transiterlaubnis]). Etwa 70 % der online beantragten Transiterlaubnisse für Autofahrer können sofort und gebührenfrei abgerufen werden. Genehmigungen längerer Aufenthalte oder für Fahrrad- bzw. Kamelreisen dauern länger.
Schnorcheln mit Walhaien kann man in {{Marker | name =Exmouth | type =town | wikidata =Q1383990}}, dort gibt es viele Tauchshops, die diese Touren anbieten (recht teuer, um 300  AUS$). Auch Tauchen lernen oder Gehen lohnt sich: Das {{Marker | name =Ningaloo Reef | type =reef | wikidata =Q1541665 | show = copy }} ist ein echter Tauch-Geheimtipp.
== National Highway 1 ==
[[Datei:90 Mile Straight sign, Balladonia, 2017 (01).jpg|mini|Nicht einschlafen: 146,6 km geradeaus auf dem Eyre Highway]]
[[Datei:Beware sign, Balladonia, 2017 (02).jpg|mini|Achtung vor querenden Kamelen, Emus und Kängurus]]
Der [[National Highway 1|National Highway]] {{RSIGN|AU|NA|1}} kommt vom [[Northern Territory]] östlich von {{Marker | name =[[Kununurra]] | type =city | wikidata =Q1110973}} über die {{Marker | name =Grenze zum Northern Territory | type =road | lat =-15.981628 | long =129.000499}}, führt in Westaustralien durch {{Marker | name =Wyndham | type =town | wikidata =Q477835}}, {{Marker | name =Port Hedland | type =town | wikidata =Q550465 | show =copy}}, {{Marker | name =Geraldton | type =town | wikidata =Q605267 | show =copy}}, {{Marker | name =Perth | type =town | wikidata =Q3183 | show =copy}}, {{Marker | name =Mandurah | type =town | wikidata =Q595542 | show =copy}}, {{Marker | name =Bunbury | type =town | wikidata =Q256711 | show =copy}}, {{Marker | name =Walpole | type =town | wikidata =Q735780}}, {{Marker | name =Esperance | type =town | wikidata =Q1007665}} und {{Marker | name =Norseman | type =town | wikidata =Q1016823 | show =copy}}. Es folgt eine 146,6 km lange, schnurgerade Strecke zwischen {{Marker | name =Balladonia | type =village | lat =-32.464591 | long =123.868535 | wikidata =Q631111}} und {{Marker | name =Caiguna | type =village | wikidata =Q1025841}}, die unter dem Namen {{Marker | name =90 Mile straight | type =road | lat =-32.310929 | long =125.160112}} bekannt ist. Die Teilstrecke in der ''Nullarbour Plan'' ist Australiens längste kurvenlose Straße und liegt weltweit an Rang 11. Der Highway heißt hier auch ''Eyre Highway'' und führt weiter über das {{Marker | name =Cocklebiddy Roadhouse | type =shop | lat =-32.036930 | long =126.097244}}, {{Marker | name =Madura | type =town | wikidata =Q1883531}} und vorbei am {{Marker | name =Eucla National Park | type =national park | wikidata =Q1130900}}. Bei {{Marker | name =Border Village | type =town | wikidata =Q4944624}} verlässt der Highway Westaustralien Richtung Südaustralien.
== Indian-Pacific ==
[[Datei:Looking east on the trans australia line from cook.jpg|mini|478 Kilometer geradeaus: Der Indian-Pacific]]
Die 4352 km lange Strecke des Fernzuges {{Marker | name =[[Indian-Pacific Railway|Indian-Pacific]] | type =tour operator | lat =-30.840563 | long =121.270376}} beginnt/endet in Sydney. Er hält in Westaustralien lediglich in der {{Marker | name =Kalgoorlie railway station | type =railway station | wikidata = Q14935833}} und dem End- oder Startbahnhof {{Marker | name =East Perth railway station | type =railway station | wikidata =Q5329143 | show =copy}}. Ein Ein- oder Ausstieg ist nur in Perth möglich. In der {{Marker | name =Nullabor Plain | type =landscape | wikidata =Q381050 | show =copy}} durchquert der Zug mit einer Streckenlänge von 478 km die längste gerade Gleisstrecke der Welt, beginnend westlich von {{Marker | name =Loongana | type =town | wikidata =Q6675747}} (Westaustralien) bis {{Marker | name =Ooldea | type =town | wikidata =Q1706138}} (Südaustralien) ohne jede Kurve.
== Gesundheit ==
{{Siehe auch|Australien#Gesundheit}}<br />
Bereits bei einem UV-Index von 3 genügen 15 Minuten ungeschützte Exposition in der Sonne, um Hautschäden entstehen zu lassen. Bei einem Index von 10 oder höher sind in Australien stark sonnenschützende lange Kleidung und Sonnenschutzmittel mit einem Lichtschutzfaktor von mindestens 50 erforderlich. Die Gefahr der Dehydrierung ist überall sehr hoch, so dass für ausreichenden Wasservorrat (5 Liter pro Tag/Person) zu sorgen ist.
== Sicherheit ==
{{Siehe auch|Australien#Sicherheit}}<br />
In Australien herrscht Linksverkehr, was den an Rechtsverkehr gewöhnten Touristen besonders im Kreisverkehr und an Kreuzungen anfangs irritiert. Die Höchstgeschwindigkeit auf dem National Highway 1 beträgt 110 km/h. Angesichts der teilweise weiten Abstände zwischen Ortschaften mit Versorgungsmöglichkeit ist bei jeder Gelegenheit vollzutanken. Häufige Verkehrskontrollen fokussieren sich auf die Blutalkoholgrenze von 0,5 ‰.
Die Kriminalitätsraten in Westaustralien für Gewalttaten (22,99 pro tausend Einwohner) und Vermögensdelikte (52,53) liegen über dem australischen Durchschnitt. In Perth liegt die Rate für alle Straftaten bei 41,8, was gering ist für eine Großstadt. Am unsichersten sind {{Marker | name =Halls Creek | type =village | wikidata =Q992686}}, {{Marker | name =Meekatharra | type =village | wikidata =Q581029}} und {{Marker | name =Derby | type =village | wikidata =Q1018373}} – nicht gerade mit touristischen Highlights versehen.
Der aufmerksame Tourist kleidet sich stets unauffällig und ohne Markenware, achtet auf sein Gepäck und beobachtet konzentriert seine nähere Umgebung.
== Weblinks ==
* {{Offizielle Webseite}}
== Einzelnachweise ==
<references />
{{GeoData| lat=-26 | long=121 | radius= }}
{{class-2}}
{{IstInKat|Australien}}
{{IstIn|Westaustralien}}
{{Navigation Australien}}
5xff8wm3h6v98d2zz93lbszsjaprmql
1769209
1769134
2026-04-17T11:25:35Z
Wowo2024
53507
1769209
wikitext
text/x-wiki
{{Quickbar Bundesstaat Australien}}
'''Westaustralien''' ({{enS|''Western Australia''}}) ist der größte [[Australien|australische]] Bundesstaat und und grenzt im Nordosten an das [[Northern Territory ]] und im Südosten an [[Südaustralien]].
== Hintergrund ==
{{Marker | name =Westaustralien | type =region | wikidata =Q3206}} nimmt 32,9 % der Landfläche von ganz Australien ein, das {{Marker | name =[[Outback]] | type =landscape | lat =-25.344026 | long =127.650146 | wikidata =Q569073}} macht etwa 85 % der Fläche Westaustraliens aus.
== Geschichte ==
Indigene Aborigines wie die Malgana, Noongar, Wadandi, Wongi, Yamatji oder Yawuru siedelten hier mindestens bereits seit 48000 vor Christus. Auf sie traf als erster Europäer der holländische Seefahrer [[w:Dirk Hartog|Dirk Hartog]], als er am 25. Oktober 1616 auf der später nach ihm benannten {{Marker | name =Dirk Hartog Island | type =island | wikidata =Q1227891}} an der {{Marker | name =Dirk Hartog Landing Site | type =viewpoint | wikidata =Q1227877}} landete und die Zinntafel {{Marker | name =Hartog Plate | type =see | wikidata =Q2867164}} mit Datum und Namen hinterließ.<ref>[https://www.google.de/books/edition/The_History_of_Australian_Exploration_fr/ELNWAAAAYAAJ?hl=de&gbpv=1&dq=dirk+hartog+1616&pg=PA22&printsec=frontcover Ernest Favenc, ''The History of Australian Exploration from 1788 to 1888'', Golden Book Press, 1888, S. 22]</ref> Am 4. Februar 1697 landete hier am {{Marker | name =Cape Inscription | type =cape | wikidata =Q2937054}} sein Landsmann [[w:Willem de Vlamingh|Willem de Vlamingh]], fügte auf seiner neuen Zinnplatte seine eigene Nachricht hinzu, schrieb die Gravur seines Vorgängers ab und brachte dessen Tafel zurück nach Holland. Am 7. August 1699 landete der Engländer William Dampier in der {{Marker | name =Shark Bay | type =bay | wikidata =Q217487 | show =copy}}.
Eine genauere Kartografierung gelang erst dem Engländer [[w:Matthew Flinders|Matthew Flinders]], als er am 7. Dezember 1801 an {{Marker | name =Cape Leeuwin | type =cape | wikidata =Q1536418}} ankam. Die britische Kolonialisierung Australiens begann mit der Gründung der Strafkolonie [[New South Wales]] am 26. Januar 1788. Als weitere Kolonien folgten [[Western Australia]] (18. Juni 1829), South Australia (28. Dezember 1836), [[Victoria (Australien)|Victoria]] (1. Juli 1851), [[Queensland]] (6. Juni 1859) und [[Northern Territory]] (6. Juli 1863). Am 1. Januar 1901 schlossen sich diese sechs einzelnen australischen Kolonien zum ''Commonwealth of Australia'' zusammen.<ref>[https://www.google.de/books/edition/Das_Ausland/DiDIy_Me2ToC?hl=de&gbpv=1&dq=arthur+Phillip+1788+sydney+cove&pg=PA1031&printsec=frontcover J.F. Cotta'sche Buchhandlung (Hrsg.), ''Das Ausland'', Band 60, J.F. Cotta'sche Buchhandlung, 1887, S. 1031]</ref>
== Klima, Flora und Fauna ==
Im [[Nördliches Westaustralien|Nördlichen Westaustralien]] herrscht ein tropisches, vom Monsun beeinflusstes Klima mit feuchtem Sommer (Dezember bis Februar) und trockenem Winter (Juni bis August). Subtropisches bis mediterranes Klima besteht im [[Südliches Westaustralien|Südlichen Westaustralien]] mit heißem und trockenen Sommer und mildem, aber feuchtem Winter. Die Regenzeit fällt in den Zeitraum Oktober bis März, die Trockenzeit liegt zwischen April und September. Der Sommer weist sehr hohe Tagestemperaturen von mehr als 40 °C auf. Die Trockenzeit ist mit Tagestemperaturen um die 30 °C milder als die Regenzeit, deren Tagestemperaturen um die 40 °C schwanken. Falls es regnet, gibt es heftige Niederschläge, die Straßen schnell unpassierbar machen können ({{enS|''flash floods''}}). Die Nachttemperaturen können zwischen Juni und August auf 10 °C, zwischen April und Oktober um die 20 °C liegen. Wie in ganz Australien ist der UV-Index überdurchschnittlich hoch (über 10).
{{Scroll Gallery
|title = Klimadiagramme einzelner Orte in Westaustralien.
|align =center
|Bild:Klimadiagramm-Geraldton-Australien-metrisch-deutsch.png|Geraldton
|Bild:Klimadiagramm-Perth-Australien-metrisch-deutsch.png|[[Perth]]
|Bild:Klimadiagramm-Albany-Australien-metrisch-deutsch.png|[[Südliches Westaustralien#Albany|Albany]] an der Südküste
}}
In Westaustralien gibt es 202 Säugetierarten, davon gelten 53 Arten als gefährdet. Zu den Arten gehören die allgegenwärtigen Kängurus, Numbats, Quokkas und die marinen Arten Buckelwale, Dugongs oder Walhaie. Über 650 Vogelarten können beobachtet werden wie das westaustralische Wappentier, der Schwarze Schwan. Auch 6200 Reptilienarten ergänzen die Fauna wie Dornteufel, Geckos, Goannas (Warane), Krokodile (Salzwasser- und Süßwasser-Krokodile) und Schlangen. Letztere können dem Menschen lebensgefährlich werden wie der Taipan und die Mulga.
== Reisevorbereitung ==
Die beste Reisezeit liegt zwischen April und September. Der meiste Tourismus konzentriert sich auf die Westküste um Perth und die Südwestküste um Albany. Hier sind die touristischen Fazilitäten wie Hotels, Gaststätten oder Reiseunternehmen auf hohes touristisches Aufkommen sehr gut vorbereitet.
== Regionen ==
[[Datei:00 2161 Purnululu-Nationalpark - Western Australia.jpg|mini|Region Kimberley: ''Purnululu-Nationalpark'']]
Western Australia wird politisch/administrativ in neun Regionen und die Perth Metropolitan Region unterteilt:
{| class="wikitable" style="padding:1em; vertical-align:top; border:2px;"
|-
! [[w:Region|Region]]
! Hauptort
|-
| {{Marker | name =Gascoyne | type =region | wikidata =Q1495083}} || {{Marker | name =Carnarvon | type =town | wikidata =Q1021880}}
|-
| {{Marker | name =Goldfields–Esperance | type =region | wikidata =Q60120}} || {{Marker | name =Kalgoorlie | type =town | wikidata =Q329503}}
|-
| {{Marker | name =Great Southern | type =region | wikidata =Q60228}} || {{Marker | name =Albany | type =town | wikidata =Q704257}}
|-
| {{Marker | name =Kimberley | type =region | wikidata =Q672805}} || {{Marker | name =Broome | type =town | wikidata =Q606294}}
|-
| {{Marker | name =Mid West | type =region | wikidata =Q606266}} || {{Marker | name =Geraldton | type =town | wikidata =Q605267}}
|-
| {{Marker | name =Peel | type =region | wikidata =Q1973683}} || {{Marker | name =Mandurah | type =town | wikidata =Q595542}}
|-
| {{Marker | name =Perth Metropolitan Region | type =region | wikidata =Q7170870}} || {{Marker | name =Perth | type =city | wikidata =Q3183}}
|-
| {{Marker | name =Pilbara | type =region | wikidata =Q1362696}} || {{Marker | name =Karratha | type =town | wikidata =Q1309107}}
|-
| {{Marker | name =South West | type =region | wikidata =Q60385}} || {{Marker | name =Bunbury | type =town | wikidata =Q256711}}
|-
| {{Marker | name =Wheatbelt | type =region | wikidata =Q1850966}} || {{Marker | name =Northam | type =town | wikidata =Q478147}}
|}
Geografisch und klimatisch unterscheidet man {{Marker | name =Nördliches Westaustralien | type =region | lat =-22.268764 | long =122.651367 | wikidata =Q55868334}} und {{Marker | name =Südliches Westaustralien | type =region | lat =-31.428663 | long =123.090820 | wikidata =Q55868039}}.
In Westaustralien liegen einige Teilwüsten des Outbacks:
* {{Marker | name =Gibson Desert | type =desert | wikidata =Q272577}}
* {{Marker | name =Great Sandy Desert | type =desert | wikidata =Q326896}}
* {{Marker | name =Little Sandy Desert | type =desert | wikidata =Q4076}}
* {{Marker | name =Tanami Desert | type =desert | wikidata =Q674262}}
== Anreise ==
=== Mit dem Flugzeug ===
Für internationale Flüge nach Westaustralien steht der {{Marker | name =Perth Airport | type =airport | wikidata =Q45935}} zur Verfügung. Die Auslandsflüge werden in den Terminals T1 und T2 im Westen der Stadt abgefertigt, Inlandsflüge werden an den Terminals T3 und T4 im Osten der Stadt angeboten und vernetzen diverse Städte in Australien und auch Westaustralien.
=== Mit der Bahn ===
Der transkontinentale Fernreisezug [[Indian-Pacific Railway|Indian Pacific]] verkehrt ab/bis {{Marker | name =East Perth railway station | type =railway station | wikidata =Q5329143}}. Einzelheiten zu diesem Bundesstaat in [[Reisen mit dem Zug in Australien#Westaustralien|Reisen mit dem Zug in Australien]].
Die {{Marker | name =Perth railway station | type =railway station | wikidata =Q7170917}} ist das Drehkreuz für das [https://www.transperth.wa.gov.au Transperth-Schienennetz], von wo aus die Regionalbahnen verkehren.
=== Auf der Straße ===
Wichtigste Fernstraße in Westaustralien ist der ganz Australien umringende [[National Highway 1|National Highway}]] {{RSIGN|AU|NA|1}} (Details siehe [[#National Highway 1|National Highway 1]]).
Der ''Eyre Highway'' verbindet [[Port Augusta]] in [[Südaustralien]] mit {{Marker | name =Norseman | type =town | wikidata =Q1016823}}, von wo er sich verzweigt.
== Per Bus ==
Ab/bis Perth verkehren Buslinien von [https://www.transwa.wa.gov.au Transwa] und [https://www.greyhound.com.au Greyhound Australia].
== Orte ==
[[Datei:Perth CBD from Alf Curlewis Gardens - Perth.jpg|mini|Skyline von Perth]]
Die Hauptstadt des größten australischen Staates ist {{Marker | name =[[Perth]] | type =city | wikidata =Q3183 | show = copy }}. Dort leben mit rund 1,8 Millionen Einwohnern 82 % aller Westaustralier. Zur Agglomeration gehört auch die 1829 gegründete Hafenstadt {{Marker | name =[[Fremantle]] | type =city | wikidata =Q606212}}. Weitere Städte sind an der Küste nach Norden {{Marker | name =[[Carnarvon]] | type =town | wikidata =Q1021880 | show =copy}}, {{Marker | name =Broome | type =town | wikidata =Q606294 | show =copy}} und {{Marker | name =[[Port Hedland]] | type =town | wikidata =Q550465}}. Im Landesinneren liegt die 1893 gegründete Goldgräberstadt {{Marker | name =[[Kalgoorlie-Boulder]] | type =city | wikidata =Q329503 | show = copy }}.
== Nationalparks ==
{{mapframe | type= geoline | stroke= #FF0000 | stroke-width= 2 | stroke-opacity= 1 | id =Q3206}}
[[Datei:Karijini1.jpg|mini|Der ''Karijini-Nationalpark'' gilt als schönster Westaustraliens]]
In Westaustralien gibt es 112 Nationalparks, darunter:
* {{Marker | name =Avon Valley National Park | type =national park | wikidata =Q791260}}
* {{Marker | name =Bunuba National Park | type =national park | wikidata =Q122228529}}
* {{Marker | name =Cape Arid National Park | type =national park | wikidata =Q442279}}
* {{Marker | name =Drysdale River National Park | type =national park | wikidata =Q918062}}
* {{Marker | name =Karijini National Park | type =national park | wikidata =Q1729357 | status =top-sight}}
* {{Marker | name =Karlamilyi National Park | type =national park | wikidata =Q1733755 }}
* {{Marker | name =Leeuwin-Naturaliste National Park | type =national park | wikidata =Q60167}}
* {{Marker | name =Prince Regent National Park | type =national park | wikidata =Q2586011}}
* {{Marker | name =[[Purnululu-Nationalpark]] | type =national park | wikidata =Q679568}}
* {{Marker | name =Tunnel Creek National Park | type =national park | wikidata =Q446220}}
* {{Marker | name =Warlibirri National Park | type =national park | wikidata =Q121878997}}
* {{Marker | name =Windjana Gorge National Park | type =national park | wikidata =Q2072918}}
* {{Marker | name =Wolfe Creek Meteorite Crater National Park | type =national park | wikidata =Q2109503}}
== Berge, Flüsse, Seen ==
[[Datei:Gascoyne.jpg|mini|Der ''Gascoyne River'' bei Carnarvon ohne Wasser]]
Höchster Berg in Westaustralien ist der 1251 m hohe {{Marker | name =Mount Meharry | type =mountain | wikidata =Q1788401}}, der zur Bergkette {{Marker | name =Hamersley Range | type =mountain range | wikidata =Q1573394}} gehört. Längster – aber nicht immer wasserführender – Fluss ist der 978 km lange {{Marker | name =Gascoyne River | type =river | lat =-25.343333 | long =119.657778 | wikidata =Q1495089}}. Größter Süßwasser-See ist der {{Marker | name =Lake Argyle | type =lake | wikidata =Q1757739}}, ein 1972 angelegter Stausee, 740 km² groß. Der größte Teil des 3.494 km² großen Salzsees {{Marker | name =Lake Mackay | type =lake | wikidata =Q1074063}} gehört zu Westaustralien.
== Weitere Sehenswürdigkeiten ==
[[Datei:Wave Rock, January 2025 01.jpg|mini|Der ''Wave Rock'']]
Der 15 m hohe und 110 m lange {{Marker | name =Wave Rock | type =viewpoint | wikidata =Q1754627 | status =top-sight}} ist eine Granit-Felsformation, die wie eine große Welle aussieht, sie befindet sich beim Dorf {{Marker | name =Hyden | type =village | wikidata =Q1377673}}. Tagesreisen zum Wave Rock werden in Perth angeboten.
Der westliche Teil der 197.195 km² großen {{Marker | name =Nullabor Plain | type =landscape | lat =-31.882222 | long =127.328796 | wikidata =Q381050 | status =top-sight}} gehört zu Westaustralien und ist eine abflusslose, nicht ganz baumlose ([[w:Lateinisch|lateinisch]] „nulla arbor“, „kein Baum“) Steppenlandschaft.
Weinkenner können die 2130 km² große Weinregion {{Marker | name =Margaret River | type =landscape | wikidata =Q6759841}} mit über 200 Weingütern besuchen.
Vor der westlichen Küste liegen das Touristenresort {{Marker | name =[[Monkey Mia]] | type =landscape | wikidata =Q628994}}, das Korallenriff {{Marker | name =[[Ningaloo Reef]] | type =reef | wikidata =Q1541665}} und die {{Marker | name =[[Shark Bay]] | type =bay | wikidata = Q217487}}.
== Aktivitäten ==
De Tourist hat viele Möglichkeiten zum Angeln, Bootsfahren, Wandern und Wassersport.
Für Off-Road-Fans gibt es den {{Marker | name =[[Anne Beadell Highway]] | type =road | wikidata =Q565011}}. Er ist eine 1340 km lange Piste zwischen {{Marker | name =[[Coober Pedy]] | type =city | wikidata =Q779188 | show =none}} ([[Südaustralien]]) und {{Marker | name =Laverton | type =town | wikidata =Q1002750}} (Westaustralien).
Die 1962 gegründete {{Marker | name =Rawlinna station | type =farm | wikidata =Q7297024}} gilt mit 60.000 Schafen auf einer Fläche von 10.117 km² als die weltweit größte Schaffarm. Die Anzahl der Tiere schwankt zwischen Trocken- und Regenzeit. Touristen können auf dieser Farm arbeiten, wofür ein Visum für einen Arbeitsurlaub ({{enS|''working holiday visa''}}) erforderlich ist.
Für zahlreiche Aborigine-Reservate, meist abseits der Hauptstraßen, sind Einreiseerlaubnisse erforderlich ([https://aapapermits.microsoftcrmportals.com Antrag für eine Transiterlaubnis]). Etwa 70 % der online beantragten Transiterlaubnisse für Autofahrer können sofort und gebührenfrei abgerufen werden. Genehmigungen längerer Aufenthalte oder für Fahrrad- bzw. Kamelreisen dauern länger.
Schnorcheln mit Walhaien kann man in {{Marker | name =Exmouth | type =town | wikidata =Q1383990}}, dort gibt es viele Tauchshops, die diese Touren anbieten (recht teuer, um 300  AUS$). Auch Tauchen lernen oder Gehen lohnt sich: Das {{Marker | name =Ningaloo Reef | type =reef | wikidata =Q1541665 | show = copy }} ist ein echter Tauch-Geheimtipp.
== National Highway 1 ==
[[Datei:90 Mile Straight sign, Balladonia, 2017 (01).jpg|mini|Nicht einschlafen: 146,6 km geradeaus auf dem Eyre Highway]]
[[Datei:Beware sign, Balladonia, 2017 (02).jpg|mini|Achtung vor querenden Kamelen, Emus und Kängurus]]
Der [[National Highway 1|National Highway]] {{RSIGN|AU|NA|1}} kommt vom [[Northern Territory]] östlich von {{Marker | name =[[Kununurra]] | type =city | wikidata =Q1110973}} über die {{Marker | name =Grenze zum Northern Territory | type =road | lat =-15.981628 | long =129.000499}}, führt in Westaustralien durch {{Marker | name =Wyndham | type =town | wikidata =Q477835}}, {{Marker | name =Port Hedland | type =town | wikidata =Q550465 | show =copy}}, {{Marker | name =Geraldton | type =town | wikidata =Q605267 | show =copy}}, {{Marker | name =Perth | type =town | wikidata =Q3183 | show =copy}}, {{Marker | name =Mandurah | type =town | wikidata =Q595542 | show =copy}}, {{Marker | name =Bunbury | type =town | wikidata =Q256711 | show =copy}}, {{Marker | name =Walpole | type =town | wikidata =Q735780}}, {{Marker | name =Esperance | type =town | wikidata =Q1007665}} und {{Marker | name =Norseman | type =town | wikidata =Q1016823 | show =copy}}. Es folgt eine 146,6 km lange, schnurgerade Strecke zwischen {{Marker | name =Balladonia | type =village | lat =-32.464591 | long =123.868535 | wikidata =Q631111}} und {{Marker | name =Caiguna | type =village | wikidata =Q1025841}}, die unter dem Namen {{Marker | name =90 Mile straight | type =road | lat =-32.310929 | long =125.160112}} bekannt ist. Die Teilstrecke in der ''Nullarbour Plan'' ist Australiens längste kurvenlose Straße und liegt weltweit an Rang 11. Der Highway heißt hier auch ''Eyre Highway'' und führt weiter über das {{Marker | name =Cocklebiddy Roadhouse | type =shop | lat =-32.036930 | long =126.097244}}, {{Marker | name =Madura | type =town | wikidata =Q1883531}} und vorbei am {{Marker | name =Eucla National Park | type =national park | wikidata =Q1130900}}. Bei {{Marker | name =Border Village | type =town | wikidata =Q4944624}} verlässt der Highway Westaustralien Richtung Südaustralien.
== Indian-Pacific ==
[[Datei:Looking east on the trans australia line from cook.jpg|mini|478 Kilometer geradeaus: Der Indian-Pacific]]
Die 4352 km lange Strecke des Fernzuges {{Marker | name =[[Indian-Pacific Railway|Indian-Pacific]] | type =tour operator | lat =-30.840563 | long =121.270376}} beginnt/endet in Sydney. Er hält in Westaustralien lediglich in der {{Marker | name =Kalgoorlie railway station | type =railway station | wikidata = Q14935833}} und dem End- oder Startbahnhof {{Marker | name =East Perth railway station | type =railway station | wikidata =Q5329143 | show =copy}}. Ein Ein- oder Ausstieg ist nur in Perth möglich. In der {{Marker | name =Nullabor Plain | type =landscape | wikidata =Q381050 | show =copy}} durchquert der Zug mit einer Streckenlänge von 478 km die längste gerade Gleisstrecke der Welt, beginnend westlich von {{Marker | name =Loongana | type =town | wikidata =Q6675747}} (Westaustralien) bis {{Marker | name =Ooldea | type =town | wikidata =Q1706138}} (Südaustralien) ohne jede Kurve.
== Gesundheit ==
{{Siehe auch|Australien#Gesundheit}}<br />
Bereits bei einem UV-Index von 3 genügen 15 Minuten ungeschützte Exposition in der Sonne, um Hautschäden entstehen zu lassen. Bei einem Index von 10 oder höher sind in Australien stark sonnenschützende lange Kleidung und Sonnenschutzmittel mit einem Lichtschutzfaktor von mindestens 50 erforderlich. Die Gefahr der Dehydrierung ist überall sehr hoch, so dass für ausreichenden Wasservorrat (5 Liter pro Tag/Person) zu sorgen ist.
== Sicherheit ==
{{Siehe auch|Australien#Sicherheit}}<br />
In Australien herrscht Linksverkehr, was den an Rechtsverkehr gewöhnten Touristen besonders im Kreisverkehr und an Kreuzungen anfangs irritiert. Die Höchstgeschwindigkeit auf dem National Highway 1 beträgt 110 km/h. Angesichts der teilweise weiten Abstände zwischen Ortschaften mit Versorgungsmöglichkeit ist bei jeder Gelegenheit vollzutanken. Häufige Verkehrskontrollen fokussieren sich auf die Blutalkoholgrenze von 0,5 ‰.
Die Kriminalitätsraten in Westaustralien für Gewalttaten (22,99 pro tausend Einwohner) und Vermögensdelikte (52,53) liegen über dem australischen Durchschnitt. In Perth liegt die Rate für alle Straftaten bei 41,8, was gering ist für eine Großstadt. Am unsichersten sind {{Marker | name =Halls Creek | type =village | wikidata =Q992686}}, {{Marker | name =Meekatharra | type =village | wikidata =Q581029}} und {{Marker | name =Derby | type =village | wikidata =Q1018373}} – nicht gerade mit touristischen Highlights versehen.
Der aufmerksame Tourist kleidet sich stets unauffällig und ohne Markenware, achtet auf sein Gepäck und beobachtet konzentriert seine nähere Umgebung.
== Weblinks ==
* {{Offizielle Webseite}}
== Einzelnachweise ==
<references />
{{GeoData| lat=-26 | long=121 | radius= }}
{{class-4}}
{{IstInKat|Australien}}
{{IstIn|Westaustralien}}
{{Navigation Australien}}
pphvt36t6lcxsfvivtre9sd183avkwi
Radrouten in Rheinland-Pfalz
0
7276
1769146
1768802
2026-04-17T06:35:28Z
Dirk Schmidt
15181
/* Pfalz */
1769146
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Deutschland}}
[[File:Cycling-sign-eifel.jpg|thumb|In der Eifel liebt man große Logos]]
[[Datei:Beilstein BW 0.JPG|mini|Beilstein im Moseltal]]
Rheinland-Pfalz besitzt attraktive und abwechslungsreiche Radwanderwege. Ob entspannt in den Flusstälern von Rhein, Mosel oder Nahe oder anspruchvoll über die Höhen – hier findet jeder die passende Route.
Neben den sieben großen Radfernwegen entlang der Flüsse gibt es in Rheinland Pfalz 78 offizielle Themenrouten. Wer möchte kann auf der [[Rheinland-Pfalz-Radroute]] das Bundesland einmal komplett umrunden.
Viele Routen sind wegen der Mittelgebirgslage sportlich anspruchsvoll. Die eher flachen, großen Flussrouten an Rhein und Mosel verlaufen teilweise neben stark befahrenen Bundesstraßen. Landschaftlich sind die Strecken aber reizvoll.
Auch in den Mittelgebirgen gibt es vorzügliche Routen mit geringen Steigungen, z. B. als Radweg ausgebaute alte Bahntrassen. Interessant sind die sehr guten Anbindungen an die [[Vennbahn]] mit Verbindung zum belgischen und luxemburgischen Radwegenetz.
Die Wegequalität ist im Vergleich zu anderen Bundesländern deutlich besser. Schotter, Schlamm oder Matsch sind selten und die Radwege sind asphaltiert.
== Radfernwege ==
[[Datei:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Rhein-Radweg an der Rheinterrasse zwischen Nierstein und Nackenheim]]
[[Datei:Mosel-01.jpg|thumb|Weinberge auch an der Mosel bei Winningen]]
'''Flussrouten''':
*'''[[Rhein-Radweg]]''', frz. '''Veloroute Rhin'''
*'''[[Nahe-Radweg]]'''
*'''[[Lahntalradweg]]'''
*'''[[Mosel-Radweg]]'''
*'''[[Saar-Radweg]]'''
*'''[[Kylltal-Radweg]]''' - Nebenfluss der Mosel
*'''[[Ahr-Radweg]]''' bzw. Ahrtal-Radwanderweg
Die Flussrouten am Mittelrhein, der Mosel und entlang der Nahe lassen sich mit dem Ruwwer-Hochwald-Radweg über den Hunsrück zu einer attraktiven Wochenrunde kombinieren. Weiteres siehe hier im Artikel [[Nahe-Radweg#Vorbereitung|Nahe-Radweg]].
'''andere Radfernwege:'''
*'''[[3-Länder-Route]]''' − Zwischen Eifel und Ardennen, in Deutschland, Belgien und Luxemburg durch „Das grüne Herz Europas“ führt die 3-Länder-Route auf der 250 km langen Strecke von Aachen nach Trier. Route ist vom Eifelverein eingerichtet worden und hat keine normgerechte Wegweisung. Sie soll Radler in die Eifel locken.
* '''[[Radweg Deutsche Einheit]]''' - rund 1100 km langer Radweg von Bonn nach Berlin
*'''[[Rheinland-Pfalz-Radroute]]''' - lange Rundtour im Bereich der Bundeslandgrenzen
*'''[[Veloroute SaarLorLux]]''' - recht lange Route im Dreiländereck
*'''[[Welterbe-Radweg]]''' Kloster Lorsch (Hessen), Kaiserdom Speyer (RP], Kloster Maulbronn (BW)
*'''[[Limes-Radweg]]''' − von Bad Hönningen am Rhein über Westerwald, Bad Ems und Taunus nach Regensburg
== Regionalrouten ==
=== Westerwald ===
*'''[[Asdorftal-Radwanderweg]]''' - in Rheinland-Pfalz nur ca. 12 km kurzer Bahntrassenradweg auf der Trasse der Asdorftalbahn. Fortsetzung in NRW.
*'''[[Nister-Radweg]]''' - 71 km von [[Willingen (Westerwald)|Willingen]] über [[Bad Marienberg]] nach Wissen an der Sieg
*'''[[Radweg Puderbacher Land]]'''
*'''[[Wald- und Wiesentour]]''' Rundtour von Diez
*'''[[Siegtal-Radweg]]''' endet in Troisdorf (NRW) am Rhein
=== Taunus ===
*'''[[Loreley-Aar-Radweg|Loreley-Aar-Radweg]]''' - Die Route führt von [[St. Goarshausen]] im [[Mittelrheintal]] über Bogel bis nach Zollhaus/Hahnstätten an die Aar. Von hier kann man über den Aartalradweg dann [[Diez]] an der Lahn erreichen. Auf 8 km verläuft die Strecke auf der Trasse der ehemaligen Nassauischen Kleinbahn (Infos zum Streckenabschnitt "St. Goarshausen - Bogel" auf [http://www.achim-bartoschek.de/bahn_rp.htm#rp4_08 Bahntrassenradeln.de]). Die Strecke besitzt ein anspruchsvolles Höhenprofil. [https://www.rhein-lahn-info.de/radwege/loreley-aar.htm Info].
=== Eifel ===
[[Datei:Mmr-03.jpg|thumb|Pleiner Viadukt (Mosel-Maare-Radweg)]]
[[Datei:Radweg auf der Vennquerbahn-8429.jpg|mini|Radweg auf der Vennquerbahn zwischen Hallschlag und Losheim (Bahnradweg gehört in Teilen zum oberen Kylltal-Radweg]]
* '''[[5-Täler-Tour]]''' - deutsch-luxemburgische Route, 115 km entlang der kleinen Flüsse Nims, Sauer, Prüm und Kyll sowie der Mosel
*'''[[Brohltal-Radweg]]''' - die 32 km lange Strecke führt von [[Burgbrohl]] nach [[Hohenleimbach]]. Ein Abschnitt verläuft auf der B 412. [https://www.vulkanregion-laacher-see.de/a-brohltalradweg Info]
*'''[[Eifel-Ardennen-Radweg]]''' − 112 km von Steinebrück an der deutsch-belgischen Grenze über Prüm und Daun zum Nürburgring. Ein Höhepunkt der Strecke ist der 400 m lange [[w:Bleialfer Tunnel|Bleialfer Tunnel]], der zwischen dem 1. April und dem 31. Oktober durchfahren werden kann. Das Bauwerk wirkt aufgrund seiner Kurve länger als es ist. Die Strecke ist asphaltiert und hat bis Prüm eine hohe Qualität. [[w:Eifel-Ardennen-Radweg|Info Wikipedia]]
*'''[[Eifel-Höhen-Route]]''' ·- schwierige Tour durch die nördlichen Höhen der Eifel.
*'''[[Enz-Radweg]]''' − 45 km von Pronsfeld im Prümtal über [[Neuerburg]] nach Holsthum im Prümtal (davon 23 km Bahntrassenradweg mit zwei Tunnelbauwerken von 116 und 125 m Länge). An beiden Enden besteht Anschluss an den Prümtalradweg. Die Route führt "über die Berge" und ist teils Wirtschaftsweg, teils reiner Radweg. Die Decke ist Asphalt oder Beton.
* '''[[Kalkeifel-Radweg]]''' - 22 km lange Querverbindung zwischen [[Kylltal-Radweg|Kylltal-Radweg]] bei Bolsdorf und dem [[Ahr-Radweg|Ahr-Radweg]] bei Ahrdorf, die teilweise eine ehemalige Bahntrasse nutzt.
* '''[[Kylltal-Radweg]]''' - 130 km durch die Eifel von Hellenthal bis nach [[Trier]].
*'''[[Kosmosradweg Kleine Kyll]]''' − 21 km, 45 hm rauf, 96 hm runter. Die kurvenreiche, überwiegend familienfreundlich ebene Trasse führt fast vollständig auf eigenen Wegen vom Kurpark Daun über Pützborn, Oberstadtfeld, Niederstadtfeld und Schutz bis nach Meerfeld und ermöglicht über Manderscheid einen Rundkurs mit dem Maare-Mosel-Radweg. Das Tal der [[W:Kleine Kyll|Kleinen Kyll]] verläuft parallel zum Liesertal. [http://www.kosmosradweg.de/ Kosmosradweg]
*'''[[Maifeld-Radwanderweg]]''' - 21 km von Ochtendung nach Münstermaifeld in der Region Maifeld, asphaltiert und bis auf einen Kilometer auf einer Bahntrasse. Mit der Abzweigung nach [[Mayen]] sind es noch 8 km mehr.
*'''[[Maare-Mosel-Radweg]]''' - Attraktiver Radweg, der die Vulkaneifel bei [[Daun]] mit dem Moseltal bei [[Bernkastel-Kues]] verbindet. Die asphaltierte Strecke verläuft weitgehend auf einer ehemaligen Bahntrasse mit Tunneln und Viadukten. Freizeitbusse mit Radtransport verkehren täglich parallel im Bereich der Route.
*'''[[Mineralquellen-Route]]''' − Quellende Verbindung zwischen dem [[Ahr-Radweg]] und dem [[Maare-Mosel-Radweg]] in [[Daun]].
*'''[[Nimstalradweg]]''' - Die 65 km lange Route bietet Skulpturen aus Sandstein und reichlich Bier in [[Bitburg]]. Wer der Nims bis zu ihrem Ende folgt, landet an der Prüm bei [[Irrel]].
*'''[[Prümtalradweg]]''' - Im Tal des Flusses Prüm liegt auch der gleichnamige Ort. Die 98 km lange Route, die über zahlreiche interessante Anbindungen verfügt, ist teilweise leider recht steil, was daran liegt, dass sie nicht im Tal bleibt. Vom Ort [[Prüm]] aus startet ein kürzerer Bahntrassenradweg nach Waxweiler, wo dann allerdings Schluss mit der Herrlichkeit ist.
*'''[[Radweg Wittlicher Senke]]''' - Die 31 km lange Strecke verbindet die Wittlich am Maare-Mosel-Radeg mich Schweich im Moseltal. Die Strecke Stellt damit eine Radwanderstrecke zwischen Wittlich und Trier her. Von Oberfläche hier ist der Radweg Wittlicher Senke komplett Aspaltiert. [[w:Radweg Wittlicher Senke|Info in der Wikipedia]]
*'''[[Sauertal-Radweg]]''' -60 km Flusstour von [[Ettelbrück]] (L) über [[Bollendorf]], [[Echternach]] (L) nach Wasserbilligerbrück an der Mosel. Diese Beschreibung beinhaltet einen Teil des luxemburgischen Radweges auf dem rechten Ufer, der als PC3 und PC16 ausgeschildert ist. täglich [http://www.regioradler.de/index.php?pre=de_&code=&haktiv=1&uaktiv=8 Radler-Bus]: Bollendorf - Trier
*'''[[Vulkanpark-Radweg]]''' - 31 km lange Route von [[Andernach]] am Rhein nach [[Mayen]] in die Eifel. Weitere Infos: [http://vulkanpark.com/downloads/vulkanparkradweg.pdf Faltblatt als PDF-Datei]
*'''[[Vennquerbahn]]''' - Der 38{{nnbsp}}km lange Bahnradweg zweigt bei Weywertz in Belgien von der bekannten [[Vennbahn]] abzweigt. Über Bütgenbach und Losheim (Eifel) geht es bis nach Jünkerath. Hier besteht mit Rad und Bahn Anschluss an die Eifelstrecke Trier - Köln. In Teilen liegt der obere Kylltal-Radweg auf der Strecke.
=== Hunsrück ===
*'''[[Schinderhannes-Radweg]]''' − 37 km langer attraktiver Bahntrassenweg auf asphaltierter Strecke im Hunsrück, von Emmelshausen nach Simmern. Bahn- und Fahrrad-Freizeibusse verbinden die Route.
*'''[[Schinderhannes-Untermosel-Radweg|Schinderhannes-Mosel-Radweg]]''' − 21 km, 122 hm hinauf, 510 hm hinab − Emmelshausen (Bahnhof) auf der Hunsrückhochfläche - Burgen/Mosel im Moseltal; Routenverlauf auf [http://www.openstreetmap.org/?relation=1781430 OpenStreetMap]
*'''[[Schinderhannes-Soonwald-Radweg]]''' − 16 km, 180 hm hinauf, 225 hm hinunter · Simmern - Gemünden (Simmerbachbrücke); Routenverlauf auf [http://www.openstreetmap.org/?relation=1781324 OpenStreetMap]
*'''[[Biebertaler Rundweg]]''' [http://www.simmern-hunsrueck.de/upload/Biebertal_DRUCK_NEU_1711.pdf Biebertaler Rundweg bei Simmern Pdf], 26,2 km, addierte Höhenmeter: 250 m
*'''[[Hunsrück-Radweg]]''' (alter Name auch [[Rhein-Hunsrück-Saar-Radweg|Rhein-Hunsrück-Saar-Radweg]]) - 155 km erschließt den zentralen Hunsrück in Ost-West-Richtung von Niederheimbach im Mittelheintal über Rheinböllen, Simmern, Kirchberg, Meinhardt, Morbach, [[Erbeskopf]], Hermeskeil, Kell am See ,Zerf und [[Saarburg]]; Routenverlauf auf [http://www.openstreetmap.org/?relation=572448 OpenStreetMap]
*'''[[Hunsrück-Mosel-Radweg]]''' - 30 km, 760 hm hinauf, 410 hm hinab · Kastellaun - [[Treis-Karden]] (Bahnhof); Routenverlauf auf [http://www.openstreetmap.org/?relation=113708 OpenStreetMap]
*'''[[Lützelsoon Radroute]]''' - 29 km, 580 hm hinauf, 330 hm hinunter · Kirn an der Nahe - Kirchberg; Routenverlauf auf [http://www.openstreetmap.org/?relation=1782863 OpenStreetMap]
*'''[[Nahe-Hunsrück-Mosel-Radweg]]''' - 88 km · Fischbach an der Nahe - Morbach - Neumagen-Dhron an der Mosel, Routenverlauf auf [http://www.openstreetmap.org/?relation=180100 OpenStreetMap]
*'''[[Ruwer-Hochwald-Radweg]]''' - 49 km ohne Anstieg vom Hochwald zur Mosel, 505 hm hinauf, 95 hm hinab · neuer Bahntrassenradweg von [[Hermeskeil]] über [[Kell]] nach Trier-Ruwer, Anreise mit Radler-Bus von [[Türkismühle]] nach [[Trier]] an Wochenenden und in den Ferien.
=== Rheinhessen ===
[[Datei:radrouten_logos_rheinhessen_ds_08_2008.jpg|thumb|"Logokunde" Radrouten Rheinhessen: Links das Logo des Amiche, in der Mitte das bekannte Zeichen der Veloroute Rhein und rechts die Kennzeichnung des Rheinterrassen-Radwegs.]]
[[Datei:Zellertal_herbst_donnersbergblick_ds_11_2005.jpg|thumb|Herbst im Zellertal: Am Horizont links ist der Donnersberg zu sehen.]]
*'''[[Amiche]]''' - Die asphaltierte Rundroute verläuft zwischen Bodenheim bei Mainz, Nierstein und Hahnheim im Selztal. Hier besteht Anschluss an den Selztal-Radweg Richtung Ingelheim bzw. Alzey. Zu großen Teilen verläuft die Strecke auf zwei Bahntrassen.
*'''[[Appelbach-Radweg]]''' - Start der 42 km langen Strecke, die abseits der Touristenpfade verläuft, ist Marienthal nördlich des Donnersbergs. Von hier folgt die Strecke dem Tal des Appelbach bis zu seiner Mündung in die Nahe, die nördlich von Bad Kreuznach liegt. Die Radroute nutzt auf längeren Strecken ruhige bis mäßig befahrene Landstraßen.
*'''[[Hiwwel-Route]]''' - Sehr hügeliger, aber landschaftlich schöner Zick-Zack-Kurs durch Rheinhessen mit 165 km Länge und fast 1500 Hm.
*'''[[Mühlen-Radweg (Rheinhessen)|Mühlen-Radweg]]''' 42 km lange Querverbindung von Framersheim am Selztal-Radweg in die Rheinebene nach Gimbsheim. Bei Rheindürckheim trifft die Route auf den Rhein-Radweg.
*'''[[Obstroute]]''' - Hügeliger Rundkurs ab Ingelheim-Bahnhof mit 45 km Länge und 420 Hm.
*'''[[Rheinterrassen-Route]]''' zwischen Worms und Mainz-Laubenheim entlang der Weinberge als Alternative zum Rhein-Radweg.
*'''[[Selztal-Radweg]]''' 65 km durch Rheinhessen von der Selzquelle bei Orbis über Alzey nach Ingelheim bis zum Rhein.
*'''[[Zellertal-Radweg]]''' von Worms nach Marnheim
=== Pfalz ===
*'''[[Alsenz-Radweg]]''' · 53 km Länge, 230 hm hinauf, 425 hm hinab · von [[Enkenbach-Alsenborn]] über Winnweiler und Rockenhausen nach Bad Münster am Stein, wo die Route auf den [[Nahe-Radweg]] trifft.
*'''[[Barbarossa-Radweg]]''' - 88 km, 800 hm hinauf, 920 hm hinab · Glan-Münchweiler (Glan-Blies-Radweg) - Kaiserslautern - Eisenberg - Worms am Rhein · Artikel im [https://www.radreise-wiki.de/Barbarossaradweg Radreise-Wiki]
*'''[[Dt.-Frz. Pamina-Radweg Lautertal]]''' · 58 km, dazu 21 km parallele Führung in Frankreich, Streckenverlauf Hinterweidenthal (Bahnhof) am Pirminius-Radweg - [[Wissembourg]] - Neuburgweier bei Neuburg am Rhein. 4 km wassergebundene Decke, sonst Asphalt, weitgehend geringes Gefälle. Die südliche Alternative auf französischer Seite nutzt eine ehemalige Bahntrasse.·[https://www.pfalz.de/de/freizeit-und-erleben/deutsch-franzoesischer-pamina-radweg-lautertal Pfalzwein e.V.]
*'''[[Radweg Deutsche Weinstraße]]''' · 95 km (+ 35 km Panoramarouten), 1020 hm hinauf, 1055 hm hinab · Bockenheim - Grünstadt - Bad Dürkheim - Neustadt a.d. Weinstraße - Siebeldingen - Bad Bergzabern - Schweigen-Rechtenbach · Artikel im [https://www.radreise-wiki.de/Deutsche_Weinstraße Radreise-Wiki] mit Streckenbeschreibung , Höhenprofil und GPS-Track
*'''[[Fritz-Wunderlich-Weg]]''' - 24 km nicht asphaltierter Bahntrassenradweg von Freisen nach Altenglan, der an den früh verstorbenen Sänger erinnert.
*'''[[Glan-Blies-Radweg]]''' - 126 km (73 km in Rheinland-Pfalz, 252 hm hinauf, 381 hm hinab). Strecke: [[Sarreguemines]] (F) an der '''Saar''' - Blieskastel - Homburg - Waldmohr - Altenglan - [[Meisenheim]] - Staudernheim an der '''Nahe''' bei Bad Sobernheim. Genau genommen ein Doppelflussweg entlang der beiden Flüsse Blies und Glan, wobei die Blies nur auf der ersten Etappe im Saarland die Rolle des begleitenden Flusses spielt. Insgesamt schöne, ruhige Strecke mit guter Wegequalität und weitgehnder Verkehrsfreiheit. Bahntrassenanteil ca. 45 km, das zweite Gleis dient auf ca. 40 km einem [[Glantal-Draisinentour|Draisinenbetrieb]].
*'''[[Kraut-und-Rüben-Radweg]]''' - Die 137 km lange Radroute verläuft östlich der Deutschen Weinstraße etwas verwinkelt von Bockenheim bis nach Schweigen-Rechtenbach an der Französischen Grenze. Die Strecke selbst liegt meist auf autofreien Wirtschaftswegen und ist durchgängig sehr gut ausgeschildert. [[w:Kraut-und-Rüben-Radweg|Info in der Wikiopedia]]
*'''[[Palatia-Radweg]]''' (Radweg Neustadt - Speyer) - 28 km lange Radroute (27 Hm aufwärts, 62 Hm abwärts), die [[Neustadt an der Weinstraße]] mit der Domstadt [[Speyer]] verbindet. Die Route verläuft außerorts landschaftlich recht schön auf meist geschotterten Wegen am Speyerbach entlang.
* '''[[Pirminius-Radweg]]''' - 75 km im Bereich von Pirmasens. [[w:Pirminius-Radweg|Info in der Wikipedia]]
*'''[[Queich-Radweg]]''' - 58 km, 274 Hm aufwärts, 447 Hm abwärts · Ab Queichquelle bei Hauenstein über Landau nach Germersheim zur Mündung in den Rhein · [https://www.pfalz.de/de/freizeit-und-erleben/queichtal-ragdweg Pfalzwein e.V.]
*'''[[Salierradweg]]'''
*'''[[Sauertalradweg(Elsass)|Sauertalradweg]]''' - Dieser kleinere Sauertal-Radweg führt ins Elsass. [https://www.wanderportal-pfalz.de/rad/RadSauertal.htm Elsässer Sauertal]
== MTB-Regionen ==
== Freizeitkarten mit Bahn- und Bus-Fahrplänen ==
* Rheinland-Pfalz: '''Eifel-Mosel-Hunsrück''' · 9 RegioRadler auch in der Woche: <br> [http://www.regio-radler.de/downloads/Raderlebniskarte_Eifel-Mosel-Hunsrueck_2011.pdf SPNV-Nord: "Raderlebniskarte 2011 · Eifel-Mosel-Hunsrück"] · [http://www.regio-radler.de/index.php?pre=de_&haktiv=9&code= Fahrpläne] [http://www.regio-radler.de/index.php?pre=de_&haktiv=6&code= Fahrradmitnahme reservieren]
* Rheinland-Pfalz: '''Ruwer-Hochwald''' · [http://www.regio-radler.de/downloads/Raderlebniskarte_Hochwald_2011.pdf Raderlebniskarte RegioRadler Ruwer-Hochwald 2011]
* Rheinland-Pfalz: '''Westerwald''' [http://www.der-takt.de/uploads/media/WandernWesterwald2008.pdf SPNV-Nord: Wandern und Radfahren im Westerwald]
* Rheinland-Pfalz-Takt: [http://www.der-takt.de/index.php?id=37&no_cache=1&kategorie=25,34 Übersicht der Freizeitkarten]
== Fahrradmitnahme in Bahnen ==
In Rheinland Pfalz ist in Bahnen Mo. - Fr. ab 9 Uhr und am Wochenende ganztags die Fahrradmitnahme '''kostenlos'''. Vor 9 Uhr muss eine Fahrradkarte zu 5,- € gelöst werden.
Für ganz Rheinland Pfalz, Saarland und der Stadt Wiesbaden gibt es das [https://www.bahn.de/regional/view/regionen/rhldpfalz/freizeit/rhldpfalz_ticket.shtml '''Rheinland-Pfalz-Ticket'''] für alle Nahverkehrsmittel ab 24 €. Es gilt für 1 bis 5 Personen (Mo.-Fr. ab 9 Uhr, Sa., So. ganztägig). Es kann nicht an den RMV-Fahrkartenautomaten in Hessen gelöst werden. In diesem Fall kann das Ticket im Zug oder Bus gelöst werden. Es gilt auch in Wiesbaden, für beide Rheinstrecken zwischen Mainz/Wiesbaden und Koblenz, auf der linksrheinischen Seite bis Bonn, sowie auf der Lahntalbahn bis Limburg, den beiden Westerwaldbahnen in Hessen und nach Wissenbourg und Lauterbourg in Frankreich.
== Fahrradmitnahme in Freizeitbussen ==
* [http://www.regio-radler.de/ RegioRadler im Hunsrück und Eifel] − Die Regio-Radler verkehren mit 9 Linien beidseits der Mosel und reichen bis zum Rhein bei [[Bingen am Rhein|Bingen]], der Nahe im Saarland bei [[Türkismühle]] und der Kyll in [[Gerolstein]]. Die Regio-Radler ist reservierungspflichtig; dabei wird eine zusätzliche Buchungsgebühr von 1,50 € für 5 Fahrräder erhoben. Die Transportkosten betragen je Fahrrad: 3,- €, Kinderfahrräder: 2,- €. Sie sind reservierungspflichtig; dabei wird eine zusätzliche Buchungsgebühr von 1,50 € für 5 Fahrräder erhoben. Die Transportkosten betragen je Fahrrad: 3,- €, Kinderfahrräder: 2,- €.
== Bahntrassen ==
* [[Eifel-Ardennen-Radweg]] − 37 km in der Eifel von der alten Abteistadt [[Prüm]] bis nach [[Sankt-Vith]] (verkürzte Version)
* [[Fritz-Wunderlich-Radweg]] - 26 km von Kusel in der Pfalz nach Freisen im Saarland
* [[Maare-Mosel-Radweg]] – 56 km durch die Eifel von [[Daun]] nach [[Bernkastel-Kues]] an der Mosel
* [[Maifeld-Radwanderweg]] - insgesamt 28 km durch die Eifel mit 2 Tunneln bei [[Mayen]].
* [[Ruwer-Hochwald-Radweg]] − 49 km im Hunsrück von [[Hermeskeil]] über Kell am See nach Trier-Ruwer
* [[Schinderhannes-Radweg]] − 37 km im Hunsrück von Emmelshausen über Kastellaun nach [[Simmern/Hunsrück|Simmern]]
* siehe auch [[Bahntrassenradwege]]
== Draisinenstrecken ==
*'''[[Südpfalzdraisine]]'''
*'''[[Glantal-Draisinentour]]'''
== Einzelnachweise ==
<references/>
== Weblinks ==
* '''[http://www.radwanderland.de Offizielle Radtouristikseite "Radwanderland"]'''
* '''[http://www.radwanderland.de/application/routenplaner?routing=radrouten Radroutenplaner Rheinland-Pfalz]'''
* [http://www.rheinhessen.de/radfahren.html Radrouten Rheinhessen] - mit Übersichtskarte
* [http://www.radroutenplaner.nrw.de Radroutenplaner NRW] - reicht in Rheinland-Pfalz weit hinein
<!--
(bitte hier keine Seiten von Radreiseveranstaltern bzw. -vermittlern einfügen)
{{PortalLink|Portal:Fahrrad}}-->
{{class-3}}
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Deutschland]]
[[Kategorie:Radwege in Rheinland-Pfalz| ]]
kisfzglers7588bseliec0aca07sfep
Radrouten in Sachsen
0
7278
1769121
1762865
2026-04-16T23:14:52Z
Dirk Schmidt
15181
/* Regionalrouten */
1769121
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Deutschland}}
Genauso unterschiedlich wie die Landschaften in Sachsen (z. B. [[Erzgebirge]], [[Leipziger Tieflandsbucht]], [[Sächsische Schweiz]], [[Oberlausitz|Ober-]] und [[Niederlausitz]], Elbtal ...) sind auch die Bedingungen für das Radfahren. Während z. B. der Elbe-Radweg zwischen [[Dresden]] und [[Bad Schandau]] vorbildlich ausgebaut ist, harpert es in Teilen des [[Erzgebirge]]s noch hinsichtlich Beschilderung und Wegeführung. Hier wurde aber bereits viel verbessert.
Diese Probleme sollten aber keinen Reiseradler davon abhalten, das [[Erzgebirge]] zu befahren. Sie benötigen lediglich eine Portion Abenteuerlust und eine genaue Radwanderkarte bzw. eine gute Outdoor-App, um voran zu kommen.
Preis der obligatorischen Fahrradtageskarte im sächsischen Regionalverkehr der Bahn: 5,00 €.
== Radfernwege ==
[[File:Bastei - Elberadweg Sächsische Schweiz.jpeg|thumb|305px|Elberadweg in der [[Sächsische Schweiz|Sächsischen Schweiz]]: Blick auf die [[Rathen#Sehenswürdigkeiten|Bastei]]]]
* [[Elbe-Radweg (Sächsische Schweiz - Magdeburg)|'''Elbe-Radweg''' (Sächische Schweiz - Magdeburg)]] - populärer Radwanderweg am bekannten Strom
*'''[[Elster-Radweg|Elster-Radweg]]''' - 250{{nnbsp}}km von den Höhen des Erzgebirges bis Halle (Saale).
*'''[[Radfernweg Euregio Egrensis]]''' - 529{{nnbsp}}km langer Rundkurs durch Thüringen, Sachsen, Böhmen und Bayern. Infos in der [[w:Euregio Egrensis (Radweg)|Wikipedia]].
*'''[[Frosch-Radweg|Frosch-Radweg]]''' - 260{{nnbsp}}km lange Mehrtagesrunde in der Oberlausitzer Heide- und Teichlandschaft. [[w:Froschradweg|Infos in der Wikipedia]]
*'''[[KAMMtour Ergebirge–Vogtland|KAMMtour Ergebirge–Vogtland]]''' - 180 Kilometer Höhenroute von Schöneck im Vogtland bis Altenberg-Geising im Osterzgebirge. Offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/kammtour-erzgebirge-auf-dem-hoechsten-weg-durch-sachsen-und-boehmen/tour.html www.erzgebirge-tourismus.de]
* [[Datei:Karlova stezka Logo.svg|20px]] '''[[Karlsroute]]''' - rund 120{{nnbsp}}km lange Route von Chemnitz über das westliche Erzgebirge nach Karlsbad an die Eger. Neben der Hauptroute wurden im Erzgebirge auch lokale Rundtouren ausgewiesen. [https://www.karlsroute.eu offizielle Routenseite]. In Karlsbad Anschluss an den [[Eger-Radweg]] Richtung Elbe, oder auch über das weitere Radnetz in Tschechien Richtung Prag.
* [[Datei:Niederlausitzer Bergbautour - Logo.svg|20px]] '''[[Niederlausitzer Bergbautour|Niederlausitzer Bergbautour]]''' - 510 Kilometer langer Radkurs durch die Lausitzer Bergbauregion.
* [[File:Muldentalradweg.svg|20px]] '''[[Muldental-Radweg|Muldental-Radweg]]''' - vom Erzgebirge nach Dessau an die Elbe.
* '''[[Pleiße-Radweg]]''' - 114 km in Westsachsen und Thüringen am Fluss Pleiße. Es geht von Werdau über Altenburg nach Leipzig. [[w:Pleiße-Radweg|Info in der Wikipedia]]
*[[File:Piktogramm_Oder-Neisse-Radweg.svg|20px]] '''[[Oder-Neiße-Radweg|Oder-Neiße-Radweg]]''' - Der südliche Teil der Strecke liegt in Sachsen.
*[[File:Logo_Radroute_Berlin_Leipzig_Rund.svg|20px]] '''[[Radweg Berlin–Leipzig]]''' - Der Name ist Programm. Natürlich kann man auch von Leipzig in die deutsche Hauptstadt radeln.
*'''[[Sächsische-Städteroute|Sächsische-Städteroute]]''' - Entlang der Hauptsiedlungsachse von West nach Ost durch Sachsen. Die Strecke ist weitgehend deckungsgleich mit der [[D-Route 4: Mittelland-Route]].
*'''[[Sächsische Mittelgebirgsroute]]''' - Höhenroute durch das Vogtland, Erzgebirge und Oberlausitzer Bergland, Start ist in Plauen, Ende in Zittau.
*'''[[Schwarze Elster-Radweg|Schwarze Elster-Radweg]]''' - 190 km entlang des Flusses, der Oberlauf mit Quelle liegt in Sachsen.
*'''[[Spree-Radweg|Spree-Radweg]]''' - Der Oberlauf der Spree liegt in Sachsen.
*'''[[Zschopautal-Radweg|Zschopautal-Radweg]]''' - Von den Höhen des Erzgebirges Richtung Mulde. offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/zschopautalradweg-der-koenigsweg-des-erzgebirges/tour.html erzgebirge-tourismus.de].
== Regionalrouten ==
[[Datei:Tunnel Auerswalde mit Chemnitzbrücken-kol.jpg|mini|[[Chemnitztalradweg]] bei der Stadt Chemnitz ([https://chemnitztalradweg.de offizielle Info])]]
* '''[[Chemnitztalradweg]]''' - Die Strecke liegt nördlich der gleichnamigen Großstadt. Das Projekt ist noch nicht komplett fertig gestellt. aktuell misst die Strecke ab Chemnitz Hbf 18{{nnbsp}}km einfach. [https://chemnitztalradweg.de/ Routenseite]
* '''[[Elbe-Mulde-Weg]]''' - 29 km lange Regionalroute, die den [[Mulderadweg]] bei Döbeln mit der Elbe bei Zehren verbindet. wechselnde Beläge. [https://www.openstreetmap.org/relation/5398308#map=12/51.1653/13.2504 Strecke auf Openstreetmap]
* '''[[Flöhatalradweg]]''' Die 65 km lange Radroute km folgt dem gleichnamigen Fluss südöstlich Chemnitz im Erzgebirge. Von der Tschecnichen Grenze bei Deutschgeorgenthal bis zur Mündung in die Zschopau geht es am Fluss entlang. Die Flöhatalbahn begleitet ab [[Olbernhau]] die Route. Achtung: Zwischen Falkenau und Flöha zweimal [https://www.openstreetmap.org/#map=18/50.850275/13.098696 Umlaufsperren an der Bahn). Große Anhängergespanne, wie 2 m lange Fahrradwohnwagen kommen hier nicht durch (parallel Nutzung Bundesstraße möglich, hier aber viel Verkehr und kein Radweg). [https://cycling.waymarkedtrails.org/#route?id=36563&map=10.0/50.7475/13.4864 Streckenverlauf mit GPX-Daten auf waymarkedtrails.org] (Daten Openstreetmap). Die Strecke geht zwar tendeziell bergab, besitzt aber einige größere Anstiege. Laut Daten Openstreetmap sind talwärts rund 1100 Höhenmeter zu überwinden.
*'''[[Göltzschtalradweg]]''' im Vogtland
*'''[[Torgischer Radwanderweg|Torgischer Radweg]]''' - 67{{nnbsp}}km lange Route, die Delitsch über Bad Düben mit Torgau an der Elbe verbindet. Es wird die Dübener Heide gequert. [https://www.naturpark-duebener-heide.de/beitraege/duebener-heide-entdecken-radfahren-torgischer-radweg/ Infos des Naturpark Dübener Heide].
*'''[[Preßnitztal-Radweg|Preßnitztal-Radweg]]''' im mittleren Erzgebirge. Die Route führt von [[Wolkenstein (Erzgebirge)|Wolkenstein]] entlang der Pressnitz bis nach [[Jöhstadt]].
* '''[[Vogtland-Radweg]]''' - Die Fahrt von [[Falkenstein]] nach [[Oelsnitz]] kann von Radlern komfortabel absolviert werden. 23 km lang und mindestens 2,5 m breit ist der Weg durch das hügelige [[Vogtland]], der auch zwei Talsperren verbindet. Ausgeschildert als "Radweg Falkenstein - Oelsnitz" endet der Radweg bei Oelsnitz an einer belebten Staatsstraße ohne Radspur. Die letzten 4 km sind sehr hügelig (10% Steigungen ausgeschildert), da die ehemalige Bahntrasse kaum genutzt wird und die Brücken abgerissen wurden. In Oelsnitz besteht über Ortsstraßen eine Anbindung an den [[Elster-Radweg]].
* Regionalrouten der Region '''Westlausitz''':
** 3 Themenrouten:
*** Die '''[[Kulturroute]]''' ist 56 km lang und führt zu historischen Schlössern, Parks, Gärten, Museen und Galerien der Region Westlausitz. Außerdem schließt sie die Stadt Stolpen mit Burganlage und historischem Marktplatz ein.
*** Die '''[[Naturerlebnisroute]]''' mit bewegtem Höhenprofil ist 73 km lang. Die Route führt zu schönen Aussichten. An anderen Stationen der Route wird Wissenswertes über die Natur der Region vermittelt. Außerdem führt sie zu verschiedenen Freibädern und dem Tier- und Kulturpark Bischofswerda.
*** Die '''[[Produktroute]]''' ist 62 km lang und ermöglicht den Besuch landwirtschaftlicher Direktvermarkter, von Manufakturen, Schauwerkstätten und Verkaufsstellen regionaler Produkte. Sie führt zu Handwerksbetrieben mit traditionellen Erzeugnissen der Region: zu Töpfern, Pfefferküchlern, Blaudruckern, Holzkunstwerkern, Bandwebern und anderen.
** Die '''[[Röderradroute]]''' folgt als überregionale Radwanderroute dem Verlauf der Großen Röder von ihrer Quelle im [[Rammenau]]er Ortsteil Röderbrunn über [[Großröhrsdorf]], [[Radeberg]], [[Radeburg]] und [[Großenhain]] bis nach [[Kosilenzien]] in Brandenburg. Dort geht sie in den Fernradweg 5 (Mühlberg – Bad Liebenwerda) über.
== MTB-Regionen ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/mountainbiken MTB-Infos auf Sachsen Tourismus] - offizielle landesweite Seite
== Weblinks ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/radfahren Radinfos auf Sachsen Tourismus] - offizielle landesweite Seite
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Deutschland]]
[[Kategorie:Radwege in Sachsen]]
{{class-3}}
hphfgb0y71wia57a6r894ql76atqeyl
1769122
1769121
2026-04-16T23:15:08Z
Dirk Schmidt
15181
/* Regionalrouten */
1769122
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Deutschland}}
Genauso unterschiedlich wie die Landschaften in Sachsen (z. B. [[Erzgebirge]], [[Leipziger Tieflandsbucht]], [[Sächsische Schweiz]], [[Oberlausitz|Ober-]] und [[Niederlausitz]], Elbtal ...) sind auch die Bedingungen für das Radfahren. Während z. B. der Elbe-Radweg zwischen [[Dresden]] und [[Bad Schandau]] vorbildlich ausgebaut ist, harpert es in Teilen des [[Erzgebirge]]s noch hinsichtlich Beschilderung und Wegeführung. Hier wurde aber bereits viel verbessert.
Diese Probleme sollten aber keinen Reiseradler davon abhalten, das [[Erzgebirge]] zu befahren. Sie benötigen lediglich eine Portion Abenteuerlust und eine genaue Radwanderkarte bzw. eine gute Outdoor-App, um voran zu kommen.
Preis der obligatorischen Fahrradtageskarte im sächsischen Regionalverkehr der Bahn: 5,00 €.
== Radfernwege ==
[[File:Bastei - Elberadweg Sächsische Schweiz.jpeg|thumb|305px|Elberadweg in der [[Sächsische Schweiz|Sächsischen Schweiz]]: Blick auf die [[Rathen#Sehenswürdigkeiten|Bastei]]]]
* [[Elbe-Radweg (Sächsische Schweiz - Magdeburg)|'''Elbe-Radweg''' (Sächische Schweiz - Magdeburg)]] - populärer Radwanderweg am bekannten Strom
*'''[[Elster-Radweg|Elster-Radweg]]''' - 250{{nnbsp}}km von den Höhen des Erzgebirges bis Halle (Saale).
*'''[[Radfernweg Euregio Egrensis]]''' - 529{{nnbsp}}km langer Rundkurs durch Thüringen, Sachsen, Böhmen und Bayern. Infos in der [[w:Euregio Egrensis (Radweg)|Wikipedia]].
*'''[[Frosch-Radweg|Frosch-Radweg]]''' - 260{{nnbsp}}km lange Mehrtagesrunde in der Oberlausitzer Heide- und Teichlandschaft. [[w:Froschradweg|Infos in der Wikipedia]]
*'''[[KAMMtour Ergebirge–Vogtland|KAMMtour Ergebirge–Vogtland]]''' - 180 Kilometer Höhenroute von Schöneck im Vogtland bis Altenberg-Geising im Osterzgebirge. Offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/kammtour-erzgebirge-auf-dem-hoechsten-weg-durch-sachsen-und-boehmen/tour.html www.erzgebirge-tourismus.de]
* [[Datei:Karlova stezka Logo.svg|20px]] '''[[Karlsroute]]''' - rund 120{{nnbsp}}km lange Route von Chemnitz über das westliche Erzgebirge nach Karlsbad an die Eger. Neben der Hauptroute wurden im Erzgebirge auch lokale Rundtouren ausgewiesen. [https://www.karlsroute.eu offizielle Routenseite]. In Karlsbad Anschluss an den [[Eger-Radweg]] Richtung Elbe, oder auch über das weitere Radnetz in Tschechien Richtung Prag.
* [[Datei:Niederlausitzer Bergbautour - Logo.svg|20px]] '''[[Niederlausitzer Bergbautour|Niederlausitzer Bergbautour]]''' - 510 Kilometer langer Radkurs durch die Lausitzer Bergbauregion.
* [[File:Muldentalradweg.svg|20px]] '''[[Muldental-Radweg|Muldental-Radweg]]''' - vom Erzgebirge nach Dessau an die Elbe.
* '''[[Pleiße-Radweg]]''' - 114 km in Westsachsen und Thüringen am Fluss Pleiße. Es geht von Werdau über Altenburg nach Leipzig. [[w:Pleiße-Radweg|Info in der Wikipedia]]
*[[File:Piktogramm_Oder-Neisse-Radweg.svg|20px]] '''[[Oder-Neiße-Radweg|Oder-Neiße-Radweg]]''' - Der südliche Teil der Strecke liegt in Sachsen.
*[[File:Logo_Radroute_Berlin_Leipzig_Rund.svg|20px]] '''[[Radweg Berlin–Leipzig]]''' - Der Name ist Programm. Natürlich kann man auch von Leipzig in die deutsche Hauptstadt radeln.
*'''[[Sächsische-Städteroute|Sächsische-Städteroute]]''' - Entlang der Hauptsiedlungsachse von West nach Ost durch Sachsen. Die Strecke ist weitgehend deckungsgleich mit der [[D-Route 4: Mittelland-Route]].
*'''[[Sächsische Mittelgebirgsroute]]''' - Höhenroute durch das Vogtland, Erzgebirge und Oberlausitzer Bergland, Start ist in Plauen, Ende in Zittau.
*'''[[Schwarze Elster-Radweg|Schwarze Elster-Radweg]]''' - 190 km entlang des Flusses, der Oberlauf mit Quelle liegt in Sachsen.
*'''[[Spree-Radweg|Spree-Radweg]]''' - Der Oberlauf der Spree liegt in Sachsen.
*'''[[Zschopautal-Radweg|Zschopautal-Radweg]]''' - Von den Höhen des Erzgebirges Richtung Mulde. offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/zschopautalradweg-der-koenigsweg-des-erzgebirges/tour.html erzgebirge-tourismus.de].
== Regionalrouten ==
[[Datei:Tunnel Auerswalde mit Chemnitzbrücken-kol.jpg|mini|[[Chemnitztalradweg]] bei der Stadt Chemnitz ([https://chemnitztalradweg.de offizielle Info])]]
* '''[[Chemnitztalradweg]]''' - Die Strecke liegt nördlich der gleichnamigen Großstadt. Das Projekt ist noch nicht komplett fertig gestellt. aktuell misst die Strecke ab Chemnitz Hbf 18{{nnbsp}}km einfach. [https://chemnitztalradweg.de/ Routenseite]
* '''[[Elbe-Mulde-Weg]]''' - 29 km lange Regionalroute, die den [[Mulderadweg]] bei Döbeln mit der Elbe bei Zehren verbindet. wechselnde Beläge. [https://www.openstreetmap.org/relation/5398308#map=12/51.1653/13.2504 Strecke auf Openstreetmap]
* '''[[Flöhatalradweg]]''' Die 65 km lange Radroute km folgt dem gleichnamigen Fluss südöstlich Chemnitz im Erzgebirge. Von der Tschecnichen Grenze bei Deutschgeorgenthal bis zur Mündung in die Zschopau geht es am Fluss entlang. Die Flöhatalbahn begleitet ab [[Olbernhau]] die Route. Achtung: Zwischen Falkenau und Flöha zweimal [https://www.openstreetmap.org/#map=18/50.850275/13.098696 Umlaufsperren an der Bahn]). Große Anhängergespanne, wie 2 m lange Fahrradwohnwagen kommen hier nicht durch (parallel Nutzung Bundesstraße möglich, hier aber viel Verkehr und kein Radweg). [https://cycling.waymarkedtrails.org/#route?id=36563&map=10.0/50.7475/13.4864 Streckenverlauf mit GPX-Daten auf waymarkedtrails.org] (Daten Openstreetmap). Die Strecke geht zwar tendeziell bergab, besitzt aber einige größere Anstiege. Laut Daten Openstreetmap sind talwärts rund 1100 Höhenmeter zu überwinden.
*'''[[Göltzschtalradweg]]''' im Vogtland
*'''[[Torgischer Radwanderweg|Torgischer Radweg]]''' - 67{{nnbsp}}km lange Route, die Delitsch über Bad Düben mit Torgau an der Elbe verbindet. Es wird die Dübener Heide gequert. [https://www.naturpark-duebener-heide.de/beitraege/duebener-heide-entdecken-radfahren-torgischer-radweg/ Infos des Naturpark Dübener Heide].
*'''[[Preßnitztal-Radweg|Preßnitztal-Radweg]]''' im mittleren Erzgebirge. Die Route führt von [[Wolkenstein (Erzgebirge)|Wolkenstein]] entlang der Pressnitz bis nach [[Jöhstadt]].
* '''[[Vogtland-Radweg]]''' - Die Fahrt von [[Falkenstein]] nach [[Oelsnitz]] kann von Radlern komfortabel absolviert werden. 23 km lang und mindestens 2,5 m breit ist der Weg durch das hügelige [[Vogtland]], der auch zwei Talsperren verbindet. Ausgeschildert als "Radweg Falkenstein - Oelsnitz" endet der Radweg bei Oelsnitz an einer belebten Staatsstraße ohne Radspur. Die letzten 4 km sind sehr hügelig (10% Steigungen ausgeschildert), da die ehemalige Bahntrasse kaum genutzt wird und die Brücken abgerissen wurden. In Oelsnitz besteht über Ortsstraßen eine Anbindung an den [[Elster-Radweg]].
* Regionalrouten der Region '''Westlausitz''':
** 3 Themenrouten:
*** Die '''[[Kulturroute]]''' ist 56 km lang und führt zu historischen Schlössern, Parks, Gärten, Museen und Galerien der Region Westlausitz. Außerdem schließt sie die Stadt Stolpen mit Burganlage und historischem Marktplatz ein.
*** Die '''[[Naturerlebnisroute]]''' mit bewegtem Höhenprofil ist 73 km lang. Die Route führt zu schönen Aussichten. An anderen Stationen der Route wird Wissenswertes über die Natur der Region vermittelt. Außerdem führt sie zu verschiedenen Freibädern und dem Tier- und Kulturpark Bischofswerda.
*** Die '''[[Produktroute]]''' ist 62 km lang und ermöglicht den Besuch landwirtschaftlicher Direktvermarkter, von Manufakturen, Schauwerkstätten und Verkaufsstellen regionaler Produkte. Sie führt zu Handwerksbetrieben mit traditionellen Erzeugnissen der Region: zu Töpfern, Pfefferküchlern, Blaudruckern, Holzkunstwerkern, Bandwebern und anderen.
** Die '''[[Röderradroute]]''' folgt als überregionale Radwanderroute dem Verlauf der Großen Röder von ihrer Quelle im [[Rammenau]]er Ortsteil Röderbrunn über [[Großröhrsdorf]], [[Radeberg]], [[Radeburg]] und [[Großenhain]] bis nach [[Kosilenzien]] in Brandenburg. Dort geht sie in den Fernradweg 5 (Mühlberg – Bad Liebenwerda) über.
== MTB-Regionen ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/mountainbiken MTB-Infos auf Sachsen Tourismus] - offizielle landesweite Seite
== Weblinks ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/radfahren Radinfos auf Sachsen Tourismus] - offizielle landesweite Seite
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Deutschland]]
[[Kategorie:Radwege in Sachsen]]
{{class-3}}
ih6ohi4yhcuyli3uqeqsdi298d8w8ij
1769123
1769122
2026-04-17T00:37:00Z
Dirk Schmidt
15181
/* Regionalrouten */
1769123
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Deutschland}}
Genauso unterschiedlich wie die Landschaften in Sachsen (z. B. [[Erzgebirge]], [[Leipziger Tieflandsbucht]], [[Sächsische Schweiz]], [[Oberlausitz|Ober-]] und [[Niederlausitz]], Elbtal ...) sind auch die Bedingungen für das Radfahren. Während z. B. der Elbe-Radweg zwischen [[Dresden]] und [[Bad Schandau]] vorbildlich ausgebaut ist, harpert es in Teilen des [[Erzgebirge]]s noch hinsichtlich Beschilderung und Wegeführung. Hier wurde aber bereits viel verbessert.
Diese Probleme sollten aber keinen Reiseradler davon abhalten, das [[Erzgebirge]] zu befahren. Sie benötigen lediglich eine Portion Abenteuerlust und eine genaue Radwanderkarte bzw. eine gute Outdoor-App, um voran zu kommen.
Preis der obligatorischen Fahrradtageskarte im sächsischen Regionalverkehr der Bahn: 5,00 €.
== Radfernwege ==
[[File:Bastei - Elberadweg Sächsische Schweiz.jpeg|thumb|305px|Elberadweg in der [[Sächsische Schweiz|Sächsischen Schweiz]]: Blick auf die [[Rathen#Sehenswürdigkeiten|Bastei]]]]
* [[Elbe-Radweg (Sächsische Schweiz - Magdeburg)|'''Elbe-Radweg''' (Sächische Schweiz - Magdeburg)]] - populärer Radwanderweg am bekannten Strom
*'''[[Elster-Radweg|Elster-Radweg]]''' - 250{{nnbsp}}km von den Höhen des Erzgebirges bis Halle (Saale).
*'''[[Radfernweg Euregio Egrensis]]''' - 529{{nnbsp}}km langer Rundkurs durch Thüringen, Sachsen, Böhmen und Bayern. Infos in der [[w:Euregio Egrensis (Radweg)|Wikipedia]].
*'''[[Frosch-Radweg|Frosch-Radweg]]''' - 260{{nnbsp}}km lange Mehrtagesrunde in der Oberlausitzer Heide- und Teichlandschaft. [[w:Froschradweg|Infos in der Wikipedia]]
*'''[[KAMMtour Ergebirge–Vogtland|KAMMtour Ergebirge–Vogtland]]''' - 180 Kilometer Höhenroute von Schöneck im Vogtland bis Altenberg-Geising im Osterzgebirge. Offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/kammtour-erzgebirge-auf-dem-hoechsten-weg-durch-sachsen-und-boehmen/tour.html www.erzgebirge-tourismus.de]
* [[Datei:Karlova stezka Logo.svg|20px]] '''[[Karlsroute]]''' - rund 120{{nnbsp}}km lange Route von Chemnitz über das westliche Erzgebirge nach Karlsbad an die Eger. Neben der Hauptroute wurden im Erzgebirge auch lokale Rundtouren ausgewiesen. [https://www.karlsroute.eu offizielle Routenseite]. In Karlsbad Anschluss an den [[Eger-Radweg]] Richtung Elbe, oder auch über das weitere Radnetz in Tschechien Richtung Prag.
* [[Datei:Niederlausitzer Bergbautour - Logo.svg|20px]] '''[[Niederlausitzer Bergbautour|Niederlausitzer Bergbautour]]''' - 510 Kilometer langer Radkurs durch die Lausitzer Bergbauregion.
* [[File:Muldentalradweg.svg|20px]] '''[[Muldental-Radweg|Muldental-Radweg]]''' - vom Erzgebirge nach Dessau an die Elbe.
* '''[[Pleiße-Radweg]]''' - 114 km in Westsachsen und Thüringen am Fluss Pleiße. Es geht von Werdau über Altenburg nach Leipzig. [[w:Pleiße-Radweg|Info in der Wikipedia]]
*[[File:Piktogramm_Oder-Neisse-Radweg.svg|20px]] '''[[Oder-Neiße-Radweg|Oder-Neiße-Radweg]]''' - Der südliche Teil der Strecke liegt in Sachsen.
*[[File:Logo_Radroute_Berlin_Leipzig_Rund.svg|20px]] '''[[Radweg Berlin–Leipzig]]''' - Der Name ist Programm. Natürlich kann man auch von Leipzig in die deutsche Hauptstadt radeln.
*'''[[Sächsische-Städteroute|Sächsische-Städteroute]]''' - Entlang der Hauptsiedlungsachse von West nach Ost durch Sachsen. Die Strecke ist weitgehend deckungsgleich mit der [[D-Route 4: Mittelland-Route]].
*'''[[Sächsische Mittelgebirgsroute]]''' - Höhenroute durch das Vogtland, Erzgebirge und Oberlausitzer Bergland, Start ist in Plauen, Ende in Zittau.
*'''[[Schwarze Elster-Radweg|Schwarze Elster-Radweg]]''' - 190 km entlang des Flusses, der Oberlauf mit Quelle liegt in Sachsen.
*'''[[Spree-Radweg|Spree-Radweg]]''' - Der Oberlauf der Spree liegt in Sachsen.
*'''[[Zschopautal-Radweg|Zschopautal-Radweg]]''' - Von den Höhen des Erzgebirges Richtung Mulde. offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/zschopautalradweg-der-koenigsweg-des-erzgebirges/tour.html erzgebirge-tourismus.de].
== Regionalrouten ==
[[Datei:Tunnel Auerswalde mit Chemnitzbrücken-kol.jpg|mini|[[Chemnitztalradweg]] bei der Stadt Chemnitz ([https://chemnitztalradweg.de offizielle Info])]]
* '''[[Chemnitztalradweg]]''' - Die Strecke liegt nördlich der gleichnamigen Großstadt. Das Projekt ist noch nicht komplett fertig gestellt. aktuell misst die Strecke ab Chemnitz Hbf 18{{nnbsp}}km einfach. [https://chemnitztalradweg.de/ Routenseite]
* '''[[Elbe-Mulde-Radweg]]''' - 29 km lange Regionalroute, die den [[Mulderadweg]] bei Döbeln mit der Elbe bei Zehren verbindet. wechselnde Beläge. [https://www.openstreetmap.org/relation/5398308#map=12/51.1653/13.2504 Strecke auf Openstreetmap]
* '''[[Flöhatalradweg]]''' Die 65 km lange Radroute km folgt dem gleichnamigen Fluss südöstlich Chemnitz im Erzgebirge. Von der Tschecnichen Grenze bei Deutschgeorgenthal bis zur Mündung in die Zschopau geht es am Fluss entlang. Die Flöhatalbahn begleitet ab [[Olbernhau]] die Route. Achtung: Zwischen Falkenau und Flöha zweimal [https://www.openstreetmap.org/#map=18/50.850275/13.098696 Umlaufsperren an der Bahn]). Große Anhängergespanne, wie 2 m lange Fahrradwohnwagen kommen hier nicht durch (parallel Nutzung Bundesstraße möglich, hier aber viel Verkehr und kein Radweg). [https://cycling.waymarkedtrails.org/#route?id=36563&map=10.0/50.7475/13.4864 Streckenverlauf mit GPX-Daten auf waymarkedtrails.org] (Daten Openstreetmap). Die Strecke geht zwar tendeziell bergab, besitzt aber einige größere Anstiege. Laut Daten Openstreetmap sind talwärts rund 1100 Höhenmeter zu überwinden.
*'''[[Göltzschtalradweg]]''' im Vogtland
*'''[[Torgischer Radwanderweg|Torgischer Radweg]]''' - 67{{nnbsp}}km lange Route, die Delitsch über Bad Düben mit Torgau an der Elbe verbindet. Es wird die Dübener Heide gequert. [https://www.naturpark-duebener-heide.de/beitraege/duebener-heide-entdecken-radfahren-torgischer-radweg/ Infos des Naturpark Dübener Heide].
*'''[[Preßnitztal-Radweg|Preßnitztal-Radweg]]''' im mittleren Erzgebirge. Die Route führt von [[Wolkenstein (Erzgebirge)|Wolkenstein]] entlang der Pressnitz bis nach [[Jöhstadt]].
* '''[[Vogtland-Radweg]]''' - Die Fahrt von [[Falkenstein]] nach [[Oelsnitz]] kann von Radlern komfortabel absolviert werden. 23 km lang und mindestens 2,5 m breit ist der Weg durch das hügelige [[Vogtland]], der auch zwei Talsperren verbindet. Ausgeschildert als "Radweg Falkenstein - Oelsnitz" endet der Radweg bei Oelsnitz an einer belebten Staatsstraße ohne Radspur. Die letzten 4 km sind sehr hügelig (10% Steigungen ausgeschildert), da die ehemalige Bahntrasse kaum genutzt wird und die Brücken abgerissen wurden. In Oelsnitz besteht über Ortsstraßen eine Anbindung an den [[Elster-Radweg]].
* Regionalrouten der Region '''Westlausitz''':
** 3 Themenrouten:
*** Die '''[[Kulturroute]]''' ist 56 km lang und führt zu historischen Schlössern, Parks, Gärten, Museen und Galerien der Region Westlausitz. Außerdem schließt sie die Stadt Stolpen mit Burganlage und historischem Marktplatz ein.
*** Die '''[[Naturerlebnisroute]]''' mit bewegtem Höhenprofil ist 73 km lang. Die Route führt zu schönen Aussichten. An anderen Stationen der Route wird Wissenswertes über die Natur der Region vermittelt. Außerdem führt sie zu verschiedenen Freibädern und dem Tier- und Kulturpark Bischofswerda.
*** Die '''[[Produktroute]]''' ist 62 km lang und ermöglicht den Besuch landwirtschaftlicher Direktvermarkter, von Manufakturen, Schauwerkstätten und Verkaufsstellen regionaler Produkte. Sie führt zu Handwerksbetrieben mit traditionellen Erzeugnissen der Region: zu Töpfern, Pfefferküchlern, Blaudruckern, Holzkunstwerkern, Bandwebern und anderen.
** Die '''[[Röderradroute]]''' folgt als überregionale Radwanderroute dem Verlauf der Großen Röder von ihrer Quelle im [[Rammenau]]er Ortsteil Röderbrunn über [[Großröhrsdorf]], [[Radeberg]], [[Radeburg]] und [[Großenhain]] bis nach [[Kosilenzien]] in Brandenburg. Dort geht sie in den Fernradweg 5 (Mühlberg – Bad Liebenwerda) über.
== MTB-Regionen ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/mountainbiken MTB-Infos auf Sachsen Tourismus] - offizielle landesweite Seite
== Weblinks ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/radfahren Radinfos auf Sachsen Tourismus] - offizielle landesweite Seite
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Deutschland]]
[[Kategorie:Radwege in Sachsen]]
{{class-3}}
j2m2b2otj69jr7wyiglx84wntwrkfe1
1769201
1769123
2026-04-17T10:42:26Z
Dirk Schmidt
15181
1769201
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Deutschland}}
Genauso unterschiedlich wie die Landschaften in Sachsen (z. B. [[Erzgebirge]], [[Leipziger Tieflandsbucht]], [[Sächsische Schweiz]], [[Oberlausitz|Ober-]] und [[Niederlausitz]], Elbtal ...) sind auch die Bedingungen für das Radfahren. Während z. B. der Elbe-Radweg zwischen [[Dresden]] und [[Bad Schandau]] vorbildlich ausgebaut ist, harpert es in Teilen des [[Erzgebirge]]s noch hinsichtlich Beschilderung und Wegeführung. Hier wurde aber bereits viel verbessert.
Diese Probleme sollten aber keinen Reiseradler davon abhalten, das [[Erzgebirge]] zu befahren. Sie benötigen lediglich eine Portion Abenteuerlust und eine genaue Radwanderkarte bzw. eine gute Outdoor-App, um voran zu kommen.
In Regionalverkehr der Bahn ist in Sachsen eine Fahrradtageskarte notwendig.
== Hintergrund ==
Das landesweite Radroutennetz für den Radtourismus findet sich noch im Aufbau. Wer abseits der gut ausgebauten, bekannten Routen unterwegs ist, merkt dies schnell: Man landet oftmals auf stärker befahrenen Landstraßen ohne Radweg. Auch sind selbst Hauptrouten, wie die [[D-Route 4: Mittelland-Route]] in Sachsen Stand 2026 teilweise noch gar nicht ausgeschildert.
Für das landesweite Radfahren in der Freizeit wurde das '''SachsenNetz Rad''' entwickelt. Das Netz verknüpft die Großen Radfernwege wie Elbe, Oder-Neisse-Radweg über kleinere Regionalrouten mit den Regionen. Stand 2026 sind in einigen Landkreisen die Routen des Netzes beschildert, in anderen Landkreises noch nicht.
* Artikel zum SachsenNetz Rad mit aktueller Stand der Ausschilderung nach Landkreisen auf [https://www.mobilitaet.sachsen.de/sachsennetz-rad-4296.html mobilitaet.sachsen.de]
* [https://www.mobilitaet.sachsen.de/download/SachsenNetz_Rad_2019.pdf Übersichtskarte des SachsenNetz Rad als PDF-Datei]
=== Radfernweg oder Regionalroute? ===
Diese Unterscheidung lässt sich im Detail nicht komplett scharf trennen. Grob lässt sich sagen, dass Radfernwege mindestens 100{{nnbsp}}km bis 120{{nnbsp}}km lang sind und zwei komplette Tagesetappen beinhalten. Ferner besitzen sie eine überregionale Verbindungsfunktion.
Auch viele Radrouten um 120 km Länge sind meist eher Regionalrouten. Oft finden sich auch mehrere Hundert Kilometer lange Regionalrundkurse, die in der Praxis nur eine Regionalroute darstellen. Natürlich ermöglichen sie bei z. B. 400{{nnbsp}}km bis{{nnbsp}}500 km Länge teilweise einwöchige Radurlaube. Trotzdem haben sie einen regionalen Bezug und werden damit hier den Regionalrouten zugeordnet.
Der besseren Übersicht halber sind Radfernwege in der Auswahl auch noch einmal den Regionen zugeordnet. Hier bitte aber nicht alle Radfernwege noch einmal im Detail zuordnen.
== Radfernwege ==
[[File:Bastei - Elberadweg Sächsische Schweiz.jpeg|thumb|305px|Elberadweg in der [[Sächsische Schweiz|Sächsischen Schweiz]]: Blick auf die [[Rathen#Sehenswürdigkeiten|Bastei]]]]
* [[Elbe-Radweg (Sächsische Schweiz - Magdeburg)|'''Elbe-Radweg''' (Sächische Schweiz - Magdeburg)]] - populärer Radwanderweg am bekannten Strom
*'''[[Elster-Radweg|Elster-Radweg]]''' - 250{{nnbsp}}km von den Höhen des Erzgebirges bis Halle (Saale).
*'''[[Radfernweg Euregio Egrensis]]''' - 529{{nnbsp}}km langer Rundkurs durch Thüringen, Sachsen, Böhmen und Bayern. Infos in der [[w:Euregio Egrensis (Radweg)|Wikipedia]].
*'''[[Frosch-Radweg|Frosch-Radweg]]''' - 260{{nnbsp}}km lange Mehrtagesrunde in der Oberlausitzer Heide- und Teichlandschaft. [[w:Froschradweg|Infos in der Wikipedia]]
*'''[[KAMMtour Ergebirge–Vogtland|KAMMtour Ergebirge–Vogtland]]''' - 180 Kilometer Höhenroute von Schöneck im Vogtland bis Altenberg-Geising im Osterzgebirge. Offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/kammtour-erzgebirge-auf-dem-hoechsten-weg-durch-sachsen-und-boehmen/tour.html www.erzgebirge-tourismus.de]
* [[Datei:Karlova stezka Logo.svg|20px]] '''[[Karlsroute]]''' - rund 120{{nnbsp}}km lange Route von Chemnitz über das westliche Erzgebirge nach Karlsbad an die Eger. Neben der Hauptroute wurden im Erzgebirge auch lokale Rundtouren ausgewiesen. [https://www.karlsroute.eu offizielle Routenseite]. In Karlsbad Anschluss an den [[Eger-Radweg]] Richtung Elbe, oder auch über das weitere Radnetz in Tschechien Richtung Prag.
* [[Datei:Niederlausitzer Bergbautour - Logo.svg|20px]] '''[[Niederlausitzer Bergbautour|Niederlausitzer Bergbautour]]''' - 510 Kilometer langer Radkurs durch die Lausitzer Bergbauregion.
* [[File:Muldentalradweg.svg|20px]] '''[[Muldental-Radweg|Muldental-Radweg]]''' - vom Erzgebirge nach Dessau an die Elbe.
* '''[[Pleiße-Radweg]]''' - 114 km in Westsachsen und Thüringen am Fluss Pleiße. Es geht von Werdau über Altenburg nach Leipzig. [[w:Pleiße-Radweg|Info in der Wikipedia]]
*[[File:Piktogramm_Oder-Neisse-Radweg.svg|20px]] '''[[Oder-Neiße-Radweg|Oder-Neiße-Radweg]]''' - Der südliche Teil der Strecke liegt in Sachsen.
*[[File:Logo_Radroute_Berlin_Leipzig_Rund.svg|20px]] '''[[Radweg Berlin–Leipzig]]''' - Der Name ist Programm. Natürlich kann man auch von Leipzig in die deutsche Hauptstadt radeln.
*'''[[Sächsische-Städteroute|Sächsische-Städteroute]]''' - Entlang der Hauptsiedlungsachse von West nach Ost durch Sachsen. Die Strecke ist weitgehend deckungsgleich mit der [[D-Route 4: Mittelland-Route]].
*'''[[Sächsische Mittelgebirgsroute]]''' - Höhenroute durch das Vogtland, Erzgebirge und Oberlausitzer Bergland, Start ist in Plauen, Ende in Zittau.
*'''[[Schwarze Elster-Radweg|Schwarze Elster-Radweg]]''' - 190 km entlang des Flusses, der Oberlauf mit Quelle liegt in Sachsen.
*'''[[Spree-Radweg|Spree-Radweg]]''' - Der Oberlauf der Spree liegt in Sachsen.
*'''[[Zschopautal-Radweg|Zschopautal-Radweg]]''' - Von den Höhen des Erzgebirges Richtung Mulde. offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/zschopautalradweg-der-koenigsweg-des-erzgebirges/tour.html erzgebirge-tourismus.de].
== Regionalrouten ==
[[Datei:Tunnel Auerswalde mit Chemnitzbrücken-kol.jpg|mini|[[Chemnitztalradweg]] bei der Stadt Chemnitz ([https://chemnitztalradweg.de offizielle Info])]]
* '''[[Chemnitztalradweg]]''' - Die Strecke liegt nördlich der gleichnamigen Großstadt. Das Projekt ist noch nicht komplett fertig gestellt. aktuell misst die Strecke ab Chemnitz Hbf 18{{nnbsp}}km einfach. [https://chemnitztalradweg.de/ Routenseite]
* '''[[Elbe-Mulde-Radweg]]''' - 29 km lange Regionalroute, die den [[Mulderadweg]] bei Döbeln mit der Elbe bei Zehren verbindet. wechselnde Beläge. [https://www.openstreetmap.org/relation/5398308#map=12/51.1653/13.2504 Strecke auf Openstreetmap]
* '''[[Flöhatalradweg]]''' Die 65 km lange Radroute km folgt dem gleichnamigen Fluss südöstlich Chemnitz im Erzgebirge. Von der Tschecnichen Grenze bei Deutschgeorgenthal bis zur Mündung in die Zschopau geht es am Fluss entlang. Die Flöhatalbahn begleitet ab [[Olbernhau]] die Route. Achtung: Zwischen Falkenau und Flöha zweimal [https://www.openstreetmap.org/#map=18/50.850275/13.098696 Umlaufsperren an der Bahn]). Große Anhängergespanne, wie 2 m lange Fahrradwohnwagen kommen hier nicht durch (parallel Nutzung Bundesstraße möglich, hier aber viel Verkehr und kein Radweg). [https://cycling.waymarkedtrails.org/#route?id=36563&map=10.0/50.7475/13.4864 Streckenverlauf mit GPX-Daten auf waymarkedtrails.org] (Daten Openstreetmap). Die Strecke geht zwar tendeziell bergab, besitzt aber einige größere Anstiege. Laut Daten Openstreetmap sind talwärts rund 1100 Höhenmeter zu überwinden.
*'''[[Göltzschtalradweg]]''' im Vogtland
*'''[[Torgischer Radwanderweg|Torgischer Radweg]]''' - 67{{nnbsp}}km lange Route, die Delitsch über Bad Düben mit Torgau an der Elbe verbindet. Es wird die Dübener Heide gequert. [https://www.naturpark-duebener-heide.de/beitraege/duebener-heide-entdecken-radfahren-torgischer-radweg/ Infos des Naturpark Dübener Heide].
*'''[[Preßnitztal-Radweg|Preßnitztal-Radweg]]''' im mittleren Erzgebirge. Die Route führt von [[Wolkenstein (Erzgebirge)|Wolkenstein]] entlang der Pressnitz bis nach [[Jöhstadt]].
* '''[[Vogtland-Radweg]]''' - Die Fahrt von [[Falkenstein]] nach [[Oelsnitz]] kann von Radlern komfortabel absolviert werden. 23 km lang und mindestens 2,5 m breit ist der Weg durch das hügelige [[Vogtland]], der auch zwei Talsperren verbindet. Ausgeschildert als "Radweg Falkenstein - Oelsnitz" endet der Radweg bei Oelsnitz an einer belebten Staatsstraße ohne Radspur. Die letzten 4 km sind sehr hügelig (10% Steigungen ausgeschildert), da die ehemalige Bahntrasse kaum genutzt wird und die Brücken abgerissen wurden. In Oelsnitz besteht über Ortsstraßen eine Anbindung an den [[Elster-Radweg]].
* Regionalrouten der Region '''Westlausitz''':
** 3 Themenrouten:
*** Die '''[[Kulturroute]]''' ist 56 km lang und führt zu historischen Schlössern, Parks, Gärten, Museen und Galerien der Region Westlausitz. Außerdem schließt sie die Stadt Stolpen mit Burganlage und historischem Marktplatz ein.
*** Die '''[[Naturerlebnisroute]]''' mit bewegtem Höhenprofil ist 73 km lang. Die Route führt zu schönen Aussichten. An anderen Stationen der Route wird Wissenswertes über die Natur der Region vermittelt. Außerdem führt sie zu verschiedenen Freibädern und dem Tier- und Kulturpark Bischofswerda.
*** Die '''[[Produktroute]]''' ist 62 km lang und ermöglicht den Besuch landwirtschaftlicher Direktvermarkter, von Manufakturen, Schauwerkstätten und Verkaufsstellen regionaler Produkte. Sie führt zu Handwerksbetrieben mit traditionellen Erzeugnissen der Region: zu Töpfern, Pfefferküchlern, Blaudruckern, Holzkunstwerkern, Bandwebern und anderen.
** Die '''[[Röderradroute]]''' folgt als überregionale Radwanderroute dem Verlauf der Großen Röder von ihrer Quelle im [[Rammenau]]er Ortsteil Röderbrunn über [[Großröhrsdorf]], [[Radeberg]], [[Radeburg]] und [[Großenhain]] bis nach [[Kosilenzien]] in Brandenburg. Dort geht sie in den Fernradweg 5 (Mühlberg – Bad Liebenwerda) über.
== MTB-Regionen ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/mountainbiken MTB-Infos auf Sachsen Tourismus] - offizielle landesweite Seite
== Weblinks ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/radfahren Radinfos auf Sachsen Tourismus] - offizielle landesweite Seite
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Deutschland]]
[[Kategorie:Radwege in Sachsen]]
{{class-3}}
hjw5rpdfz286bf01a6o4y6d0hqc8j9k
1769202
1769201
2026-04-17T10:44:59Z
Dirk Schmidt
15181
1769202
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Deutschland}}
Genauso unterschiedlich wie die Landschaften in Sachsen (z. B. [[Erzgebirge]], [[Leipziger Tieflandsbucht]], [[Sächsische Schweiz]], [[Oberlausitz|Ober-]] und [[Niederlausitz]], Elbtal ...) sind auch die Bedingungen für das Radfahren. Während z. B. der Elbe-Radweg zwischen [[Dresden]] und [[Bad Schandau]] vorbildlich ausgebaut ist, harpert es in Teilen des [[Erzgebirge]]s noch hinsichtlich Beschilderung und Wegeführung. Hier wurde aber bereits viel verbessert.
Diese Probleme sollten aber keinen Reiseradler davon abhalten, das [[Erzgebirge]] zu befahren. Sie benötigen lediglich eine Portion Abenteuerlust und eine genaue Radwanderkarte bzw. eine gute Outdoor-App, um voran zu kommen.
In Regionalverkehr der Bahn ist in Sachsen eine Fahrradtageskarte notwendig.
== Hintergrund ==
Das landesweite Radroutennetz für den Radtourismus findet sich noch im Aufbau. Wer abseits der gut ausgebauten, bekannten Routen unterwegs ist, merkt dies schnell: Man landet oftmals auf stärker befahrenen Landstraßen ohne Radweg. Auch sind selbst Hauptrouten, wie die [[D-Route 4: Mittelland-Route]] in Sachsen Stand 2026 teilweise noch gar nicht ausgeschildert.
Für das landesweite Radfahren in der Freizeit wurde das '''SachsenNetz Rad''' entwickelt. Das Netz verknüpft die Großen Radfernwege wie Elbe, Oder-Neisse-Radweg über kleinere Regionalrouten mit den Regionen. Stand 2026 sind in einigen Landkreisen die Routen des Netzes beschildert, in anderen Landkreises noch nicht.
* Artikel zum SachsenNetz Rad mit aktueller Stand der Ausschilderung nach Landkreisen auf [https://www.mobilitaet.sachsen.de/sachsennetz-rad-4296.html mobilitaet.sachsen.de]
* [https://www.mobilitaet.sachsen.de/download/SachsenNetz_Rad_2019.pdf Übersichtskarte des SachsenNetz Rad als PDF-Datei]
{{Panorama|bild=DD-Abendstimmung-Elbe.jpg|unterschrift=Abendstimmung am Elbe-Radweg bei Dresden. Die Route liegt vorne links. Im Hintergrund von links: Brühlsche Terrasse, Kunstakademie, Kuppel der Frauenkirche, Rathausturm, Kreuzkirche, Ständehaus, Residenzschloss mit Georgenbau und Hausmannsturm, Hofkirche, Augustusbrücke, ganz rechts Semperoper|breite=900px}}
=== Radfernweg oder Regionalroute? ===
Diese Unterscheidung lässt sich im Detail nicht komplett scharf trennen. Grob lässt sich sagen, dass Radfernwege mindestens 100{{nnbsp}}km bis 120{{nnbsp}}km lang sind und zwei komplette Tagesetappen beinhalten. Ferner besitzen sie eine überregionale Verbindungsfunktion.
Auch viele Radrouten um 120 km Länge sind meist eher Regionalrouten. Oft finden sich auch mehrere Hundert Kilometer lange Regionalrundkurse, die in der Praxis nur eine Regionalroute darstellen. Natürlich ermöglichen sie bei z. B. 400{{nnbsp}}km bis{{nnbsp}}500 km Länge teilweise einwöchige Radurlaube. Trotzdem haben sie einen regionalen Bezug und werden damit hier den Regionalrouten zugeordnet.
Der besseren Übersicht halber sind Radfernwege in der Auswahl auch noch einmal den Regionen zugeordnet. Hier bitte aber nicht alle Radfernwege noch einmal im Detail zuordnen.
== Radfernwege ==
[[File:Bastei - Elberadweg Sächsische Schweiz.jpeg|thumb|305px|Elberadweg in der [[Sächsische Schweiz|Sächsischen Schweiz]]: Blick auf die [[Rathen#Sehenswürdigkeiten|Bastei]]]]
* [[Elbe-Radweg (Sächsische Schweiz - Magdeburg)|'''Elbe-Radweg''' (Sächische Schweiz - Magdeburg)]] - populärer Radwanderweg am bekannten Strom
*'''[[Elster-Radweg|Elster-Radweg]]''' - 250{{nnbsp}}km von den Höhen des Erzgebirges bis Halle (Saale).
*'''[[Radfernweg Euregio Egrensis]]''' - 529{{nnbsp}}km langer Rundkurs durch Thüringen, Sachsen, Böhmen und Bayern. Infos in der [[w:Euregio Egrensis (Radweg)|Wikipedia]].
*'''[[Frosch-Radweg|Frosch-Radweg]]''' - 260{{nnbsp}}km lange Mehrtagesrunde in der Oberlausitzer Heide- und Teichlandschaft. [[w:Froschradweg|Infos in der Wikipedia]]
*'''[[KAMMtour Ergebirge–Vogtland|KAMMtour Ergebirge–Vogtland]]''' - 180 Kilometer Höhenroute von Schöneck im Vogtland bis Altenberg-Geising im Osterzgebirge. Offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/kammtour-erzgebirge-auf-dem-hoechsten-weg-durch-sachsen-und-boehmen/tour.html www.erzgebirge-tourismus.de]
* [[Datei:Karlova stezka Logo.svg|20px]] '''[[Karlsroute]]''' - rund 120{{nnbsp}}km lange Route von Chemnitz über das westliche Erzgebirge nach Karlsbad an die Eger. Neben der Hauptroute wurden im Erzgebirge auch lokale Rundtouren ausgewiesen. [https://www.karlsroute.eu offizielle Routenseite]. In Karlsbad Anschluss an den [[Eger-Radweg]] Richtung Elbe, oder auch über das weitere Radnetz in Tschechien Richtung Prag.
* [[Datei:Niederlausitzer Bergbautour - Logo.svg|20px]] '''[[Niederlausitzer Bergbautour|Niederlausitzer Bergbautour]]''' - 510 Kilometer langer Radkurs durch die Lausitzer Bergbauregion.
* [[File:Muldentalradweg.svg|20px]] '''[[Muldental-Radweg|Muldental-Radweg]]''' - vom Erzgebirge nach Dessau an die Elbe.
* '''[[Pleiße-Radweg]]''' - 114 km in Westsachsen und Thüringen am Fluss Pleiße. Es geht von Werdau über Altenburg nach Leipzig. [[w:Pleiße-Radweg|Info in der Wikipedia]]
*[[File:Piktogramm_Oder-Neisse-Radweg.svg|20px]] '''[[Oder-Neiße-Radweg|Oder-Neiße-Radweg]]''' - Der südliche Teil der Strecke liegt in Sachsen.
*[[File:Logo_Radroute_Berlin_Leipzig_Rund.svg|20px]] '''[[Radweg Berlin–Leipzig]]''' - Der Name ist Programm. Natürlich kann man auch von Leipzig in die deutsche Hauptstadt radeln.
*'''[[Sächsische-Städteroute|Sächsische-Städteroute]]''' - Entlang der Hauptsiedlungsachse von West nach Ost durch Sachsen. Die Strecke ist weitgehend deckungsgleich mit der [[D-Route 4: Mittelland-Route]].
*'''[[Sächsische Mittelgebirgsroute]]''' - Höhenroute durch das Vogtland, Erzgebirge und Oberlausitzer Bergland, Start ist in Plauen, Ende in Zittau.
*'''[[Schwarze Elster-Radweg|Schwarze Elster-Radweg]]''' - 190 km entlang des Flusses, der Oberlauf mit Quelle liegt in Sachsen.
*'''[[Spree-Radweg|Spree-Radweg]]''' - Der Oberlauf der Spree liegt in Sachsen.
*'''[[Zschopautal-Radweg|Zschopautal-Radweg]]''' - Von den Höhen des Erzgebirges Richtung Mulde. offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/zschopautalradweg-der-koenigsweg-des-erzgebirges/tour.html erzgebirge-tourismus.de].
== Regionalrouten ==
[[Datei:Tunnel Auerswalde mit Chemnitzbrücken-kol.jpg|mini|[[Chemnitztalradweg]] bei der Stadt Chemnitz ([https://chemnitztalradweg.de offizielle Info])]]
* '''[[Chemnitztalradweg]]''' - Die Strecke liegt nördlich der gleichnamigen Großstadt. Das Projekt ist noch nicht komplett fertig gestellt. aktuell misst die Strecke ab Chemnitz Hbf 18{{nnbsp}}km einfach. [https://chemnitztalradweg.de/ Routenseite]
* '''[[Elbe-Mulde-Radweg]]''' - 29 km lange Regionalroute, die den [[Mulderadweg]] bei Döbeln mit der Elbe bei Zehren verbindet. wechselnde Beläge. [https://www.openstreetmap.org/relation/5398308#map=12/51.1653/13.2504 Strecke auf Openstreetmap]
* '''[[Flöhatalradweg]]''' Die 65 km lange Radroute km folgt dem gleichnamigen Fluss südöstlich Chemnitz im Erzgebirge. Von der Tschecnichen Grenze bei Deutschgeorgenthal bis zur Mündung in die Zschopau geht es am Fluss entlang. Die Flöhatalbahn begleitet ab [[Olbernhau]] die Route. Achtung: Zwischen Falkenau und Flöha zweimal [https://www.openstreetmap.org/#map=18/50.850275/13.098696 Umlaufsperren an der Bahn]). Große Anhängergespanne, wie 2 m lange Fahrradwohnwagen kommen hier nicht durch (parallel Nutzung Bundesstraße möglich, hier aber viel Verkehr und kein Radweg). [https://cycling.waymarkedtrails.org/#route?id=36563&map=10.0/50.7475/13.4864 Streckenverlauf mit GPX-Daten auf waymarkedtrails.org] (Daten Openstreetmap). Die Strecke geht zwar tendeziell bergab, besitzt aber einige größere Anstiege. Laut Daten Openstreetmap sind talwärts rund 1100 Höhenmeter zu überwinden.
*'''[[Göltzschtalradweg]]''' im Vogtland
*'''[[Torgischer Radwanderweg|Torgischer Radweg]]''' - 67{{nnbsp}}km lange Route, die Delitsch über Bad Düben mit Torgau an der Elbe verbindet. Es wird die Dübener Heide gequert. [https://www.naturpark-duebener-heide.de/beitraege/duebener-heide-entdecken-radfahren-torgischer-radweg/ Infos des Naturpark Dübener Heide].
*'''[[Preßnitztal-Radweg|Preßnitztal-Radweg]]''' im mittleren Erzgebirge. Die Route führt von [[Wolkenstein (Erzgebirge)|Wolkenstein]] entlang der Pressnitz bis nach [[Jöhstadt]].
* '''[[Vogtland-Radweg]]''' - Die Fahrt von [[Falkenstein]] nach [[Oelsnitz]] kann von Radlern komfortabel absolviert werden. 23 km lang und mindestens 2,5 m breit ist der Weg durch das hügelige [[Vogtland]], der auch zwei Talsperren verbindet. Ausgeschildert als "Radweg Falkenstein - Oelsnitz" endet der Radweg bei Oelsnitz an einer belebten Staatsstraße ohne Radspur. Die letzten 4 km sind sehr hügelig (10% Steigungen ausgeschildert), da die ehemalige Bahntrasse kaum genutzt wird und die Brücken abgerissen wurden. In Oelsnitz besteht über Ortsstraßen eine Anbindung an den [[Elster-Radweg]].
* Regionalrouten der Region '''Westlausitz''':
** 3 Themenrouten:
*** Die '''[[Kulturroute]]''' ist 56 km lang und führt zu historischen Schlössern, Parks, Gärten, Museen und Galerien der Region Westlausitz. Außerdem schließt sie die Stadt Stolpen mit Burganlage und historischem Marktplatz ein.
*** Die '''[[Naturerlebnisroute]]''' mit bewegtem Höhenprofil ist 73 km lang. Die Route führt zu schönen Aussichten. An anderen Stationen der Route wird Wissenswertes über die Natur der Region vermittelt. Außerdem führt sie zu verschiedenen Freibädern und dem Tier- und Kulturpark Bischofswerda.
*** Die '''[[Produktroute]]''' ist 62 km lang und ermöglicht den Besuch landwirtschaftlicher Direktvermarkter, von Manufakturen, Schauwerkstätten und Verkaufsstellen regionaler Produkte. Sie führt zu Handwerksbetrieben mit traditionellen Erzeugnissen der Region: zu Töpfern, Pfefferküchlern, Blaudruckern, Holzkunstwerkern, Bandwebern und anderen.
** Die '''[[Röderradroute]]''' folgt als überregionale Radwanderroute dem Verlauf der Großen Röder von ihrer Quelle im [[Rammenau]]er Ortsteil Röderbrunn über [[Großröhrsdorf]], [[Radeberg]], [[Radeburg]] und [[Großenhain]] bis nach [[Kosilenzien]] in Brandenburg. Dort geht sie in den Fernradweg 5 (Mühlberg – Bad Liebenwerda) über.
== MTB-Regionen ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/mountainbiken MTB-Infos auf Sachsen Tourismus] - offizielle landesweite Seite
== Weblinks ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/radfahren Radinfos auf Sachsen Tourismus] - offizielle landesweite Seite
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Deutschland]]
[[Kategorie:Radwege in Sachsen]]
{{class-3}}
qh3u1x6ivi5i1khqexie2fsonzzjyc3
1769204
1769202
2026-04-17T10:57:20Z
Dirk Schmidt
15181
/* Regionalrouten */
1769204
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Deutschland}}
Genauso unterschiedlich wie die Landschaften in Sachsen (z. B. [[Erzgebirge]], [[Leipziger Tieflandsbucht]], [[Sächsische Schweiz]], [[Oberlausitz|Ober-]] und [[Niederlausitz]], Elbtal ...) sind auch die Bedingungen für das Radfahren. Während z. B. der Elbe-Radweg zwischen [[Dresden]] und [[Bad Schandau]] vorbildlich ausgebaut ist, harpert es in Teilen des [[Erzgebirge]]s noch hinsichtlich Beschilderung und Wegeführung. Hier wurde aber bereits viel verbessert.
Diese Probleme sollten aber keinen Reiseradler davon abhalten, das [[Erzgebirge]] zu befahren. Sie benötigen lediglich eine Portion Abenteuerlust und eine genaue Radwanderkarte bzw. eine gute Outdoor-App, um voran zu kommen.
In Regionalverkehr der Bahn ist in Sachsen eine Fahrradtageskarte notwendig.
== Hintergrund ==
Das landesweite Radroutennetz für den Radtourismus findet sich noch im Aufbau. Wer abseits der gut ausgebauten, bekannten Routen unterwegs ist, merkt dies schnell: Man landet oftmals auf stärker befahrenen Landstraßen ohne Radweg. Auch sind selbst Hauptrouten, wie die [[D-Route 4: Mittelland-Route]] in Sachsen Stand 2026 teilweise noch gar nicht ausgeschildert.
Für das landesweite Radfahren in der Freizeit wurde das '''SachsenNetz Rad''' entwickelt. Das Netz verknüpft die Großen Radfernwege wie Elbe, Oder-Neisse-Radweg über kleinere Regionalrouten mit den Regionen. Stand 2026 sind in einigen Landkreisen die Routen des Netzes beschildert, in anderen Landkreises noch nicht.
* Artikel zum SachsenNetz Rad mit aktueller Stand der Ausschilderung nach Landkreisen auf [https://www.mobilitaet.sachsen.de/sachsennetz-rad-4296.html mobilitaet.sachsen.de]
* [https://www.mobilitaet.sachsen.de/download/SachsenNetz_Rad_2019.pdf Übersichtskarte des SachsenNetz Rad als PDF-Datei]
{{Panorama|bild=DD-Abendstimmung-Elbe.jpg|unterschrift=Abendstimmung am Elbe-Radweg bei Dresden. Die Route liegt vorne links. Im Hintergrund von links: Brühlsche Terrasse, Kunstakademie, Kuppel der Frauenkirche, Rathausturm, Kreuzkirche, Ständehaus, Residenzschloss mit Georgenbau und Hausmannsturm, Hofkirche, Augustusbrücke, ganz rechts Semperoper|breite=900px}}
=== Radfernweg oder Regionalroute? ===
Diese Unterscheidung lässt sich im Detail nicht komplett scharf trennen. Grob lässt sich sagen, dass Radfernwege mindestens 100{{nnbsp}}km bis 120{{nnbsp}}km lang sind und zwei komplette Tagesetappen beinhalten. Ferner besitzen sie eine überregionale Verbindungsfunktion.
Auch viele Radrouten um 120 km Länge sind meist eher Regionalrouten. Oft finden sich auch mehrere Hundert Kilometer lange Regionalrundkurse, die in der Praxis nur eine Regionalroute darstellen. Natürlich ermöglichen sie bei z. B. 400{{nnbsp}}km bis{{nnbsp}}500 km Länge teilweise einwöchige Radurlaube. Trotzdem haben sie einen regionalen Bezug und werden damit hier den Regionalrouten zugeordnet.
Der besseren Übersicht halber sind Radfernwege in der Auswahl auch noch einmal den Regionen zugeordnet. Hier bitte aber nicht alle Radfernwege noch einmal im Detail zuordnen.
== Radfernwege ==
[[File:Bastei - Elberadweg Sächsische Schweiz.jpeg|thumb|305px|Elberadweg in der [[Sächsische Schweiz|Sächsischen Schweiz]]: Blick auf die [[Rathen#Sehenswürdigkeiten|Bastei]]]]
* [[Elbe-Radweg (Sächsische Schweiz - Magdeburg)|'''Elbe-Radweg''' (Sächische Schweiz - Magdeburg)]] - populärer Radwanderweg am bekannten Strom
*'''[[Elster-Radweg|Elster-Radweg]]''' - 250{{nnbsp}}km von den Höhen des Erzgebirges bis Halle (Saale).
*'''[[Radfernweg Euregio Egrensis]]''' - 529{{nnbsp}}km langer Rundkurs durch Thüringen, Sachsen, Böhmen und Bayern. Infos in der [[w:Euregio Egrensis (Radweg)|Wikipedia]].
*'''[[Frosch-Radweg|Frosch-Radweg]]''' - 260{{nnbsp}}km lange Mehrtagesrunde in der Oberlausitzer Heide- und Teichlandschaft. [[w:Froschradweg|Infos in der Wikipedia]]
*'''[[KAMMtour Ergebirge–Vogtland|KAMMtour Ergebirge–Vogtland]]''' - 180 Kilometer Höhenroute von Schöneck im Vogtland bis Altenberg-Geising im Osterzgebirge. Offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/kammtour-erzgebirge-auf-dem-hoechsten-weg-durch-sachsen-und-boehmen/tour.html www.erzgebirge-tourismus.de]
* [[Datei:Karlova stezka Logo.svg|20px]] '''[[Karlsroute]]''' - rund 120{{nnbsp}}km lange Route von Chemnitz über das westliche Erzgebirge nach Karlsbad an die Eger. Neben der Hauptroute wurden im Erzgebirge auch lokale Rundtouren ausgewiesen. [https://www.karlsroute.eu offizielle Routenseite]. In Karlsbad Anschluss an den [[Eger-Radweg]] Richtung Elbe, oder auch über das weitere Radnetz in Tschechien Richtung Prag.
* [[Datei:Niederlausitzer Bergbautour - Logo.svg|20px]] '''[[Niederlausitzer Bergbautour|Niederlausitzer Bergbautour]]''' - 510 Kilometer langer Radkurs durch die Lausitzer Bergbauregion.
* [[File:Muldentalradweg.svg|20px]] '''[[Muldental-Radweg|Muldental-Radweg]]''' - vom Erzgebirge nach Dessau an die Elbe.
* '''[[Pleiße-Radweg]]''' - 114 km in Westsachsen und Thüringen am Fluss Pleiße. Es geht von Werdau über Altenburg nach Leipzig. [[w:Pleiße-Radweg|Info in der Wikipedia]]
*[[File:Piktogramm_Oder-Neisse-Radweg.svg|20px]] '''[[Oder-Neiße-Radweg|Oder-Neiße-Radweg]]''' - Der südliche Teil der Strecke liegt in Sachsen.
*[[File:Logo_Radroute_Berlin_Leipzig_Rund.svg|20px]] '''[[Radweg Berlin–Leipzig]]''' - Der Name ist Programm. Natürlich kann man auch von Leipzig in die deutsche Hauptstadt radeln.
*'''[[Sächsische-Städteroute|Sächsische-Städteroute]]''' - Entlang der Hauptsiedlungsachse von West nach Ost durch Sachsen. Die Strecke ist weitgehend deckungsgleich mit der [[D-Route 4: Mittelland-Route]].
*'''[[Sächsische Mittelgebirgsroute]]''' - Höhenroute durch das Vogtland, Erzgebirge und Oberlausitzer Bergland, Start ist in Plauen, Ende in Zittau.
*'''[[Schwarze Elster-Radweg|Schwarze Elster-Radweg]]''' - 190 km entlang des Flusses, der Oberlauf mit Quelle liegt in Sachsen.
*'''[[Spree-Radweg|Spree-Radweg]]''' - Der Oberlauf der Spree liegt in Sachsen.
*'''[[Zschopautal-Radweg|Zschopautal-Radweg]]''' - Von den Höhen des Erzgebirges Richtung Mulde. offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/zschopautalradweg-der-koenigsweg-des-erzgebirges/tour.html erzgebirge-tourismus.de].
== Regionalrouten ==
[[Datei:Tunnel Auerswalde mit Chemnitzbrücken-kol.jpg|mini|[[Chemnitztalradweg]] bei der Stadt Chemnitz ([https://chemnitztalradweg.de offizielle Info])]]
=== Region Leipzig ===
* '''[[Elbe-Mulde-Radweg]]''' - 29 km lange Regionalroute, die den [[Mulderadweg]] bei Döbeln mit der Elbe bei Zehren verbindet. wechselnde Beläge. [https://www.openstreetmap.org/relation/5398308#map=12/51.1653/13.2504 Strecke auf Openstreetmap]
*'''[[Torgischer Radwanderweg|Torgischer Radweg]]''' - 67{{nnbsp}}km lange Route, die Delitsch über Bad Düben mit Torgau an der Elbe verbindet. Es wird die Dübener Heide gequert. [https://www.naturpark-duebener-heide.de/beitraege/duebener-heide-entdecken-radfahren-torgischer-radweg/ Infos des Naturpark Dübener Heide].
=== Ergebirge, Erzgebirgsvorland und Vogtland ===
* '''[[Chemnitztalradweg]]''' - Die Strecke liegt nördlich der gleichnamigen Großstadt. Das Projekt ist noch nicht komplett fertig gestellt. aktuell misst die Strecke ab Chemnitz Hbf 18{{nnbsp}}km einfach. [https://chemnitztalradweg.de/ Routenseite]
* '''[[Flöhatalradweg]]''' - Die 65 km lange Radroute folgt dem gleichnamigen Fluss südöstlich Chemnitz im Erzgebirge. Von der Tschecnichen Grenze bei Deutschgeorgenthal bis zur Mündung in die Zschopau geht es am Fluss entlang. Die Flöhatalbahn begleitet ab [[Olbernhau]] die Route. Achtung: Zwischen Falkenau und Flöha zweimal [https://www.openstreetmap.org/#map=18/50.850275/13.098696 Umlaufsperren an der Bahn]). Große Anhängergespanne, wie 2 m lange Fahrradwohnwagen kommen hier nicht durch (parallel Nutzung Bundesstraße möglich, hier aber viel Verkehr und kein Radweg). [https://cycling.waymarkedtrails.org/#route?id=36563&map=10.0/50.7475/13.4864 Streckenverlauf mit GPX-Daten auf waymarkedtrails.org] (Daten Openstreetmap). Die Strecke geht zwar tendeziell bergab, besitzt aber einige größere Anstiege. Laut Daten Openstreetmap sind talwärts rund 1100 Höhenmeter zu überwinden.
*'''[[Göltzschtalradweg]]''' im Vogtland
*'''[[Preßnitztal-Radweg|Preßnitztal-Radweg]]''' im mittleren Erzgebirge. Die Route führt von [[Wolkenstein (Erzgebirge)|Wolkenstein]] entlang der Pressnitz bis nach [[Jöhstadt]].
* '''[[Vogtland-Radweg]]''' - Die Fahrt von [[Falkenstein]] nach [[Oelsnitz]] kann von Radlern komfortabel absolviert werden. 23 km lang und mindestens 2,5 m breit ist der Weg durch das hügelige [[Vogtland]], der auch zwei Talsperren verbindet. Ausgeschildert als "Radweg Falkenstein - Oelsnitz" endet der Radweg bei Oelsnitz an einer belebten Staatsstraße ohne Radspur. Die letzten 4 km sind sehr hügelig (10% Steigungen ausgeschildert), da die ehemalige Bahntrasse kaum genutzt wird und die Brücken abgerissen wurden. In Oelsnitz besteht über Ortsstraßen eine Anbindung an den [[Elster-Radweg]].
=== Oberlausitz ===
* '''[[Spreeradweg]]''' - Die bekannte Flussroute beginnt in der Oberlausitz.
* '''[[Oder-Neisse-Radweg]]''' - Die Paradestrecke an der Deutschen Ostgrenze beginnt in der Oberlausitz.
* '''[[Zwillingsradweg]]''' - 275 km lange regionale Mehrtagersroute ab Bautzen oder Görlitz, die den Oder-Neiße-Radweg und Spreeradweg zu einer großen Runde verbindet. [https://www.oberlausitz.com/zwillinge Offzielle Infos auf oberlausitz.com].
=== Westlausitz ===
Regionalrouten in der Region '''Westlausitz'''.
Themenrouten:
*Die '''[[Kulturroute]]''' ist 56 km lang und führt zu historischen Schlössern, Parks, Gärten, Museen und Galerien der Region Westlausitz. Außerdem schließt sie die Stadt Stolpen mit Burganlage und historischem Marktplatz ein.
*Die '''[[Naturerlebnisroute]]''' mit bewegtem Höhenprofil ist 73 km lang. Die Route führt zu schönen Aussichten. An anderen Stationen der Route wird Wissenswertes über die Natur der Region vermittelt. Außerdem führt sie zu verschiedenen Freibädern und dem Tier- und Kulturpark Bischofswerda.
*Die '''[[Produktroute]]''' ist 62 km lang und ermöglicht den Besuch landwirtschaftlicher Direktvermarkter, von Manufakturen, Schauwerkstätten und Verkaufsstellen regionaler Produkte. Sie führt zu Handwerksbetrieben mit traditionellen Erzeugnissen der Region: zu Töpfern, Pfefferküchlern, Blaudruckern, Holzkunstwerkern, Bandwebern und anderen.
*Die '''[[Röderradroute]]''' folgt als überregionale Radwanderroute dem Verlauf der Großen Röder von ihrer Quelle im [[Rammenau]]er Ortsteil Röderbrunn über [[Großröhrsdorf]], [[Radeberg]], [[Radeburg]] und [[Großenhain]] bis nach [[Kosilenzien]] in Brandenburg. Dort geht sie in den Fernradweg 5 (Mühlberg – Bad Liebenwerda) über.
== MTB-Regionen ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/mountainbiken MTB-Infos auf Sachsen Tourismus] - offizielle landesweite Seite
== Weblinks ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/radfahren Radinfos auf Sachsen Tourismus] - offizielle landesweite Seite
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Deutschland]]
[[Kategorie:Radwege in Sachsen]]
{{class-3}}
kbt4x50tf4oqcmtxuxs9hhuuuhj8mb9
1769206
1769204
2026-04-17T11:03:48Z
Dirk Schmidt
15181
/* Regionalrouten */
1769206
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Deutschland}}
Genauso unterschiedlich wie die Landschaften in Sachsen (z. B. [[Erzgebirge]], [[Leipziger Tieflandsbucht]], [[Sächsische Schweiz]], [[Oberlausitz|Ober-]] und [[Niederlausitz]], Elbtal ...) sind auch die Bedingungen für das Radfahren. Während z. B. der Elbe-Radweg zwischen [[Dresden]] und [[Bad Schandau]] vorbildlich ausgebaut ist, harpert es in Teilen des [[Erzgebirge]]s noch hinsichtlich Beschilderung und Wegeführung. Hier wurde aber bereits viel verbessert.
Diese Probleme sollten aber keinen Reiseradler davon abhalten, das [[Erzgebirge]] zu befahren. Sie benötigen lediglich eine Portion Abenteuerlust und eine genaue Radwanderkarte bzw. eine gute Outdoor-App, um voran zu kommen.
In Regionalverkehr der Bahn ist in Sachsen eine Fahrradtageskarte notwendig.
== Hintergrund ==
Das landesweite Radroutennetz für den Radtourismus findet sich noch im Aufbau. Wer abseits der gut ausgebauten, bekannten Routen unterwegs ist, merkt dies schnell: Man landet oftmals auf stärker befahrenen Landstraßen ohne Radweg. Auch sind selbst Hauptrouten, wie die [[D-Route 4: Mittelland-Route]] in Sachsen Stand 2026 teilweise noch gar nicht ausgeschildert.
Für das landesweite Radfahren in der Freizeit wurde das '''SachsenNetz Rad''' entwickelt. Das Netz verknüpft die Großen Radfernwege wie Elbe, Oder-Neisse-Radweg über kleinere Regionalrouten mit den Regionen. Stand 2026 sind in einigen Landkreisen die Routen des Netzes beschildert, in anderen Landkreises noch nicht.
* Artikel zum SachsenNetz Rad mit aktueller Stand der Ausschilderung nach Landkreisen auf [https://www.mobilitaet.sachsen.de/sachsennetz-rad-4296.html mobilitaet.sachsen.de]
* [https://www.mobilitaet.sachsen.de/download/SachsenNetz_Rad_2019.pdf Übersichtskarte des SachsenNetz Rad als PDF-Datei]
{{Panorama|bild=DD-Abendstimmung-Elbe.jpg|unterschrift=Abendstimmung am Elbe-Radweg bei Dresden. Die Route liegt vorne links. Im Hintergrund von links: Brühlsche Terrasse, Kunstakademie, Kuppel der Frauenkirche, Rathausturm, Kreuzkirche, Ständehaus, Residenzschloss mit Georgenbau und Hausmannsturm, Hofkirche, Augustusbrücke, ganz rechts Semperoper|breite=900px}}
=== Radfernweg oder Regionalroute? ===
Diese Unterscheidung lässt sich im Detail nicht komplett scharf trennen. Grob lässt sich sagen, dass Radfernwege mindestens 100{{nnbsp}}km bis 120{{nnbsp}}km lang sind und zwei komplette Tagesetappen beinhalten. Ferner besitzen sie eine überregionale Verbindungsfunktion.
Auch viele Radrouten um 120 km Länge sind meist eher Regionalrouten. Oft finden sich auch mehrere Hundert Kilometer lange Regionalrundkurse, die in der Praxis nur eine Regionalroute darstellen. Natürlich ermöglichen sie bei z. B. 400{{nnbsp}}km bis{{nnbsp}}500 km Länge teilweise einwöchige Radurlaube. Trotzdem haben sie einen regionalen Bezug und werden damit hier den Regionalrouten zugeordnet.
Der besseren Übersicht halber sind Radfernwege in der Auswahl auch noch einmal den Regionen zugeordnet. Hier bitte aber nicht alle Radfernwege noch einmal im Detail zuordnen.
== Radfernwege ==
[[File:Bastei - Elberadweg Sächsische Schweiz.jpeg|thumb|305px|Elberadweg in der [[Sächsische Schweiz|Sächsischen Schweiz]]: Blick auf die [[Rathen#Sehenswürdigkeiten|Bastei]]]]
* [[Elbe-Radweg (Sächsische Schweiz - Magdeburg)|'''Elbe-Radweg''' (Sächische Schweiz - Magdeburg)]] - populärer Radwanderweg am bekannten Strom
*'''[[Elster-Radweg|Elster-Radweg]]''' - 250{{nnbsp}}km von den Höhen des Erzgebirges bis Halle (Saale).
*'''[[Radfernweg Euregio Egrensis]]''' - 529{{nnbsp}}km langer Rundkurs durch Thüringen, Sachsen, Böhmen und Bayern. Infos in der [[w:Euregio Egrensis (Radweg)|Wikipedia]].
*'''[[Frosch-Radweg|Frosch-Radweg]]''' - 260{{nnbsp}}km lange Mehrtagesrunde in der Oberlausitzer Heide- und Teichlandschaft. [[w:Froschradweg|Infos in der Wikipedia]]
*'''[[KAMMtour Ergebirge–Vogtland|KAMMtour Ergebirge–Vogtland]]''' - 180 Kilometer Höhenroute von Schöneck im Vogtland bis Altenberg-Geising im Osterzgebirge. Offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/kammtour-erzgebirge-auf-dem-hoechsten-weg-durch-sachsen-und-boehmen/tour.html www.erzgebirge-tourismus.de]
* [[Datei:Karlova stezka Logo.svg|20px]] '''[[Karlsroute]]''' - rund 120{{nnbsp}}km lange Route von Chemnitz über das westliche Erzgebirge nach Karlsbad an die Eger. Neben der Hauptroute wurden im Erzgebirge auch lokale Rundtouren ausgewiesen. [https://www.karlsroute.eu offizielle Routenseite]. In Karlsbad Anschluss an den [[Eger-Radweg]] Richtung Elbe, oder auch über das weitere Radnetz in Tschechien Richtung Prag.
* [[Datei:Niederlausitzer Bergbautour - Logo.svg|20px]] '''[[Niederlausitzer Bergbautour|Niederlausitzer Bergbautour]]''' - 510 Kilometer langer Radkurs durch die Lausitzer Bergbauregion.
* [[File:Muldentalradweg.svg|20px]] '''[[Muldental-Radweg|Muldental-Radweg]]''' - vom Erzgebirge nach Dessau an die Elbe.
* '''[[Pleiße-Radweg]]''' - 114 km in Westsachsen und Thüringen am Fluss Pleiße. Es geht von Werdau über Altenburg nach Leipzig. [[w:Pleiße-Radweg|Info in der Wikipedia]]
*[[File:Piktogramm_Oder-Neisse-Radweg.svg|20px]] '''[[Oder-Neiße-Radweg|Oder-Neiße-Radweg]]''' - Der südliche Teil der Strecke liegt in Sachsen.
*[[File:Logo_Radroute_Berlin_Leipzig_Rund.svg|20px]] '''[[Radweg Berlin–Leipzig]]''' - Der Name ist Programm. Natürlich kann man auch von Leipzig in die deutsche Hauptstadt radeln.
*'''[[Sächsische-Städteroute|Sächsische-Städteroute]]''' - Entlang der Hauptsiedlungsachse von West nach Ost durch Sachsen. Die Strecke ist weitgehend deckungsgleich mit der [[D-Route 4: Mittelland-Route]].
*'''[[Sächsische Mittelgebirgsroute]]''' - Höhenroute durch das Vogtland, Erzgebirge und Oberlausitzer Bergland, Start ist in Plauen, Ende in Zittau.
*'''[[Schwarze Elster-Radweg|Schwarze Elster-Radweg]]''' - 190 km entlang des Flusses, der Oberlauf mit Quelle liegt in Sachsen.
*'''[[Spree-Radweg|Spree-Radweg]]''' - Der Oberlauf der Spree liegt in Sachsen.
*'''[[Zschopautal-Radweg|Zschopautal-Radweg]]''' - Von den Höhen des Erzgebirges Richtung Mulde. offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/zschopautalradweg-der-koenigsweg-des-erzgebirges/tour.html erzgebirge-tourismus.de].
== Regionalrouten ==
[[Datei:Tunnel Auerswalde mit Chemnitzbrücken-kol.jpg|mini|[[Chemnitztalradweg]] bei der Stadt Chemnitz ([https://chemnitztalradweg.de offizielle Info])]]
=== Region Leipzig ===
* '''[[Elbe-Mulde-Radweg]]''' - 29 km lange Regionalroute, die den [[Mulderadweg]] bei Döbeln mit der Elbe bei Zehren verbindet. wechselnde Beläge. [https://www.openstreetmap.org/relation/5398308#map=12/51.1653/13.2504 Strecke auf Openstreetmap]
*'''[[Torgischer Radwanderweg|Torgischer Radweg]]''' - 67{{nnbsp}}km lange Route, die Delitsch über Bad Düben mit Torgau an der Elbe verbindet. Es wird die Dübener Heide gequert. [https://www.naturpark-duebener-heide.de/beitraege/duebener-heide-entdecken-radfahren-torgischer-radweg/ Infos des Naturpark Dübener Heide].
=== Ergebirge, Mittelsächsiches Hügelland und Vogtland ===
* '''[[Chemnitztalradweg]]''' - Die Strecke liegt nördlich der gleichnamigen Großstadt. Das Projekt ist noch nicht komplett fertig gestellt. aktuell misst die Strecke ab Chemnitz Hbf 18{{nnbsp}}km einfach. [https://chemnitztalradweg.de/ Routenseite]
* '''[[Flöhatalradweg]]''' - Die 65 km lange Radroute folgt dem gleichnamigen Fluss südöstlich Chemnitz im Erzgebirge. Von der Tschecnichen Grenze bei Deutschgeorgenthal bis zur Mündung in die Zschopau geht es am Fluss entlang. Die Flöhatalbahn begleitet ab [[Olbernhau]] die Route. Achtung: Zwischen Falkenau und Flöha zweimal [https://www.openstreetmap.org/#map=18/50.850275/13.098696 Umlaufsperren an der Bahn]). Große Anhängergespanne, wie 2 m lange Fahrradwohnwagen kommen hier nicht durch (parallel Nutzung Bundesstraße möglich, hier aber viel Verkehr und kein Radweg). [https://cycling.waymarkedtrails.org/#route?id=36563&map=10.0/50.7475/13.4864 Streckenverlauf mit GPX-Daten auf waymarkedtrails.org] (Daten Openstreetmap). Die Strecke geht zwar tendeziell bergab, besitzt aber einige größere Anstiege. Laut Daten Openstreetmap sind talwärts rund 1100 Höhenmeter zu überwinden.
*'''[[Frosch-Radweg|Frosch-Radweg]]''' - 260{{nnbsp}}km lange Mehrtagesrunde in der Oberlausitzer Heide- und Teichlandschaft. [[w:Froschradweg|Infos in der Wikipedia]]
*'''[[Göltzschtalradweg]]''' im Vogtland
*'''[[Preßnitztal-Radweg|Preßnitztal-Radweg]]''' im mittleren Erzgebirge. Die Route führt von [[Wolkenstein (Erzgebirge)|Wolkenstein]] entlang der Pressnitz bis nach [[Jöhstadt]].
* '''[[Vogtland-Radweg]]''' - Die Fahrt von [[Falkenstein]] nach [[Oelsnitz]] kann von Radlern komfortabel absolviert werden. 23 km lang und mindestens 2,5 m breit ist der Weg durch das hügelige [[Vogtland]], der auch zwei Talsperren verbindet. Ausgeschildert als "Radweg Falkenstein - Oelsnitz" endet der Radweg bei Oelsnitz an einer belebten Staatsstraße ohne Radspur. Die letzten 4 km sind sehr hügelig (10% Steigungen ausgeschildert), da die ehemalige Bahntrasse kaum genutzt wird und die Brücken abgerissen wurden. In Oelsnitz besteht über Ortsstraßen eine Anbindung an den [[Elster-Radweg]].
=== Oberlausitz ===
* '''[[Spreeradweg]]''' - Die bekannte Flussroute beginnt in der Oberlausitz.
* '''[[Oder-Neisse-Radweg]]''' - Die Paradestrecke an der Deutschen Ostgrenze beginnt in der Oberlausitz.
* '''[[Zwillingsradweg]]''' - 275 km lange regionale Mehrtagersroute ab Bautzen oder Görlitz, die den Oder-Neiße-Radweg und Spreeradweg zu einer großen Runde verbindet. [https://www.oberlausitz.com/zwillinge Offzielle Infos auf oberlausitz.com].
=== Westlausitz ===
Regionalrouten in der Region '''Westlausitz'''.
Themenrouten:
*Die '''[[Kulturroute]]''' ist 56 km lang und führt zu historischen Schlössern, Parks, Gärten, Museen und Galerien der Region Westlausitz. Außerdem schließt sie die Stadt Stolpen mit Burganlage und historischem Marktplatz ein.
*Die '''[[Naturerlebnisroute]]''' mit bewegtem Höhenprofil ist 73 km lang. Die Route führt zu schönen Aussichten. An anderen Stationen der Route wird Wissenswertes über die Natur der Region vermittelt. Außerdem führt sie zu verschiedenen Freibädern und dem Tier- und Kulturpark Bischofswerda.
*Die '''[[Produktroute]]''' ist 62 km lang und ermöglicht den Besuch landwirtschaftlicher Direktvermarkter, von Manufakturen, Schauwerkstätten und Verkaufsstellen regionaler Produkte. Sie führt zu Handwerksbetrieben mit traditionellen Erzeugnissen der Region: zu Töpfern, Pfefferküchlern, Blaudruckern, Holzkunstwerkern, Bandwebern und anderen.
*Die '''[[Röderradroute]]''' folgt als überregionale Radwanderroute dem Verlauf der Großen Röder von ihrer Quelle im [[Rammenau]]er Ortsteil Röderbrunn über [[Großröhrsdorf]], [[Radeberg]], [[Radeburg]] und [[Großenhain]] bis nach [[Kosilenzien]] in Brandenburg. Dort geht sie in den Fernradweg 5 (Mühlberg – Bad Liebenwerda) über.
== MTB-Regionen ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/mountainbiken MTB-Infos auf Sachsen Tourismus] - offizielle landesweite Seite
== Weblinks ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/radfahren Radinfos auf Sachsen Tourismus] - offizielle landesweite Seite
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Deutschland]]
[[Kategorie:Radwege in Sachsen]]
{{class-3}}
ov16qv1la3zi42fx2fxsjg0s49tig7s
1769207
1769206
2026-04-17T11:08:32Z
Dirk Schmidt
15181
/* Ergebirge, Mittelsächsiches Hügelland und Vogtland */
1769207
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Deutschland}}
Genauso unterschiedlich wie die Landschaften in Sachsen (z. B. [[Erzgebirge]], [[Leipziger Tieflandsbucht]], [[Sächsische Schweiz]], [[Oberlausitz|Ober-]] und [[Niederlausitz]], Elbtal ...) sind auch die Bedingungen für das Radfahren. Während z. B. der Elbe-Radweg zwischen [[Dresden]] und [[Bad Schandau]] vorbildlich ausgebaut ist, harpert es in Teilen des [[Erzgebirge]]s noch hinsichtlich Beschilderung und Wegeführung. Hier wurde aber bereits viel verbessert.
Diese Probleme sollten aber keinen Reiseradler davon abhalten, das [[Erzgebirge]] zu befahren. Sie benötigen lediglich eine Portion Abenteuerlust und eine genaue Radwanderkarte bzw. eine gute Outdoor-App, um voran zu kommen.
In Regionalverkehr der Bahn ist in Sachsen eine Fahrradtageskarte notwendig.
== Hintergrund ==
Das landesweite Radroutennetz für den Radtourismus findet sich noch im Aufbau. Wer abseits der gut ausgebauten, bekannten Routen unterwegs ist, merkt dies schnell: Man landet oftmals auf stärker befahrenen Landstraßen ohne Radweg. Auch sind selbst Hauptrouten, wie die [[D-Route 4: Mittelland-Route]] in Sachsen Stand 2026 teilweise noch gar nicht ausgeschildert.
Für das landesweite Radfahren in der Freizeit wurde das '''SachsenNetz Rad''' entwickelt. Das Netz verknüpft die Großen Radfernwege wie Elbe, Oder-Neisse-Radweg über kleinere Regionalrouten mit den Regionen. Stand 2026 sind in einigen Landkreisen die Routen des Netzes beschildert, in anderen Landkreises noch nicht.
* Artikel zum SachsenNetz Rad mit aktueller Stand der Ausschilderung nach Landkreisen auf [https://www.mobilitaet.sachsen.de/sachsennetz-rad-4296.html mobilitaet.sachsen.de]
* [https://www.mobilitaet.sachsen.de/download/SachsenNetz_Rad_2019.pdf Übersichtskarte des SachsenNetz Rad als PDF-Datei]
{{Panorama|bild=DD-Abendstimmung-Elbe.jpg|unterschrift=Abendstimmung am Elbe-Radweg bei Dresden. Die Route liegt vorne links. Im Hintergrund von links: Brühlsche Terrasse, Kunstakademie, Kuppel der Frauenkirche, Rathausturm, Kreuzkirche, Ständehaus, Residenzschloss mit Georgenbau und Hausmannsturm, Hofkirche, Augustusbrücke, ganz rechts Semperoper|breite=900px}}
=== Radfernweg oder Regionalroute? ===
Diese Unterscheidung lässt sich im Detail nicht komplett scharf trennen. Grob lässt sich sagen, dass Radfernwege mindestens 100{{nnbsp}}km bis 120{{nnbsp}}km lang sind und zwei komplette Tagesetappen beinhalten. Ferner besitzen sie eine überregionale Verbindungsfunktion.
Auch viele Radrouten um 120 km Länge sind meist eher Regionalrouten. Oft finden sich auch mehrere Hundert Kilometer lange Regionalrundkurse, die in der Praxis nur eine Regionalroute darstellen. Natürlich ermöglichen sie bei z. B. 400{{nnbsp}}km bis{{nnbsp}}500 km Länge teilweise einwöchige Radurlaube. Trotzdem haben sie einen regionalen Bezug und werden damit hier den Regionalrouten zugeordnet.
Der besseren Übersicht halber sind Radfernwege in der Auswahl auch noch einmal den Regionen zugeordnet. Hier bitte aber nicht alle Radfernwege noch einmal im Detail zuordnen.
== Radfernwege ==
[[File:Bastei - Elberadweg Sächsische Schweiz.jpeg|thumb|305px|Elberadweg in der [[Sächsische Schweiz|Sächsischen Schweiz]]: Blick auf die [[Rathen#Sehenswürdigkeiten|Bastei]]]]
* [[Elbe-Radweg (Sächsische Schweiz - Magdeburg)|'''Elbe-Radweg''' (Sächische Schweiz - Magdeburg)]] - populärer Radwanderweg am bekannten Strom
*'''[[Elster-Radweg|Elster-Radweg]]''' - 250{{nnbsp}}km von den Höhen des Erzgebirges bis Halle (Saale).
*'''[[Radfernweg Euregio Egrensis]]''' - 529{{nnbsp}}km langer Rundkurs durch Thüringen, Sachsen, Böhmen und Bayern. Infos in der [[w:Euregio Egrensis (Radweg)|Wikipedia]].
*'''[[Frosch-Radweg|Frosch-Radweg]]''' - 260{{nnbsp}}km lange Mehrtagesrunde in der Oberlausitzer Heide- und Teichlandschaft. [[w:Froschradweg|Infos in der Wikipedia]]
*'''[[KAMMtour Ergebirge–Vogtland|KAMMtour Ergebirge–Vogtland]]''' - 180 Kilometer Höhenroute von Schöneck im Vogtland bis Altenberg-Geising im Osterzgebirge. Offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/kammtour-erzgebirge-auf-dem-hoechsten-weg-durch-sachsen-und-boehmen/tour.html www.erzgebirge-tourismus.de]
* [[Datei:Karlova stezka Logo.svg|20px]] '''[[Karlsroute]]''' - rund 120{{nnbsp}}km lange Route von Chemnitz über das westliche Erzgebirge nach Karlsbad an die Eger. Neben der Hauptroute wurden im Erzgebirge auch lokale Rundtouren ausgewiesen. [https://www.karlsroute.eu offizielle Routenseite]. In Karlsbad Anschluss an den [[Eger-Radweg]] Richtung Elbe, oder auch über das weitere Radnetz in Tschechien Richtung Prag.
* [[Datei:Niederlausitzer Bergbautour - Logo.svg|20px]] '''[[Niederlausitzer Bergbautour|Niederlausitzer Bergbautour]]''' - 510 Kilometer langer Radkurs durch die Lausitzer Bergbauregion.
* [[File:Muldentalradweg.svg|20px]] '''[[Muldental-Radweg|Muldental-Radweg]]''' - vom Erzgebirge nach Dessau an die Elbe.
* '''[[Pleiße-Radweg]]''' - 114 km in Westsachsen und Thüringen am Fluss Pleiße. Es geht von Werdau über Altenburg nach Leipzig. [[w:Pleiße-Radweg|Info in der Wikipedia]]
*[[File:Piktogramm_Oder-Neisse-Radweg.svg|20px]] '''[[Oder-Neiße-Radweg|Oder-Neiße-Radweg]]''' - Der südliche Teil der Strecke liegt in Sachsen.
*[[File:Logo_Radroute_Berlin_Leipzig_Rund.svg|20px]] '''[[Radweg Berlin–Leipzig]]''' - Der Name ist Programm. Natürlich kann man auch von Leipzig in die deutsche Hauptstadt radeln.
*'''[[Sächsische-Städteroute|Sächsische-Städteroute]]''' - Entlang der Hauptsiedlungsachse von West nach Ost durch Sachsen. Die Strecke ist weitgehend deckungsgleich mit der [[D-Route 4: Mittelland-Route]].
*'''[[Sächsische Mittelgebirgsroute]]''' - Höhenroute durch das Vogtland, Erzgebirge und Oberlausitzer Bergland, Start ist in Plauen, Ende in Zittau.
*'''[[Schwarze Elster-Radweg|Schwarze Elster-Radweg]]''' - 190 km entlang des Flusses, der Oberlauf mit Quelle liegt in Sachsen.
*'''[[Spree-Radweg|Spree-Radweg]]''' - Der Oberlauf der Spree liegt in Sachsen.
*'''[[Zschopautal-Radweg|Zschopautal-Radweg]]''' - Von den Höhen des Erzgebirges Richtung Mulde. offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/zschopautalradweg-der-koenigsweg-des-erzgebirges/tour.html erzgebirge-tourismus.de].
== Regionalrouten ==
[[Datei:Tunnel Auerswalde mit Chemnitzbrücken-kol.jpg|mini|[[Chemnitztalradweg]] bei der Stadt Chemnitz ([https://chemnitztalradweg.de offizielle Info])]]
=== Region Leipzig ===
* '''[[Elbe-Mulde-Radweg]]''' - 29 km lange Regionalroute, die den [[Mulderadweg]] bei Döbeln mit der Elbe bei Zehren verbindet. wechselnde Beläge. [https://www.openstreetmap.org/relation/5398308#map=12/51.1653/13.2504 Strecke auf Openstreetmap]
*'''[[Torgischer Radwanderweg|Torgischer Radweg]]''' - 67{{nnbsp}}km lange Route, die Delitsch über Bad Düben mit Torgau an der Elbe verbindet. Es wird die Dübener Heide gequert. [https://www.naturpark-duebener-heide.de/beitraege/duebener-heide-entdecken-radfahren-torgischer-radweg/ Infos des Naturpark Dübener Heide].
=== Ergebirge, Mittelsächsiches Hügelland und Vogtland ===
* '''[[Chemnitztalradweg]]''' - Die Strecke liegt nördlich der gleichnamigen Großstadt. Das Projekt ist noch nicht komplett fertig gestellt. aktuell misst die Strecke ab Chemnitz Hbf 18{{nnbsp}}km einfach. [https://chemnitztalradweg.de/ Routenseite]
* '''[[Flöhatalradweg]]''' - Die 65 km lange Radroute folgt dem gleichnamigen Fluss südöstlich Chemnitz im Erzgebirge. Von der Tschecnichen Grenze bei Deutschgeorgenthal bis zur Mündung in die Zschopau geht es am Fluss entlang. Die Flöhatalbahn begleitet ab [[Olbernhau]] die Route. Achtung: Zwischen Falkenau und Flöha zweimal [https://www.openstreetmap.org/#map=18/50.850275/13.098696 Umlaufsperren an der Bahn]). Große Anhängergespanne, wie 2 m lange Fahrradwohnwagen kommen hier nicht durch (parallel Nutzung Bundesstraße möglich, hier aber viel Verkehr und kein Radweg). [https://cycling.waymarkedtrails.org/#route?id=36563&map=10.0/50.7475/13.4864 Streckenverlauf mit GPX-Daten auf waymarkedtrails.org] (Daten Openstreetmap). Die Strecke geht zwar tendeziell bergab, besitzt aber einige größere Anstiege. Laut Daten Openstreetmap sind talwärts rund 1100 Höhenmeter zu überwinden.
*'''[[Frosch-Radweg|Frosch-Radweg]]''' - 260{{nnbsp}}km lange Mehrtagesrunde in der Oberlausitzer Heide- und Teichlandschaft. Die Runde gehört offiziell zu den Sächsischen Radfernwegen, besitzt aber eher regionalen Charakter [[w:Froschradweg|Infos in der Wikipedia]].
*'''[[Göltzschtalradweg]]''' im Vogtland
*'''[[Preßnitztal-Radweg|Preßnitztal-Radweg]]''' im mittleren Erzgebirge. Die Route führt von [[Wolkenstein (Erzgebirge)|Wolkenstein]] entlang der Pressnitz bis nach [[Jöhstadt]].
* '''[[Vogtland-Radweg]]''' - Die Fahrt von [[Falkenstein]] nach [[Oelsnitz]] kann von Radlern komfortabel absolviert werden. 23 km lang und mindestens 2,5 m breit ist der Weg durch das hügelige [[Vogtland]], der auch zwei Talsperren verbindet. Ausgeschildert als "Radweg Falkenstein - Oelsnitz" endet der Radweg bei Oelsnitz an einer belebten Staatsstraße ohne Radspur. Die letzten 4 km sind sehr hügelig (10% Steigungen ausgeschildert), da die ehemalige Bahntrasse kaum genutzt wird und die Brücken abgerissen wurden. In Oelsnitz besteht über Ortsstraßen eine Anbindung an den [[Elster-Radweg]].
=== Oberlausitz ===
* '''[[Spreeradweg]]''' - Die bekannte Flussroute beginnt in der Oberlausitz.
* '''[[Oder-Neisse-Radweg]]''' - Die Paradestrecke an der Deutschen Ostgrenze beginnt in der Oberlausitz.
* '''[[Zwillingsradweg]]''' - 275 km lange regionale Mehrtagersroute ab Bautzen oder Görlitz, die den Oder-Neiße-Radweg und Spreeradweg zu einer großen Runde verbindet. [https://www.oberlausitz.com/zwillinge Offzielle Infos auf oberlausitz.com].
=== Westlausitz ===
Regionalrouten in der Region '''Westlausitz'''.
Themenrouten:
*Die '''[[Kulturroute]]''' ist 56 km lang und führt zu historischen Schlössern, Parks, Gärten, Museen und Galerien der Region Westlausitz. Außerdem schließt sie die Stadt Stolpen mit Burganlage und historischem Marktplatz ein.
*Die '''[[Naturerlebnisroute]]''' mit bewegtem Höhenprofil ist 73 km lang. Die Route führt zu schönen Aussichten. An anderen Stationen der Route wird Wissenswertes über die Natur der Region vermittelt. Außerdem führt sie zu verschiedenen Freibädern und dem Tier- und Kulturpark Bischofswerda.
*Die '''[[Produktroute]]''' ist 62 km lang und ermöglicht den Besuch landwirtschaftlicher Direktvermarkter, von Manufakturen, Schauwerkstätten und Verkaufsstellen regionaler Produkte. Sie führt zu Handwerksbetrieben mit traditionellen Erzeugnissen der Region: zu Töpfern, Pfefferküchlern, Blaudruckern, Holzkunstwerkern, Bandwebern und anderen.
*Die '''[[Röderradroute]]''' folgt als überregionale Radwanderroute dem Verlauf der Großen Röder von ihrer Quelle im [[Rammenau]]er Ortsteil Röderbrunn über [[Großröhrsdorf]], [[Radeberg]], [[Radeburg]] und [[Großenhain]] bis nach [[Kosilenzien]] in Brandenburg. Dort geht sie in den Fernradweg 5 (Mühlberg – Bad Liebenwerda) über.
== MTB-Regionen ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/mountainbiken MTB-Infos auf Sachsen Tourismus] - offizielle landesweite Seite
== Weblinks ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/radfahren Radinfos auf Sachsen Tourismus] - offizielle landesweite Seite
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Deutschland]]
[[Kategorie:Radwege in Sachsen]]
{{class-3}}
2ysa2vks2vuvjnrdo8dd0rdah2lhp5m
1769208
1769207
2026-04-17T11:09:20Z
Dirk Schmidt
15181
/* Radfernweg oder Regionalroute? */
1769208
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Deutschland}}
Genauso unterschiedlich wie die Landschaften in Sachsen (z. B. [[Erzgebirge]], [[Leipziger Tieflandsbucht]], [[Sächsische Schweiz]], [[Oberlausitz|Ober-]] und [[Niederlausitz]], Elbtal ...) sind auch die Bedingungen für das Radfahren. Während z. B. der Elbe-Radweg zwischen [[Dresden]] und [[Bad Schandau]] vorbildlich ausgebaut ist, harpert es in Teilen des [[Erzgebirge]]s noch hinsichtlich Beschilderung und Wegeführung. Hier wurde aber bereits viel verbessert.
Diese Probleme sollten aber keinen Reiseradler davon abhalten, das [[Erzgebirge]] zu befahren. Sie benötigen lediglich eine Portion Abenteuerlust und eine genaue Radwanderkarte bzw. eine gute Outdoor-App, um voran zu kommen.
In Regionalverkehr der Bahn ist in Sachsen eine Fahrradtageskarte notwendig.
== Hintergrund ==
Das landesweite Radroutennetz für den Radtourismus findet sich noch im Aufbau. Wer abseits der gut ausgebauten, bekannten Routen unterwegs ist, merkt dies schnell: Man landet oftmals auf stärker befahrenen Landstraßen ohne Radweg. Auch sind selbst Hauptrouten, wie die [[D-Route 4: Mittelland-Route]] in Sachsen Stand 2026 teilweise noch gar nicht ausgeschildert.
Für das landesweite Radfahren in der Freizeit wurde das '''SachsenNetz Rad''' entwickelt. Das Netz verknüpft die Großen Radfernwege wie Elbe, Oder-Neisse-Radweg über kleinere Regionalrouten mit den Regionen. Stand 2026 sind in einigen Landkreisen die Routen des Netzes beschildert, in anderen Landkreises noch nicht.
* Artikel zum SachsenNetz Rad mit aktueller Stand der Ausschilderung nach Landkreisen auf [https://www.mobilitaet.sachsen.de/sachsennetz-rad-4296.html mobilitaet.sachsen.de]
* [https://www.mobilitaet.sachsen.de/download/SachsenNetz_Rad_2019.pdf Übersichtskarte des SachsenNetz Rad als PDF-Datei]
{{Panorama|bild=DD-Abendstimmung-Elbe.jpg|unterschrift=Abendstimmung am Elbe-Radweg bei Dresden. Die Route liegt vorne links. Im Hintergrund von links: Brühlsche Terrasse, Kunstakademie, Kuppel der Frauenkirche, Rathausturm, Kreuzkirche, Ständehaus, Residenzschloss mit Georgenbau und Hausmannsturm, Hofkirche, Augustusbrücke, ganz rechts Semperoper|breite=900px}}
=== Radfernweg oder Regionalroute? ===
Diese Unterscheidung lässt sich im Detail nicht komplett scharf trennen. Grob lässt sich sagen, dass Radfernwege mindestens 100{{nnbsp}}km bis 120{{nnbsp}}km lang sind und zwei komplette Tagesetappen beinhalten. Ferner besitzen sie eine überregionale Verbindungsfunktion.
Auch viele Radrouten um 120 km Länge sind meist eher Regionalrouten. Oft finden sich auch mehrere Hundert Kilometer lange Regionalrundkurse, die in der Praxis nur eine Regionalroute darstellen. Natürlich ermöglichen sie bei z. B. 400{{nnbsp}}km bis{{nnbsp}}500 km Länge teilweise einwöchige Radurlaube. Trotzdem haben sie einen regionalen Bezug und werden damit hier den Regionalrouten zugeordnet.
Der besseren Übersicht halber sind Radfernwege in der Auswahl auch noch einmal teilweise den Regionen zugeordnet.
== Radfernwege ==
[[File:Bastei - Elberadweg Sächsische Schweiz.jpeg|thumb|305px|Elberadweg in der [[Sächsische Schweiz|Sächsischen Schweiz]]: Blick auf die [[Rathen#Sehenswürdigkeiten|Bastei]]]]
* [[Elbe-Radweg (Sächsische Schweiz - Magdeburg)|'''Elbe-Radweg''' (Sächische Schweiz - Magdeburg)]] - populärer Radwanderweg am bekannten Strom
*'''[[Elster-Radweg|Elster-Radweg]]''' - 250{{nnbsp}}km von den Höhen des Erzgebirges bis Halle (Saale).
*'''[[Radfernweg Euregio Egrensis]]''' - 529{{nnbsp}}km langer Rundkurs durch Thüringen, Sachsen, Böhmen und Bayern. Infos in der [[w:Euregio Egrensis (Radweg)|Wikipedia]].
*'''[[Frosch-Radweg|Frosch-Radweg]]''' - 260{{nnbsp}}km lange Mehrtagesrunde in der Oberlausitzer Heide- und Teichlandschaft. [[w:Froschradweg|Infos in der Wikipedia]]
*'''[[KAMMtour Ergebirge–Vogtland|KAMMtour Ergebirge–Vogtland]]''' - 180 Kilometer Höhenroute von Schöneck im Vogtland bis Altenberg-Geising im Osterzgebirge. Offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/kammtour-erzgebirge-auf-dem-hoechsten-weg-durch-sachsen-und-boehmen/tour.html www.erzgebirge-tourismus.de]
* [[Datei:Karlova stezka Logo.svg|20px]] '''[[Karlsroute]]''' - rund 120{{nnbsp}}km lange Route von Chemnitz über das westliche Erzgebirge nach Karlsbad an die Eger. Neben der Hauptroute wurden im Erzgebirge auch lokale Rundtouren ausgewiesen. [https://www.karlsroute.eu offizielle Routenseite]. In Karlsbad Anschluss an den [[Eger-Radweg]] Richtung Elbe, oder auch über das weitere Radnetz in Tschechien Richtung Prag.
* [[Datei:Niederlausitzer Bergbautour - Logo.svg|20px]] '''[[Niederlausitzer Bergbautour|Niederlausitzer Bergbautour]]''' - 510 Kilometer langer Radkurs durch die Lausitzer Bergbauregion.
* [[File:Muldentalradweg.svg|20px]] '''[[Muldental-Radweg|Muldental-Radweg]]''' - vom Erzgebirge nach Dessau an die Elbe.
* '''[[Pleiße-Radweg]]''' - 114 km in Westsachsen und Thüringen am Fluss Pleiße. Es geht von Werdau über Altenburg nach Leipzig. [[w:Pleiße-Radweg|Info in der Wikipedia]]
*[[File:Piktogramm_Oder-Neisse-Radweg.svg|20px]] '''[[Oder-Neiße-Radweg|Oder-Neiße-Radweg]]''' - Der südliche Teil der Strecke liegt in Sachsen.
*[[File:Logo_Radroute_Berlin_Leipzig_Rund.svg|20px]] '''[[Radweg Berlin–Leipzig]]''' - Der Name ist Programm. Natürlich kann man auch von Leipzig in die deutsche Hauptstadt radeln.
*'''[[Sächsische-Städteroute|Sächsische-Städteroute]]''' - Entlang der Hauptsiedlungsachse von West nach Ost durch Sachsen. Die Strecke ist weitgehend deckungsgleich mit der [[D-Route 4: Mittelland-Route]].
*'''[[Sächsische Mittelgebirgsroute]]''' - Höhenroute durch das Vogtland, Erzgebirge und Oberlausitzer Bergland, Start ist in Plauen, Ende in Zittau.
*'''[[Schwarze Elster-Radweg|Schwarze Elster-Radweg]]''' - 190 km entlang des Flusses, der Oberlauf mit Quelle liegt in Sachsen.
*'''[[Spree-Radweg|Spree-Radweg]]''' - Der Oberlauf der Spree liegt in Sachsen.
*'''[[Zschopautal-Radweg|Zschopautal-Radweg]]''' - Von den Höhen des Erzgebirges Richtung Mulde. offizielle Infos auf [https://www.erzgebirge-tourismus.de/radfahren/fernradwege-trekkingtouren/tour/zschopautalradweg-der-koenigsweg-des-erzgebirges/tour.html erzgebirge-tourismus.de].
== Regionalrouten ==
[[Datei:Tunnel Auerswalde mit Chemnitzbrücken-kol.jpg|mini|[[Chemnitztalradweg]] bei der Stadt Chemnitz ([https://chemnitztalradweg.de offizielle Info])]]
=== Region Leipzig ===
* '''[[Elbe-Mulde-Radweg]]''' - 29 km lange Regionalroute, die den [[Mulderadweg]] bei Döbeln mit der Elbe bei Zehren verbindet. wechselnde Beläge. [https://www.openstreetmap.org/relation/5398308#map=12/51.1653/13.2504 Strecke auf Openstreetmap]
*'''[[Torgischer Radwanderweg|Torgischer Radweg]]''' - 67{{nnbsp}}km lange Route, die Delitsch über Bad Düben mit Torgau an der Elbe verbindet. Es wird die Dübener Heide gequert. [https://www.naturpark-duebener-heide.de/beitraege/duebener-heide-entdecken-radfahren-torgischer-radweg/ Infos des Naturpark Dübener Heide].
=== Ergebirge, Mittelsächsiches Hügelland und Vogtland ===
* '''[[Chemnitztalradweg]]''' - Die Strecke liegt nördlich der gleichnamigen Großstadt. Das Projekt ist noch nicht komplett fertig gestellt. aktuell misst die Strecke ab Chemnitz Hbf 18{{nnbsp}}km einfach. [https://chemnitztalradweg.de/ Routenseite]
* '''[[Flöhatalradweg]]''' - Die 65 km lange Radroute folgt dem gleichnamigen Fluss südöstlich Chemnitz im Erzgebirge. Von der Tschecnichen Grenze bei Deutschgeorgenthal bis zur Mündung in die Zschopau geht es am Fluss entlang. Die Flöhatalbahn begleitet ab [[Olbernhau]] die Route. Achtung: Zwischen Falkenau und Flöha zweimal [https://www.openstreetmap.org/#map=18/50.850275/13.098696 Umlaufsperren an der Bahn]). Große Anhängergespanne, wie 2 m lange Fahrradwohnwagen kommen hier nicht durch (parallel Nutzung Bundesstraße möglich, hier aber viel Verkehr und kein Radweg). [https://cycling.waymarkedtrails.org/#route?id=36563&map=10.0/50.7475/13.4864 Streckenverlauf mit GPX-Daten auf waymarkedtrails.org] (Daten Openstreetmap). Die Strecke geht zwar tendeziell bergab, besitzt aber einige größere Anstiege. Laut Daten Openstreetmap sind talwärts rund 1100 Höhenmeter zu überwinden.
*'''[[Frosch-Radweg|Frosch-Radweg]]''' - 260{{nnbsp}}km lange Mehrtagesrunde in der Oberlausitzer Heide- und Teichlandschaft. Die Runde gehört offiziell zu den Sächsischen Radfernwegen, besitzt aber eher regionalen Charakter [[w:Froschradweg|Infos in der Wikipedia]].
*'''[[Göltzschtalradweg]]''' im Vogtland
*'''[[Preßnitztal-Radweg|Preßnitztal-Radweg]]''' im mittleren Erzgebirge. Die Route führt von [[Wolkenstein (Erzgebirge)|Wolkenstein]] entlang der Pressnitz bis nach [[Jöhstadt]].
* '''[[Vogtland-Radweg]]''' - Die Fahrt von [[Falkenstein]] nach [[Oelsnitz]] kann von Radlern komfortabel absolviert werden. 23 km lang und mindestens 2,5 m breit ist der Weg durch das hügelige [[Vogtland]], der auch zwei Talsperren verbindet. Ausgeschildert als "Radweg Falkenstein - Oelsnitz" endet der Radweg bei Oelsnitz an einer belebten Staatsstraße ohne Radspur. Die letzten 4 km sind sehr hügelig (10% Steigungen ausgeschildert), da die ehemalige Bahntrasse kaum genutzt wird und die Brücken abgerissen wurden. In Oelsnitz besteht über Ortsstraßen eine Anbindung an den [[Elster-Radweg]].
=== Oberlausitz ===
* '''[[Spreeradweg]]''' - Die bekannte Flussroute beginnt in der Oberlausitz.
* '''[[Oder-Neisse-Radweg]]''' - Die Paradestrecke an der Deutschen Ostgrenze beginnt in der Oberlausitz.
* '''[[Zwillingsradweg]]''' - 275 km lange regionale Mehrtagersroute ab Bautzen oder Görlitz, die den Oder-Neiße-Radweg und Spreeradweg zu einer großen Runde verbindet. [https://www.oberlausitz.com/zwillinge Offzielle Infos auf oberlausitz.com].
=== Westlausitz ===
Regionalrouten in der Region '''Westlausitz'''.
Themenrouten:
*Die '''[[Kulturroute]]''' ist 56 km lang und führt zu historischen Schlössern, Parks, Gärten, Museen und Galerien der Region Westlausitz. Außerdem schließt sie die Stadt Stolpen mit Burganlage und historischem Marktplatz ein.
*Die '''[[Naturerlebnisroute]]''' mit bewegtem Höhenprofil ist 73 km lang. Die Route führt zu schönen Aussichten. An anderen Stationen der Route wird Wissenswertes über die Natur der Region vermittelt. Außerdem führt sie zu verschiedenen Freibädern und dem Tier- und Kulturpark Bischofswerda.
*Die '''[[Produktroute]]''' ist 62 km lang und ermöglicht den Besuch landwirtschaftlicher Direktvermarkter, von Manufakturen, Schauwerkstätten und Verkaufsstellen regionaler Produkte. Sie führt zu Handwerksbetrieben mit traditionellen Erzeugnissen der Region: zu Töpfern, Pfefferküchlern, Blaudruckern, Holzkunstwerkern, Bandwebern und anderen.
*Die '''[[Röderradroute]]''' folgt als überregionale Radwanderroute dem Verlauf der Großen Röder von ihrer Quelle im [[Rammenau]]er Ortsteil Röderbrunn über [[Großröhrsdorf]], [[Radeberg]], [[Radeburg]] und [[Großenhain]] bis nach [[Kosilenzien]] in Brandenburg. Dort geht sie in den Fernradweg 5 (Mühlberg – Bad Liebenwerda) über.
== MTB-Regionen ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/mountainbiken MTB-Infos auf Sachsen Tourismus] - offizielle landesweite Seite
== Weblinks ==
* [https://www.sachsen-tourismus.de/erlebnisse/aktivurlaub/radfahren Radinfos auf Sachsen Tourismus] - offizielle landesweite Seite
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Deutschland]]
[[Kategorie:Radwege in Sachsen]]
{{class-3}}
la0kox02m5h3ukakhhcycx1czj8gqd5
Wikivoyage:Lounge
4
7393
1769013
1766222
2026-04-16T13:54:10Z
Eduard47
17518
Neuer Abschnitt /* Hinweis auf laufende Diskussionen */
1769013
wikitext
text/x-wiki
__NEWSECTIONLINK__ <!-- damit erzeugen wir einen "+"-Tab oben, das ermöglicht ein einfaches Hinzufügen eines neuen Diskussionsthemas
-->{{IstIn|Organisation}} __FORCETOC__
[[File:City Space Bar & Lounge.JPG|mini|City Space Bar & Lounge im Swissôtel Krasnye Holmy Moskau]]
Die '''Lounge''' bietet die Möglichkeit für allgemeine Diskussionen an zentraler Stelle.
Neben den Lounges der Sprachversionen von Wikivoyage gibt es die englischsprachige [[:mail:wikivoyage-l|Mailingliste Wikivoyage-l]] und die Seite '''[[meta:Wikivoyage/Lounge|Wikivoyage Lounge]] auf Meta''' für Diskussionen über alle Sprachversionen und die Beziehung zu anderen Wikimedia-Projekten.
Alte Beiträge (in der Regel Threads, die älter als 14 Tage sind) befinden sich im '''[[Wikivoyage:Lounge/Archiv|Archiv]]'''. — '''[{{FULLURL:Wikivoyage:Lounge|action=edit§ion=new}} Neue Beiträge bitte unten anfügen]'''.
<!--hier geht's los-->
==Zur Erinnerung [[#zwei_Abstimmung_Lebensmittelmärkte]] ==
Ich hoffe das Thema ist dann am 14.12 konstruktiv mit Vorschlag von der Fussi erledigt.
Abstimmung bis 14.12 ist hier: [[#zwei_Abstimmung_Lebensmittelmärkte]] --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 10:42, 6. Dez. 2025 (CET)
=== Abstimmung Lebensmittelmärkte ===
Folgender Textabschnitt unten soll '''neu zum Thema [[Wikivoyage:Wohin_damit#L|"L" Lebensmittelgeschäft]]''' und bei '''[[Wikivoyage:Wohin_damit#D|"D" Drogerie, Drogeriemarkt]]''' aufgenommen werden. Der neue Text ersetzt jeweils die bisherigen Textabschnitte.
Der neue Textabschnitt:
"Hinweise zu Versorgungseinrichtungen mit Lebensmitteln und Drogerieartikeln nur in kleinen Orten (Abschnitt Einkaufen), ohne Nennung der Firmennamen (Handelsketten) und nur mit Marker ohne weitere Details, d. h. auch ohne Adresse und ohne Öffnungszeiten. Die nächste größere Einkaufsmöglichkeit befindet sich in XYZ."
Bitte mit Wort "Ja", "Nein" oder "Enthaltung" abstimmen. Die Abstimmung endet am Mittwoch 15. Oktober 2025 um 23:59 Uhr Mitteleuropäische Zeit.
'''Abstimmung:'''
* '''Ja''' --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 15:47, 8. Okt. 2025 (CEST)
:'''Ja''' -- [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 16:22, 8. Okt. 2025 (CEST)
* '''Nein''' das ist eine Wischi-Waschi-Formulierung. Ein Eintrag ohne Name Adresse ist sinnlos für Leser. --[[Benutzer:Qualitätssicherung|Qualitätssicherung]] ([[Benutzer Diskussion:Qualitätssicherung|Diskussion]]) 23:14, 8. Okt. 2025 (CEST)
:: Nachtrag: als ich vor ein paar Jahren in Australien war, waren die wenigen ALDI-Süd (''sic'') dort eine Erlösung im Vergleich zu den australischen Ketten, mit mieser Qualität und horrenden Preisen. Sind dort für Reisende wichtig um nicht zu sagen lebenwichtig. ;-)
* '''Nein''' -- Dies ist eher sinnlos. Wenn es schon kaum was gibt, hilft dies auch bloß nicht. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 07:30, 9. Okt. 2025 (CEST)
*:* Ja --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 20:27, 13. Okt. 2025 (CEST)
* Eher '''Nein''' aus zwei Gründen. '''1.''' Dann könnte man auch einfach einen Marker direkt im Mapframe angeben, wie ich es in [[Singapur/Southern Islands]] bei den Toiletten, Aussichtspunkten und Stränden gemacht habe - keines dieser Objekte steht im Text. Das Symbol wäre dann {{Code|grocery}}. Das ist ja bisher gar nicht geregelt und bisher alles erlaubt. Weil ist nix anderes als dort oben steht. Und etwas Namenloses im Text macht keinen Sinn. Wäre vielleicht generell eine gute Alternative. '''2.''' Wäre eine allgemeine Augenmaß-Formulierung nicht flexibler? Ist bestimmt nur eine Frage der Zeit, dass wir über ein anderes Verbot mit einen "Aber" reden.
:PS1: ließe sich auch gut auf die oft diskutiereten Apotheken anwenden, die jetzt noch generell zugelassen sind.
:PS2: Auf [[Wikivoyage:Wohin_damit|Wohin_damit]] gibt es auch "K wie [[Wikivoyage:Wohin_damit#K|Kiosk]]" -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 05:32, 14. Okt. 2025 (CEST)
=== 2. Abstimmung Lebensmittelmärkte ===
Ich hätte einen Alternativvorschlag.
* verbotene Objekte bleiben pauschal erstmal verboten, also Supermärkte, Friseure, Tankstellen und was in weiteren Diskussionen noch dazukommt (Imbissbuden, Apotheken, Fast-Food, Kantinen, Kioske)
* In die Einleitung von [[Wikivoyage:Wohin damit]] kommt, eine Klausel. ''Auf dieser Seite als nicht erwünscht eingestufte Objekte können ausnahmsweise in Artikeln gelistet werden, wenn sie ein Alleinstellungsmerkmal besitzen. Als ein solches Merkmal kann beispielsweise folgendes gelten:''
** ''Überregionale Bekanntheit''
** ''Einzig vorhandenes Objekt in weitem Umkreis. Das kann je nach Weltregion ein unterschiedlicher Radius sein und sollte im entsprechenden Kontext abgewogen werden.''
** ''Wenn in einer Einrichtung neben der Landessprache auch Deutsch oder Englisch gesprochen wird, und beide Sprachen keine Amtssprache in dem Land sind.''
** ''Touristisch interessante zusätzliche Eigenschaft, die über die normale Bestimmung des Objektes hinausgeht (z.{{nnbsp}}B. wenn Imbissbude auch ein Planespotting-Hotspot ist.''
''Dieses Merkmal ist auf der Diskussionsseite unter „Objekte mit Alleinstellungsmerknmal“ zu dokumentieren. Dieser Abschnitt sollte nicht archiviert werden. Von der Ausnahme ausgeschlossen sind [[Wikivoyage:Unerwünschte Inhalte|Unerwünschte Inhalte]]. Ist es nicht angegeben, können entsprechende Einträge gelöscht werden.''
{{Ping|Dirk Schmidt|RaveDog|Qualitätssicherung|RolandUnger|Eduard47}} Wäre das eine Idee? Und bitte nicht fragen, wer jetzt nachträglich die ganzen Begründungen nachtragen soll. Wir sind alle entspannt und keiner, der die Regeln kennt, wird einen Lösch-Feldzug starten, wenn ein Eintrag augenscheinlich erstmal Sinn macht. Ansonsten rückfragen bzw. löschen und auf die Beschwerde warten und drüber reden. Dann aber über das konkrete Objekt selbst reden und keine Regeldiskussion führen. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 05:47, 4. Nov. 2025 (CET)
:Ich geb mal spät noch meinen Senf dazu, auch als jemand der bereits von Ravedogs Löschungen betroffen war: Würde Imbisse stehen lassen, wir sollten nicht nur die 3-Gänge-Küche abdecken. McDoof etc in Ausnahmen (einziger in weiter Umgebung, Touristischer Ort, etc.) ansonsten nein würde ich ebenfalls mitgehen.
:Wir sind kein Telefonbuch, aber etwas Augenmaß ist immer gut.
:Mfg [[Benutzer:Deutschereditor|Deutschereditor]] ([[Benutzer Diskussion:Deutschereditor|Diskussion]]) 21:46, 17. Nov. 2025 (CET)
PS: Künftige Diskussionen könnten sich einfacher gestalten, da man nur noch entscheiden muss, ob eine Objektart unter die Regel "Verbot + Ausnahme" fallen soll. So könnte es obsolet werden in ellenlangen Diskussionen Szenarien zu entwerfen, wo man ein verbotenes Objekt doch brauchen könnte, wenn man sich einig ist, dass es im Regelfall nicht nach Wikivoyage gehört. Wenn man keine Ausnahme duldet, kommt es zusätzlich auf die Liste der [[Wikivoyage:Unerwünschte Inhalte|unerwünschten Inhalte]]. Ansonsten kann man alles, was nur auf [[Wikivoyage:Wohin damit|Wohin damit]] unerwünscht ist, im Ausnahmefall angeben. Und wenn nun einer den Friseurladen eines Star-Friseurs listen will.. Ok, von mir aus. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 06:53, 4. Nov. 2025 (CET)
:''Ja, prinzipiell ist das gute Idee!'' Mein Vorschlag der 1. Abstimmung war da eh nicht umfassend genug (Kioske, Tankstellen ja nicht dabei usw.). Also die Idee das so zu klären ist sinnvoll. Das bei potentiellen "Massenobjekten" grundlegend auszusortieren, aber in berechtigten Ausnahmen zuzulassen dann genau pragmatisch sinnvoll: Denn das lässt genau die pragmatischen Einzelfallentscheidungen die im sinne des Reisenden als Selbstversorger sinnvoll sind. Und die genaue Definition einer Ausnahme sollte man den Autoren überlassen, bzw. das jeweils bei Bedarf vor Ort am Artikel dann klären (Wenn z. B. ein Kioskfan anfängt Kioskliste irgendwo anzulegen...) Bei Lebensmittelmärkten wären solche Ausnahmen dann z. B. kleine Ferienorte und die Minimärklte - siehe der eine Lebensmittelmarkt in Oberhof oder in Spiekeroog, die drei Minimärkte auf den drei Dörfern auf Amrum... Wichtig wäre, dann das bei Ausnahme ein kompletter V-Card-Eintrag mit Objektname, Öffnungszeiten usw. zulässig ist. ''Ich denke damit hätten wir eine möglichst flexible pragmatische Regelung für möglichst alle strittigen Objektbereiche (auch für pot. neue Fälle in der Zukunft)'' --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 07:54, 4. Nov. 2025 (CET)
::Sofern der Punkt bei den Inseln als Alleinstellungsmerkmal grundlegend dargestellt wird. Ansonsten haben wir das Problem, dass jeder Autor ein Ketten/Franchise-Etablissement in seinem bearbeitenden Ort als überaus wichtig ansieht. Wenn deiner Meinung nach nur die Meinung des Autoren zählt (wenn ich dich richtig verstanden habe), dann ist die ganze Abstimmung hier total sinnfrei. Denn jedem fällt irgendeinen Stuss ein, warum Dieses oder Jenes wichtig zu erwähnen ist, wohingegen jedem genau das Gegenteilige einfallen könnte, was dagegen spricht. Am Ende haben wir wieder nur eine Diskutiererei, wie eh und je und nix, aber auch gar nix gewonnen.
::Wie bereits bei ''wohin damit'' gesagt, isses mir mittlerweile wurscht, was am Ende für eine Regelung bei Supermärkten/Apotheken/Fressbuden/etc. aufgestellt wird. Ich beuge mich der Mehrheit und ändere entsprechend meine bereits bearbeiteten Artikel anschließend nach und nach um. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 08:37, 4. Nov. 2025 (CET)
:::Die Argumente überzeugen! Fussis Vorschlag ist pragmatisch und auch praktikabel. Einzig beim Punkt ''"Dieses Merkmal ist auf der Diskussionsseite unter „Objekte mit Alleinstellungsmerknmal“ zu dokumentieren"'' befürchte ich Diskussionen. Könnte man dort ggf. eine Checkliste hinterlegen? Dann würde die Formulierung von Ausnahmen einfacher und eindeutiger. [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:11, 4. Nov. 2025 (CET)
::::Ich habe oben bewusst "beispielsweise" bei den Merkmalen geschrieben. Daher denke ich, eine Checkliste macht (noch) keinen Sinn. Eine Liste vorgeben würde ich erst, wenn es zu vielen ausufernden Kloppereien kommt. Weil die Erstellung dieser Liste lässt uns wieder genauso ewig diskutieren. Aber das glaube ich einfach noch nicht. Man sollte das erstmal abwarten. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:16, 4. Nov. 2025 (CET)
:::Das ist doch jetzt aber auch wieder so ein konstruiertes Szenario. Sowas lässt sich immer finden wenn man gegen etwas sein will. Wie auch woanders angemerkt, ist nicht ein alleiniger Autor jetzt "Bestimmer". Dann muss halt die Community den konkreten Fall diskutieren. Und ja, wenn ein Troll hier MacDonalds einfügt und Gründe bloß erfindet, gehört es trotzdem gelöscht. Meine Intention ist, dass bei einer konkreten Löschung nicht wie jetzt elende lange ergebnisfreie Regeldiskussionen geführt werden (wie bisher), sondern dass man sich auf den konkreten Fall konzentriert.
:::Um Missverständnissen vorzubeugen können wir gerne reinschreiben, aber für mich war das klar. ''Im Zweifelsfall entscheidet die Community über die Zulässigkeit des Alleinstellungsmerkmals''. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:13, 4. Nov. 2025 (CET)
:::Eine andere Idee habe ich nicht, dann bin auch ich raus... -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:18, 4. Nov. 2025 (CET)
::::@DerFussi: Pardon, ich hatte vergessen ein At-Zeichen zu setzen. Meine Überlegungen gingen an Dirk, nicht an dich. Aber ich glaube, auch ihn hatte ich falsch verstanden. Meine Gedanken mögen vielleicht konstruiert wirken, ich tendiere aber gern dazu alle Eventualitäten mit einzubeziehen, um zukünftige Probleme zu vermeiden.
::::Meine Meinung sollte aber in diesem speziellen Fall weniger gewichtet werden als die der anderen, da ich bereits schrieb, dass ich mich der Mehrheit beuge. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 22:36, 4. Nov. 2025 (CET)
:::::Ich wüsste auch nicht, wie man die Praktikabilität eines solchen Ansatzes abschätzen könnte, als es einfach mal zu testen. Wenn es doch wieder elende Diskussionen und Stress gibt... dann ratlos. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 04:44, 5. Nov. 2025 (CET)
::::::Frage nach weiteren 14 Tagen: Was machen wir nun? Mein Vorschlag: Fussis Alternativvorschlag annehmen und umsetzen! [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 12:09, 19. Nov. 2025 (CET)
:::::::{{pro}} - Stimme zu; auch damit das Thema beendet ist. Anfang dieser Woche hat wieder ein Benutzer Imbisse eingepflegt. Ein Ergebnis für die Themen Fast-Food/Imbissbuden, Supermärkte und Apotheken, ob Ja oder Nein, ist nach vielen Monaten längst überfällig. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 10:02, 21. Nov. 2025 (CET)
=== zwei Abstimmung_Lebensmittelmärkte ===
Hier die 2. formale Abstimmung "Lebenmittelmärkte und weitere POI", Textvorschlag von "DerFussi" oben. Die 1. Abstimmung ging mit einem "Patt" aus. Daher hier dieser Alternativvorschlag.
xxxxxxxxxxx
'''Alternativvorschlag zur Abstimmung:'''
* verbotene Objekte bleiben pauschal erstmal verboten, also Supermärkte, Friseure, Tankstellen und was in weiteren Diskussionen noch dazukommt (Imbissbuden, Apotheken, Fast-Food, Kantinen, Kioske)
* In die Einleitung von [[Wikivoyage:Wohin damit]] kommt, eine Klausel. ''Auf dieser Seite als nicht erwünscht eingestufte Objekte können ausnahmsweise in Artikeln gelistet werden, wenn sie ein Alleinstellungsmerkmal besitzen. Als ein solches Merkmal kann beispielsweise folgendes gelten:''
** ''Überregionale Bekanntheit''
** ''Einzig vorhandenes Objekt in weitem Umkreis. Das kann je nach Weltregion ein unterschiedlicher Radius sein und sollte im entsprechenden Kontext abgewogen werden.''
** ''Wenn in einer Einrichtung neben der Landessprache auch Deutsch oder Englisch gesprochen wird, und beide Sprachen keine Amtssprache in dem Land sind.''
** ''Touristisch interessante zusätzliche Eigenschaft, die über die normale Bestimmung des Objektes hinausgeht (z.{{nnbsp}}B. wenn Imbissbude auch ein Planespotting-Hotspot ist.''
''Dieses Merkmal ist auf der Diskussionsseite (welcher?) unter „Objekte mit Alleinstellungsmerkmal“ zu dokumentieren. Dieser Abschnitt sollte nicht archiviert werden. Von der Ausnahme ausgeschlossen sind [[Wikivoyage:Unerwünschte Inhalte|Unerwünschte Inhalte]]. Ist es nicht angegeben, können entsprechende Einträge gelöscht werden.''
xxxxxxxxxxxxxxxx
*Dieser Vorschlag von "Der Fussi" steht damit hier zur Abstimmung.
*Es kann mit '''"Ja"'''{{Pro}}, '''"Nein"''' {{contra}} und '''"Enthaltung"''' {{neutral}} abgestimmt werden.
*Die Abstimmung endet So 14. Dezember, 23:59 Uhr mitteleuropäischer Zeit (MEZ=.
* {{Pro}} --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 01:14, 6. Dez. 2025 (CET)
* Unsere [[Wikivoyage:Regeln zur Entscheidungsfindung|Regeln zur Entscheidungsfindung]] sind war etwas komplizierter, aber darüber würde ich hinwegsehen, wenn wir damit vorwärtskommen, solange sich keiner beschwert. Alles gut. {{Pro}} -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 12:27, 6. Dez. 2025 (CET)
* {{Pro}} Pragmatischer Vorschlag, der allen einen Spielraum bietet. --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:07, 6. Dez. 2025 (CET)
* {{Pro}} - Nur eine kleine Verständnisfrage: Gilt die Regelung ab dem 14. Dezember dann einschließlich der in Klammern gesetzten Objekte? Nur damit ich weiß, ob ich diese ggf. in meinen bearbeiteten Artikel entfernen muss, wenn die Abstimmung "erfolgreich" war. --[[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 20:56, 7. Dez. 2025 (CET)
* {{neutral}} wenn man’s denn regeln muß. Wie wär’s mit Kurzfassung des Verordnungstextes (und das für alle): “be flexible” im Sinne von „Hirn einschalten“ bei der Auswahl? --[[Benutzer:Qualitätssicherung|Qualitätssicherung]] ([[Benutzer Diskussion:Qualitätssicherung|Diskussion]]) 01:14, 8. Dez. 2025 (CET)
*:@[[Benutzer:Qualitätssicherung|Qualitätssicherung]] Hirn einschalten funktioniert nicht. Sowas führt nur zu Endlosdiskussionen ohne Endergebnis, wie es seit Jahren auf WV gepflegt wird. Jeder fühlt sich da im Recht. Egal ob Pro oder Contra. [[Spezial:Beiträge/~2025-33216-75|~2025-33216-75]] ([[Benutzer Diskussion:~2025-33216-75|Diskussion]]) 11:38, 8. Dez. 2025 (CET)
*:Genau. "Hirn einschalten" funktioniert generell nicht, nicht nur auf WV. Dann gäbe es weniger Gerichtsverfahren, weniger Verschwörungstheorien, weniger Gewalt usw. usw. Vielleicht funktionieren ja auch einige/viele Hirne nur anders als andere. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 06:42, 22. Dez. 2025 (CET)
*: "Hirn einschalten" funktioniert auch nicht bei Hinrnlosen!--[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 13:22, 22. Dez. 2025 (CET)
==== Ergebnis der Abstimmung ====
Es haben 5 Benutzer ihre Stimme abgegeben. Dabei entfielen auf
* {{Pro}}: 4 Stimmen
* {{neutral}}: 1 Stimme
* {{contra}}: 0 Stimmen
Damit ist der Alternativorschlag angenommen und wird in [[Wikivoyage:Wohin damit]] sinngemäß eingefügt.--[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:44, 17. Jan. 2026 (CET)
:Ergänzung und Bitte an alle Benutzer:<br />
:: Zitat: ''Und bitte nicht fragen, wer jetzt nachträglich die ganzen Begründungen nachtragen soll. Wir sind alle entspannt und keiner, der die Regeln kennt, wird einen Lösch-Feldzug starten, wenn ein Eintrag augenscheinlich erstmal Sinn macht. Ansonsten rückfragen bzw. löschen und auf die Beschwerde warten und drüber reden. Dann aber über das konkrete Objekt selbst reden und keine Regeldiskussion führen. -- DerFussi 05:47, 4. Nov. 2025 (CET)''
:Danke! [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 11:06, 17. Jan. 2026 (CET)
== Offizielle Bestätigung meines Rücktrittes ==
Liebe Wikivoyager, gestern wurde meine Rücktrittsanfrage bzgl. der Administration bei Wikivoyage genehmigt und durchgeführt, daher werden ab sofort '''keine''' weiteren administrative Tätigkeiten/Hilfestellungen von meiner Seite aus möglich sein. Ich wollte es etwas offizieller und übersichtlicher gestalten als es wieder "unübersichtlich" im ANR der [[Wikivoyage:Nominierungen zum Administrator|Adminnominierung]] zu posten. Ich hoffe, dass das genehm ist. Weitere Informationen zur Rücktrittsbestätigung erhaltet ihr via Wikimedia [https://meta.wikimedia.org/wiki/Steward_requests/Permissions#Removal_of_access hier]. Vielen Dank für euer Verständnis. Beste Grüße aus dem sonnigen Südwesten. -- [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 17:48, 12. Mär. 2026 (CET)
:Alles klar. Schade. Für mich sind ja Admin-Tätigkeit und sich mit (sorry) so einem Scheiß rumschlagen getrennte Dinge. Inhaltliche Angelegenheiten sind ja kein Admin-Job. Für mich ist es ein herber Verlust. Hoffe, du bleibst uns als Autor erhalten. {{S|:'(}} -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 15:56, 13. Mär. 2026 (CET)
:: Es ist schade. Aber es ist deine Entscheidung. Trotzdem noch viel Freude bei der Arbeit in Wikivoyage. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:03, 14. Mär. 2026 (CET)
== Geändertes Aussehen des vCard-Editors ==
Mit Blick in die Zukunft habe ich das Aussehen vCard-Editors geändert. Das Ganze habe ich auf vier Seiten verteilt, womit auch eine größere Schrift möglich ist. Was die Zukunft anbetrifft, müssen wir eine Umstellung der Bibliotheken für die Dialoggestaltung vornehmen. Und dann ist man man das Aussehen schon gewohnt. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:03, 14. Mär. 2026 (CET)
: Und noch eine Neuerung: Man kann die Sonderzeichen (neben der Beschreibung) nun für alle Eingabezeilen verwenden. Einfach den Cursor in die entsprechende Zeile setzen und das gewünschte Zeichen drücken. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:05, 14. Mär. 2026 (CET)
::Danke, gefällt mir sehr gut {{S|applaus}}. Die Darstellung ist jetzt übersichtlicher als vorher. Auch die Verwendung der Sonderzeichen (insbes. geschützte Leerzeichen) in allen Eingabezeilen erleichtert die Arbeit. Hoffentlich werden diese zukünftig intensiver genutzt {{S|;)}}. [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:36, 14. Mär. 2026 (CET)
== 25 Jahre Wikipedia … und noch einen Grund mehr zum Feiern ==
Die Wikipedia begeht heute den [[w:Wikipedia:25 Jahre Wikipedia|25. Geburtstag]] der deutschsprachigen Wikipedia. Herzlichen Glückwunsch und weitere erfolgreiche Jahre.
Aber dies ist nicht der einzige Geburtstag in diesem Jahr. Am 10. Dezember 2026 feiert Wikivoyage sein 20jähriges Bestehen. Wir sollten dies auch gebührend feiern. Ich denke, dass es wenigstens ein persönliches Treffen geben sollte. Wenn jemand eine besondere Idee hat, so möge er sie hier mitteilen. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 16:59, 16. Mär. 2026 (CET)
* Gute Idee mit dem persönlichen Treffen! Da bin ich gerne dabei --[[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 17:26, 16. Mär. 2026 (CET)
* Den Glückwünschen an die deutsche Wikipedia möchte ich mich gern anschließen.
: Das Bestehen der Wikivoyage sollten wir tatsächlich feiern, auch wenn die Zahl der Aktiven relativ gering ist. Hier ein paar -unsortierte- Gedanken:
:* Der Zeitpunkt Dezember ist m.{{nnbsp}}E. relativ ungeeignet. Außenaktivitäten sind eingeschränkt, Lokalitäten wegen der Vorweihnachtszeit häufig ausgebucht, private Terminkalender oft voll. Besser wäre evtl. Herbst (Sep) 2026 oder Frühjahr 2027 (ist mir pers. zu weit weg)
:* Ort möglichst für alle gut erreichbar per Bahn oder Kfz. Für deutsche Teilnahmer ggf. [[Kassel]], wenn wir auch Österreicher und Schweizer einbeziehen wollen ggf. [[Würzburg]]? Oder: Ort eines noch zu wählenden ZdM?
:* Vorschlag Zeitpunkt und Ort: [[Regensburg]], WikiCon 2026 (Freitag, 18. bis Sonntag, d. 20. September 2026)
: Ich freue mich auf ein Treffen! --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 17:46, 16. Mär. 2026 (CET)
::Ich mache mich am 27.09. wieder auf in meine zweit Heimat und kehre erst 2027 zurück. Ort wäre mir egal. <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 19:42, 16. Mär. 2026 (CET)
* Regensburg? Sehr gut. Würzburg? Grandios, komme ich mit dem Fahrrad. --[[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 20:48, 16. Mär. 2026 (CET)
== Wohin damit − offene Diskussionen ==
Auf der Diskussionsseite von [[Wikivoyage Diskussion:Wohin damit|Wohin damit]] "schlummern" 2 Diskussionen, die vermutlich von den meisten unbemerkt verlaufen sind und daher mangels Teilnahme nicht abgeschlossen werden konnten, bzw. es gibt kein eindeutiges Ergebnis das in die Schlagwortliste einfließen könnte. Bitte seht euch doch mal die Diskussionen [[Wikivoyage Diskussion:Wohin damit#Kurtaxe (neu 2026)|'''Kurtaxe (neu 2026)''']] und [[Wikivoyage Diskussion:Wohin damit#Ärzte|'''Ärzte''']] an und beteiligt euch an der Diskussion. Bis Ende März d.{{nnbsp}}J. sollten wir eine Einigung gefunden haben. Danke im Voraus! --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 16:22, 19. Mär. 2026 (CET)
== Social-Media in der Quickbar-Ort ==
In der Quickbar von Ortsartikeln werden u.{{nnbsp}}a. auch anklickbare Social-Media-Symbole eingeblendet, allerdings ausschließlich wenn sie in Wikidata vorhanden sind. Zu den Symbolen gehört auch das „Hashtag“-Symbol. Der Klick darauf führt zu einer Linkliste. Allerdings führen wohl 90{{nnbsp}}% der Links ins Leere. Daher stellen sich die Fragen: Soll das „Hashtag“-Symbol weiterhin dort erscheinen? Wollen wir diesen zweifelhaften „Service“ unseren Lesern zumuten? Werden Hashtags heute überhaupt noch genutzt? Mein Vorschlag: Das „Hashtag“-Symbol sollte raus! Danke für Eure Meinung. --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 16:57, 19. Mär. 2026 (CET)
Beispiel: [[Kühlungsborn]]
:Die Hashtag-Nutzung ist, wie ich bereits sagte, eine Altersgruppenfrage. Durch Tikschrott wird das aber obsolet und der Klammeraffe (@) wird beliebter. -- [[Spezial:Beiträge/~2026-58111-0|~2026-58111-0]] ([[Benutzer Diskussion:~2026-58111-0|Diskussion]]) 17:18, 19. Mär. 2026 (CET)
::Mir ist das „Hashtag“-Symbol noch nie aufgefallen. Es scheint auch nicht sehr weit verbreitet zu sein. Ich brauche es nicht, aber als „Dinosaurier“ ist es wohl besser, wenn junge Mit-Autoren darüber entscheiden. [[Benutzer:DocWoKav|DocWoKav]] ([[Benutzer Diskussion:DocWoKav|Diskussion]]) 18:35, 19. Mär. 2026 (CET)
== Wikipedia-Kartenwerkstatt ist Geschichte ==
Wie die Headline bereits verrät, ist die [[w:Kartenwerkstatt|Kartenwerkstatt]] bei Wikipedia seit heute, den 28. März 2026 Geschichte. Den Grund kann man [[W:Wikipedia Diskussion:Kartenwerkstatt|hier]] entnehmen. Wikivoyager sind damit in Zukunft gezwungen ihre Anfragen in anderssprachigen Pendants zu stellen oder ihre gewünschten Karten in Eigenregie zu erstellen. -- [[Spezial:Beiträge/~2026-19309-80|~2026-19309-80]] ([[Benutzer Diskussion:~2026-19309-80|Diskussion]]) 20:28, 28. Mär. 2026 (CET)
:Es gibt ja noch die [[c:Commons:Graphic Lab/Map workshop|Kartenwerkstatt auf Commons]]. Dort hätte ich bisher meine Anfragen gestellt, da dort eine internationale Community tätig ist, und die Chance größer ist, für ein bestimmtes Land etwas zu bekommen. Ich glaube aber nicht, dass das für uns so prekäre Auswirkungen haben wird. Unsere statischen Karten beschränken sich auf Quickbar-Positionskarten und ein paar thematische Übersichtskarten. Wir nutzen ja mehr die dynamischen Karten der Kartographer-Erweiterung sowie Karten im Data-Namensraum auf Commons. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 22:43, 28. Mär. 2026 (CET)
::Das mag sein. In der Wunschliste der Kartenwerkstatt wurde allerdings unter anderem ein Kartenwunsch explizit für Wikivoyage von @[[Benutzer:Eduard47|Eduard47]] geäußert, die nun unerstellt archiviert wurde. Daher erschien mir eine Info für alle Beteiligten hier wichtig. -- [[Spezial:Beiträge/~2026-19593-67|~2026-19593-67]] ([[Benutzer Diskussion:~2026-19593-67|Diskussion]]) 05:23, 30. Mär. 2026 (CEST)
:::Ist ja völlig richtig. Habe ich oben das Danke vergessen? Mist. Sorry dafür. Hiermit nachgeholt. Es stimmt, ich habe gelegentlich auf die Kartenwerkstätten verwiesen, da wir selbst gar keine Manpower für sowas haben. Ob wir jemals eine bekommen haben? Bisher nichts gehört. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 07:46, 30. Mär. 2026 (CEST)
::: {{Ping|~2026-19593-67}} Für Dich zur Info: Wenn Du im [[w:Wikipedia:Kartenwerkstatt/Archiv/2025-12#Kartenwunsch: Lagekarte Harz|Archiv]] nachliest, dann wirst Du bemerken, dass die gewünschte Karte im Dezember 2025 erstellt wurde, und ich mich am 11. Dez. 2025 beim Ersteller [[Benutzer:NordNordWest|NNW]] bedankt habe! Die Karte findest Du seitdem in der Quickbar des Wikivoyage-Artikels [[Harz]]! Wenn recherchieren dann bitte richtig, sagt --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:27, 30. Mär. 2026 (CEST)
::::Geht's auch etwas freundlicher? -- [[Spezial:Beiträge/~2026-58111-0|~2026-58111-0]] ([[Benutzer Diskussion:~2026-58111-0|Diskussion]]) 14:39, 30. Mär. 2026 (CEST)
== Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) ==
Hello everyone,
This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>).
'''The Change:'''<br />
Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]].
We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''.
'''What You Need To Do:'''<br />
To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search.
'''Deadline:'''<br />
We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles.
Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[Benutzer:MediaWiki message delivery|MediaWiki message delivery]] ([[Benutzer Diskussion:MediaWiki message delivery|Diskussion]]) 19:11, 3. Apr. 2026 (CEST)
: {{Ping|ZI Jony}} It seems that [[:d:Property:P1846|P1846]] is [[:Kategorie:Wartung:Seiten,_die_Daten_von_Wikidata_benutzen|not used]] at the German Wikivoyage. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 06:59, 4. Apr. 2026 (CEST)
::@[[Benutzer:RolandUnger|RolandUnger]] thanks for your confirmation. [[Benutzer:ZI Jony|ZI Jony]] ([[Benutzer Diskussion:ZI Jony|Diskussion]]) 09:56, 4. Apr. 2026 (CEST)
== Hinweis auf laufende Diskussionen ==
Zu jedem Artikel gibt es eine Diskussionsseite. Insbesondere Diskussionen, bei denen eine größere Anzahl von Teilnehmern wünschenswert wäre, verlaufen diese leider immer wieder mangels Teilnahme ohne Ergebnis. Dieses liegt vermutlich auch daran, dass diese Diskussionen von vielen unbemerkt verlaufen. Nicht jeder hat die entsprechende Seite auf seiner Beobachtungsliste und der Blick in die [[Spezial:Letzte_Änderungen|Letzten Änderungen]] unterbleibt ebenfalls. Die [[Wikivoyage:Lounge|Lounge]] dagegen findet wesentlich stärkere Beachtung. Nicht jede Diskussion gehört in die Lounge, sondern eher auf die dem Thema zugehörige Diskussionsseite. Um dennoch eine größere Teilnehmerzahl zu erreichen schlage ich vor, in der Lounge als ersten Abschnitt (der sollte auch nicht archiviert werden) eine Auflistung aktueller Diskussionen einzurichten. In diesem Abschnitt sollten max. 10{{nnbsp}}Einträge mit wenigen Worten und einem Link auf eine aktuelle Diskussion hingewiesen werden. Nach etwa einem Monat kann der Hinweis gelöscht werden. Der Verfasser der Diskussion trägt den Hinweis ein und löscht ihn dann später auch wieder. Ein zusätzlicher Verwaltungsaufwand wird dadurch vermieden. Was hält die Community davon? --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:54, 16. Apr. 2026 (CEST)
bo4wbz356jgimb9f9wex8b1nqiftd44
1769111
1769013
2026-04-16T21:32:51Z
Scholless
15050
/* Hinweis auf laufende Diskussionen */ Antwort
1769111
wikitext
text/x-wiki
__NEWSECTIONLINK__ <!-- damit erzeugen wir einen "+"-Tab oben, das ermöglicht ein einfaches Hinzufügen eines neuen Diskussionsthemas
-->{{IstIn|Organisation}} __FORCETOC__
[[File:City Space Bar & Lounge.JPG|mini|City Space Bar & Lounge im Swissôtel Krasnye Holmy Moskau]]
Die '''Lounge''' bietet die Möglichkeit für allgemeine Diskussionen an zentraler Stelle.
Neben den Lounges der Sprachversionen von Wikivoyage gibt es die englischsprachige [[:mail:wikivoyage-l|Mailingliste Wikivoyage-l]] und die Seite '''[[meta:Wikivoyage/Lounge|Wikivoyage Lounge]] auf Meta''' für Diskussionen über alle Sprachversionen und die Beziehung zu anderen Wikimedia-Projekten.
Alte Beiträge (in der Regel Threads, die älter als 14 Tage sind) befinden sich im '''[[Wikivoyage:Lounge/Archiv|Archiv]]'''. — '''[{{FULLURL:Wikivoyage:Lounge|action=edit§ion=new}} Neue Beiträge bitte unten anfügen]'''.
<!--hier geht's los-->
==Zur Erinnerung [[#zwei_Abstimmung_Lebensmittelmärkte]] ==
Ich hoffe das Thema ist dann am 14.12 konstruktiv mit Vorschlag von der Fussi erledigt.
Abstimmung bis 14.12 ist hier: [[#zwei_Abstimmung_Lebensmittelmärkte]] --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 10:42, 6. Dez. 2025 (CET)
=== Abstimmung Lebensmittelmärkte ===
Folgender Textabschnitt unten soll '''neu zum Thema [[Wikivoyage:Wohin_damit#L|"L" Lebensmittelgeschäft]]''' und bei '''[[Wikivoyage:Wohin_damit#D|"D" Drogerie, Drogeriemarkt]]''' aufgenommen werden. Der neue Text ersetzt jeweils die bisherigen Textabschnitte.
Der neue Textabschnitt:
"Hinweise zu Versorgungseinrichtungen mit Lebensmitteln und Drogerieartikeln nur in kleinen Orten (Abschnitt Einkaufen), ohne Nennung der Firmennamen (Handelsketten) und nur mit Marker ohne weitere Details, d. h. auch ohne Adresse und ohne Öffnungszeiten. Die nächste größere Einkaufsmöglichkeit befindet sich in XYZ."
Bitte mit Wort "Ja", "Nein" oder "Enthaltung" abstimmen. Die Abstimmung endet am Mittwoch 15. Oktober 2025 um 23:59 Uhr Mitteleuropäische Zeit.
'''Abstimmung:'''
* '''Ja''' --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 15:47, 8. Okt. 2025 (CEST)
:'''Ja''' -- [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 16:22, 8. Okt. 2025 (CEST)
* '''Nein''' das ist eine Wischi-Waschi-Formulierung. Ein Eintrag ohne Name Adresse ist sinnlos für Leser. --[[Benutzer:Qualitätssicherung|Qualitätssicherung]] ([[Benutzer Diskussion:Qualitätssicherung|Diskussion]]) 23:14, 8. Okt. 2025 (CEST)
:: Nachtrag: als ich vor ein paar Jahren in Australien war, waren die wenigen ALDI-Süd (''sic'') dort eine Erlösung im Vergleich zu den australischen Ketten, mit mieser Qualität und horrenden Preisen. Sind dort für Reisende wichtig um nicht zu sagen lebenwichtig. ;-)
* '''Nein''' -- Dies ist eher sinnlos. Wenn es schon kaum was gibt, hilft dies auch bloß nicht. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 07:30, 9. Okt. 2025 (CEST)
*:* Ja --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 20:27, 13. Okt. 2025 (CEST)
* Eher '''Nein''' aus zwei Gründen. '''1.''' Dann könnte man auch einfach einen Marker direkt im Mapframe angeben, wie ich es in [[Singapur/Southern Islands]] bei den Toiletten, Aussichtspunkten und Stränden gemacht habe - keines dieser Objekte steht im Text. Das Symbol wäre dann {{Code|grocery}}. Das ist ja bisher gar nicht geregelt und bisher alles erlaubt. Weil ist nix anderes als dort oben steht. Und etwas Namenloses im Text macht keinen Sinn. Wäre vielleicht generell eine gute Alternative. '''2.''' Wäre eine allgemeine Augenmaß-Formulierung nicht flexibler? Ist bestimmt nur eine Frage der Zeit, dass wir über ein anderes Verbot mit einen "Aber" reden.
:PS1: ließe sich auch gut auf die oft diskutiereten Apotheken anwenden, die jetzt noch generell zugelassen sind.
:PS2: Auf [[Wikivoyage:Wohin_damit|Wohin_damit]] gibt es auch "K wie [[Wikivoyage:Wohin_damit#K|Kiosk]]" -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 05:32, 14. Okt. 2025 (CEST)
=== 2. Abstimmung Lebensmittelmärkte ===
Ich hätte einen Alternativvorschlag.
* verbotene Objekte bleiben pauschal erstmal verboten, also Supermärkte, Friseure, Tankstellen und was in weiteren Diskussionen noch dazukommt (Imbissbuden, Apotheken, Fast-Food, Kantinen, Kioske)
* In die Einleitung von [[Wikivoyage:Wohin damit]] kommt, eine Klausel. ''Auf dieser Seite als nicht erwünscht eingestufte Objekte können ausnahmsweise in Artikeln gelistet werden, wenn sie ein Alleinstellungsmerkmal besitzen. Als ein solches Merkmal kann beispielsweise folgendes gelten:''
** ''Überregionale Bekanntheit''
** ''Einzig vorhandenes Objekt in weitem Umkreis. Das kann je nach Weltregion ein unterschiedlicher Radius sein und sollte im entsprechenden Kontext abgewogen werden.''
** ''Wenn in einer Einrichtung neben der Landessprache auch Deutsch oder Englisch gesprochen wird, und beide Sprachen keine Amtssprache in dem Land sind.''
** ''Touristisch interessante zusätzliche Eigenschaft, die über die normale Bestimmung des Objektes hinausgeht (z.{{nnbsp}}B. wenn Imbissbude auch ein Planespotting-Hotspot ist.''
''Dieses Merkmal ist auf der Diskussionsseite unter „Objekte mit Alleinstellungsmerknmal“ zu dokumentieren. Dieser Abschnitt sollte nicht archiviert werden. Von der Ausnahme ausgeschlossen sind [[Wikivoyage:Unerwünschte Inhalte|Unerwünschte Inhalte]]. Ist es nicht angegeben, können entsprechende Einträge gelöscht werden.''
{{Ping|Dirk Schmidt|RaveDog|Qualitätssicherung|RolandUnger|Eduard47}} Wäre das eine Idee? Und bitte nicht fragen, wer jetzt nachträglich die ganzen Begründungen nachtragen soll. Wir sind alle entspannt und keiner, der die Regeln kennt, wird einen Lösch-Feldzug starten, wenn ein Eintrag augenscheinlich erstmal Sinn macht. Ansonsten rückfragen bzw. löschen und auf die Beschwerde warten und drüber reden. Dann aber über das konkrete Objekt selbst reden und keine Regeldiskussion führen. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 05:47, 4. Nov. 2025 (CET)
:Ich geb mal spät noch meinen Senf dazu, auch als jemand der bereits von Ravedogs Löschungen betroffen war: Würde Imbisse stehen lassen, wir sollten nicht nur die 3-Gänge-Küche abdecken. McDoof etc in Ausnahmen (einziger in weiter Umgebung, Touristischer Ort, etc.) ansonsten nein würde ich ebenfalls mitgehen.
:Wir sind kein Telefonbuch, aber etwas Augenmaß ist immer gut.
:Mfg [[Benutzer:Deutschereditor|Deutschereditor]] ([[Benutzer Diskussion:Deutschereditor|Diskussion]]) 21:46, 17. Nov. 2025 (CET)
PS: Künftige Diskussionen könnten sich einfacher gestalten, da man nur noch entscheiden muss, ob eine Objektart unter die Regel "Verbot + Ausnahme" fallen soll. So könnte es obsolet werden in ellenlangen Diskussionen Szenarien zu entwerfen, wo man ein verbotenes Objekt doch brauchen könnte, wenn man sich einig ist, dass es im Regelfall nicht nach Wikivoyage gehört. Wenn man keine Ausnahme duldet, kommt es zusätzlich auf die Liste der [[Wikivoyage:Unerwünschte Inhalte|unerwünschten Inhalte]]. Ansonsten kann man alles, was nur auf [[Wikivoyage:Wohin damit|Wohin damit]] unerwünscht ist, im Ausnahmefall angeben. Und wenn nun einer den Friseurladen eines Star-Friseurs listen will.. Ok, von mir aus. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 06:53, 4. Nov. 2025 (CET)
:''Ja, prinzipiell ist das gute Idee!'' Mein Vorschlag der 1. Abstimmung war da eh nicht umfassend genug (Kioske, Tankstellen ja nicht dabei usw.). Also die Idee das so zu klären ist sinnvoll. Das bei potentiellen "Massenobjekten" grundlegend auszusortieren, aber in berechtigten Ausnahmen zuzulassen dann genau pragmatisch sinnvoll: Denn das lässt genau die pragmatischen Einzelfallentscheidungen die im sinne des Reisenden als Selbstversorger sinnvoll sind. Und die genaue Definition einer Ausnahme sollte man den Autoren überlassen, bzw. das jeweils bei Bedarf vor Ort am Artikel dann klären (Wenn z. B. ein Kioskfan anfängt Kioskliste irgendwo anzulegen...) Bei Lebensmittelmärkten wären solche Ausnahmen dann z. B. kleine Ferienorte und die Minimärklte - siehe der eine Lebensmittelmarkt in Oberhof oder in Spiekeroog, die drei Minimärkte auf den drei Dörfern auf Amrum... Wichtig wäre, dann das bei Ausnahme ein kompletter V-Card-Eintrag mit Objektname, Öffnungszeiten usw. zulässig ist. ''Ich denke damit hätten wir eine möglichst flexible pragmatische Regelung für möglichst alle strittigen Objektbereiche (auch für pot. neue Fälle in der Zukunft)'' --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 07:54, 4. Nov. 2025 (CET)
::Sofern der Punkt bei den Inseln als Alleinstellungsmerkmal grundlegend dargestellt wird. Ansonsten haben wir das Problem, dass jeder Autor ein Ketten/Franchise-Etablissement in seinem bearbeitenden Ort als überaus wichtig ansieht. Wenn deiner Meinung nach nur die Meinung des Autoren zählt (wenn ich dich richtig verstanden habe), dann ist die ganze Abstimmung hier total sinnfrei. Denn jedem fällt irgendeinen Stuss ein, warum Dieses oder Jenes wichtig zu erwähnen ist, wohingegen jedem genau das Gegenteilige einfallen könnte, was dagegen spricht. Am Ende haben wir wieder nur eine Diskutiererei, wie eh und je und nix, aber auch gar nix gewonnen.
::Wie bereits bei ''wohin damit'' gesagt, isses mir mittlerweile wurscht, was am Ende für eine Regelung bei Supermärkten/Apotheken/Fressbuden/etc. aufgestellt wird. Ich beuge mich der Mehrheit und ändere entsprechend meine bereits bearbeiteten Artikel anschließend nach und nach um. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 08:37, 4. Nov. 2025 (CET)
:::Die Argumente überzeugen! Fussis Vorschlag ist pragmatisch und auch praktikabel. Einzig beim Punkt ''"Dieses Merkmal ist auf der Diskussionsseite unter „Objekte mit Alleinstellungsmerknmal“ zu dokumentieren"'' befürchte ich Diskussionen. Könnte man dort ggf. eine Checkliste hinterlegen? Dann würde die Formulierung von Ausnahmen einfacher und eindeutiger. [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:11, 4. Nov. 2025 (CET)
::::Ich habe oben bewusst "beispielsweise" bei den Merkmalen geschrieben. Daher denke ich, eine Checkliste macht (noch) keinen Sinn. Eine Liste vorgeben würde ich erst, wenn es zu vielen ausufernden Kloppereien kommt. Weil die Erstellung dieser Liste lässt uns wieder genauso ewig diskutieren. Aber das glaube ich einfach noch nicht. Man sollte das erstmal abwarten. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:16, 4. Nov. 2025 (CET)
:::Das ist doch jetzt aber auch wieder so ein konstruiertes Szenario. Sowas lässt sich immer finden wenn man gegen etwas sein will. Wie auch woanders angemerkt, ist nicht ein alleiniger Autor jetzt "Bestimmer". Dann muss halt die Community den konkreten Fall diskutieren. Und ja, wenn ein Troll hier MacDonalds einfügt und Gründe bloß erfindet, gehört es trotzdem gelöscht. Meine Intention ist, dass bei einer konkreten Löschung nicht wie jetzt elende lange ergebnisfreie Regeldiskussionen geführt werden (wie bisher), sondern dass man sich auf den konkreten Fall konzentriert.
:::Um Missverständnissen vorzubeugen können wir gerne reinschreiben, aber für mich war das klar. ''Im Zweifelsfall entscheidet die Community über die Zulässigkeit des Alleinstellungsmerkmals''. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:13, 4. Nov. 2025 (CET)
:::Eine andere Idee habe ich nicht, dann bin auch ich raus... -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:18, 4. Nov. 2025 (CET)
::::@DerFussi: Pardon, ich hatte vergessen ein At-Zeichen zu setzen. Meine Überlegungen gingen an Dirk, nicht an dich. Aber ich glaube, auch ihn hatte ich falsch verstanden. Meine Gedanken mögen vielleicht konstruiert wirken, ich tendiere aber gern dazu alle Eventualitäten mit einzubeziehen, um zukünftige Probleme zu vermeiden.
::::Meine Meinung sollte aber in diesem speziellen Fall weniger gewichtet werden als die der anderen, da ich bereits schrieb, dass ich mich der Mehrheit beuge. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 22:36, 4. Nov. 2025 (CET)
:::::Ich wüsste auch nicht, wie man die Praktikabilität eines solchen Ansatzes abschätzen könnte, als es einfach mal zu testen. Wenn es doch wieder elende Diskussionen und Stress gibt... dann ratlos. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 04:44, 5. Nov. 2025 (CET)
::::::Frage nach weiteren 14 Tagen: Was machen wir nun? Mein Vorschlag: Fussis Alternativvorschlag annehmen und umsetzen! [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 12:09, 19. Nov. 2025 (CET)
:::::::{{pro}} - Stimme zu; auch damit das Thema beendet ist. Anfang dieser Woche hat wieder ein Benutzer Imbisse eingepflegt. Ein Ergebnis für die Themen Fast-Food/Imbissbuden, Supermärkte und Apotheken, ob Ja oder Nein, ist nach vielen Monaten längst überfällig. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 10:02, 21. Nov. 2025 (CET)
=== zwei Abstimmung_Lebensmittelmärkte ===
Hier die 2. formale Abstimmung "Lebenmittelmärkte und weitere POI", Textvorschlag von "DerFussi" oben. Die 1. Abstimmung ging mit einem "Patt" aus. Daher hier dieser Alternativvorschlag.
xxxxxxxxxxx
'''Alternativvorschlag zur Abstimmung:'''
* verbotene Objekte bleiben pauschal erstmal verboten, also Supermärkte, Friseure, Tankstellen und was in weiteren Diskussionen noch dazukommt (Imbissbuden, Apotheken, Fast-Food, Kantinen, Kioske)
* In die Einleitung von [[Wikivoyage:Wohin damit]] kommt, eine Klausel. ''Auf dieser Seite als nicht erwünscht eingestufte Objekte können ausnahmsweise in Artikeln gelistet werden, wenn sie ein Alleinstellungsmerkmal besitzen. Als ein solches Merkmal kann beispielsweise folgendes gelten:''
** ''Überregionale Bekanntheit''
** ''Einzig vorhandenes Objekt in weitem Umkreis. Das kann je nach Weltregion ein unterschiedlicher Radius sein und sollte im entsprechenden Kontext abgewogen werden.''
** ''Wenn in einer Einrichtung neben der Landessprache auch Deutsch oder Englisch gesprochen wird, und beide Sprachen keine Amtssprache in dem Land sind.''
** ''Touristisch interessante zusätzliche Eigenschaft, die über die normale Bestimmung des Objektes hinausgeht (z.{{nnbsp}}B. wenn Imbissbude auch ein Planespotting-Hotspot ist.''
''Dieses Merkmal ist auf der Diskussionsseite (welcher?) unter „Objekte mit Alleinstellungsmerkmal“ zu dokumentieren. Dieser Abschnitt sollte nicht archiviert werden. Von der Ausnahme ausgeschlossen sind [[Wikivoyage:Unerwünschte Inhalte|Unerwünschte Inhalte]]. Ist es nicht angegeben, können entsprechende Einträge gelöscht werden.''
xxxxxxxxxxxxxxxx
*Dieser Vorschlag von "Der Fussi" steht damit hier zur Abstimmung.
*Es kann mit '''"Ja"'''{{Pro}}, '''"Nein"''' {{contra}} und '''"Enthaltung"''' {{neutral}} abgestimmt werden.
*Die Abstimmung endet So 14. Dezember, 23:59 Uhr mitteleuropäischer Zeit (MEZ=.
* {{Pro}} --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 01:14, 6. Dez. 2025 (CET)
* Unsere [[Wikivoyage:Regeln zur Entscheidungsfindung|Regeln zur Entscheidungsfindung]] sind war etwas komplizierter, aber darüber würde ich hinwegsehen, wenn wir damit vorwärtskommen, solange sich keiner beschwert. Alles gut. {{Pro}} -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 12:27, 6. Dez. 2025 (CET)
* {{Pro}} Pragmatischer Vorschlag, der allen einen Spielraum bietet. --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:07, 6. Dez. 2025 (CET)
* {{Pro}} - Nur eine kleine Verständnisfrage: Gilt die Regelung ab dem 14. Dezember dann einschließlich der in Klammern gesetzten Objekte? Nur damit ich weiß, ob ich diese ggf. in meinen bearbeiteten Artikel entfernen muss, wenn die Abstimmung "erfolgreich" war. --[[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 20:56, 7. Dez. 2025 (CET)
* {{neutral}} wenn man’s denn regeln muß. Wie wär’s mit Kurzfassung des Verordnungstextes (und das für alle): “be flexible” im Sinne von „Hirn einschalten“ bei der Auswahl? --[[Benutzer:Qualitätssicherung|Qualitätssicherung]] ([[Benutzer Diskussion:Qualitätssicherung|Diskussion]]) 01:14, 8. Dez. 2025 (CET)
*:@[[Benutzer:Qualitätssicherung|Qualitätssicherung]] Hirn einschalten funktioniert nicht. Sowas führt nur zu Endlosdiskussionen ohne Endergebnis, wie es seit Jahren auf WV gepflegt wird. Jeder fühlt sich da im Recht. Egal ob Pro oder Contra. [[Spezial:Beiträge/~2025-33216-75|~2025-33216-75]] ([[Benutzer Diskussion:~2025-33216-75|Diskussion]]) 11:38, 8. Dez. 2025 (CET)
*:Genau. "Hirn einschalten" funktioniert generell nicht, nicht nur auf WV. Dann gäbe es weniger Gerichtsverfahren, weniger Verschwörungstheorien, weniger Gewalt usw. usw. Vielleicht funktionieren ja auch einige/viele Hirne nur anders als andere. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 06:42, 22. Dez. 2025 (CET)
*: "Hirn einschalten" funktioniert auch nicht bei Hinrnlosen!--[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 13:22, 22. Dez. 2025 (CET)
==== Ergebnis der Abstimmung ====
Es haben 5 Benutzer ihre Stimme abgegeben. Dabei entfielen auf
* {{Pro}}: 4 Stimmen
* {{neutral}}: 1 Stimme
* {{contra}}: 0 Stimmen
Damit ist der Alternativorschlag angenommen und wird in [[Wikivoyage:Wohin damit]] sinngemäß eingefügt.--[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:44, 17. Jan. 2026 (CET)
:Ergänzung und Bitte an alle Benutzer:<br />
:: Zitat: ''Und bitte nicht fragen, wer jetzt nachträglich die ganzen Begründungen nachtragen soll. Wir sind alle entspannt und keiner, der die Regeln kennt, wird einen Lösch-Feldzug starten, wenn ein Eintrag augenscheinlich erstmal Sinn macht. Ansonsten rückfragen bzw. löschen und auf die Beschwerde warten und drüber reden. Dann aber über das konkrete Objekt selbst reden und keine Regeldiskussion führen. -- DerFussi 05:47, 4. Nov. 2025 (CET)''
:Danke! [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 11:06, 17. Jan. 2026 (CET)
== Offizielle Bestätigung meines Rücktrittes ==
Liebe Wikivoyager, gestern wurde meine Rücktrittsanfrage bzgl. der Administration bei Wikivoyage genehmigt und durchgeführt, daher werden ab sofort '''keine''' weiteren administrative Tätigkeiten/Hilfestellungen von meiner Seite aus möglich sein. Ich wollte es etwas offizieller und übersichtlicher gestalten als es wieder "unübersichtlich" im ANR der [[Wikivoyage:Nominierungen zum Administrator|Adminnominierung]] zu posten. Ich hoffe, dass das genehm ist. Weitere Informationen zur Rücktrittsbestätigung erhaltet ihr via Wikimedia [https://meta.wikimedia.org/wiki/Steward_requests/Permissions#Removal_of_access hier]. Vielen Dank für euer Verständnis. Beste Grüße aus dem sonnigen Südwesten. -- [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 17:48, 12. Mär. 2026 (CET)
:Alles klar. Schade. Für mich sind ja Admin-Tätigkeit und sich mit (sorry) so einem Scheiß rumschlagen getrennte Dinge. Inhaltliche Angelegenheiten sind ja kein Admin-Job. Für mich ist es ein herber Verlust. Hoffe, du bleibst uns als Autor erhalten. {{S|:'(}} -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 15:56, 13. Mär. 2026 (CET)
:: Es ist schade. Aber es ist deine Entscheidung. Trotzdem noch viel Freude bei der Arbeit in Wikivoyage. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:03, 14. Mär. 2026 (CET)
== Geändertes Aussehen des vCard-Editors ==
Mit Blick in die Zukunft habe ich das Aussehen vCard-Editors geändert. Das Ganze habe ich auf vier Seiten verteilt, womit auch eine größere Schrift möglich ist. Was die Zukunft anbetrifft, müssen wir eine Umstellung der Bibliotheken für die Dialoggestaltung vornehmen. Und dann ist man man das Aussehen schon gewohnt. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:03, 14. Mär. 2026 (CET)
: Und noch eine Neuerung: Man kann die Sonderzeichen (neben der Beschreibung) nun für alle Eingabezeilen verwenden. Einfach den Cursor in die entsprechende Zeile setzen und das gewünschte Zeichen drücken. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:05, 14. Mär. 2026 (CET)
::Danke, gefällt mir sehr gut {{S|applaus}}. Die Darstellung ist jetzt übersichtlicher als vorher. Auch die Verwendung der Sonderzeichen (insbes. geschützte Leerzeichen) in allen Eingabezeilen erleichtert die Arbeit. Hoffentlich werden diese zukünftig intensiver genutzt {{S|;)}}. [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:36, 14. Mär. 2026 (CET)
== 25 Jahre Wikipedia … und noch einen Grund mehr zum Feiern ==
Die Wikipedia begeht heute den [[w:Wikipedia:25 Jahre Wikipedia|25. Geburtstag]] der deutschsprachigen Wikipedia. Herzlichen Glückwunsch und weitere erfolgreiche Jahre.
Aber dies ist nicht der einzige Geburtstag in diesem Jahr. Am 10. Dezember 2026 feiert Wikivoyage sein 20jähriges Bestehen. Wir sollten dies auch gebührend feiern. Ich denke, dass es wenigstens ein persönliches Treffen geben sollte. Wenn jemand eine besondere Idee hat, so möge er sie hier mitteilen. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 16:59, 16. Mär. 2026 (CET)
* Gute Idee mit dem persönlichen Treffen! Da bin ich gerne dabei --[[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 17:26, 16. Mär. 2026 (CET)
* Den Glückwünschen an die deutsche Wikipedia möchte ich mich gern anschließen.
: Das Bestehen der Wikivoyage sollten wir tatsächlich feiern, auch wenn die Zahl der Aktiven relativ gering ist. Hier ein paar -unsortierte- Gedanken:
:* Der Zeitpunkt Dezember ist m.{{nnbsp}}E. relativ ungeeignet. Außenaktivitäten sind eingeschränkt, Lokalitäten wegen der Vorweihnachtszeit häufig ausgebucht, private Terminkalender oft voll. Besser wäre evtl. Herbst (Sep) 2026 oder Frühjahr 2027 (ist mir pers. zu weit weg)
:* Ort möglichst für alle gut erreichbar per Bahn oder Kfz. Für deutsche Teilnahmer ggf. [[Kassel]], wenn wir auch Österreicher und Schweizer einbeziehen wollen ggf. [[Würzburg]]? Oder: Ort eines noch zu wählenden ZdM?
:* Vorschlag Zeitpunkt und Ort: [[Regensburg]], WikiCon 2026 (Freitag, 18. bis Sonntag, d. 20. September 2026)
: Ich freue mich auf ein Treffen! --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 17:46, 16. Mär. 2026 (CET)
::Ich mache mich am 27.09. wieder auf in meine zweit Heimat und kehre erst 2027 zurück. Ort wäre mir egal. <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 19:42, 16. Mär. 2026 (CET)
* Regensburg? Sehr gut. Würzburg? Grandios, komme ich mit dem Fahrrad. --[[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 20:48, 16. Mär. 2026 (CET)
== Wohin damit − offene Diskussionen ==
Auf der Diskussionsseite von [[Wikivoyage Diskussion:Wohin damit|Wohin damit]] "schlummern" 2 Diskussionen, die vermutlich von den meisten unbemerkt verlaufen sind und daher mangels Teilnahme nicht abgeschlossen werden konnten, bzw. es gibt kein eindeutiges Ergebnis das in die Schlagwortliste einfließen könnte. Bitte seht euch doch mal die Diskussionen [[Wikivoyage Diskussion:Wohin damit#Kurtaxe (neu 2026)|'''Kurtaxe (neu 2026)''']] und [[Wikivoyage Diskussion:Wohin damit#Ärzte|'''Ärzte''']] an und beteiligt euch an der Diskussion. Bis Ende März d.{{nnbsp}}J. sollten wir eine Einigung gefunden haben. Danke im Voraus! --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 16:22, 19. Mär. 2026 (CET)
== Social-Media in der Quickbar-Ort ==
In der Quickbar von Ortsartikeln werden u.{{nnbsp}}a. auch anklickbare Social-Media-Symbole eingeblendet, allerdings ausschließlich wenn sie in Wikidata vorhanden sind. Zu den Symbolen gehört auch das „Hashtag“-Symbol. Der Klick darauf führt zu einer Linkliste. Allerdings führen wohl 90{{nnbsp}}% der Links ins Leere. Daher stellen sich die Fragen: Soll das „Hashtag“-Symbol weiterhin dort erscheinen? Wollen wir diesen zweifelhaften „Service“ unseren Lesern zumuten? Werden Hashtags heute überhaupt noch genutzt? Mein Vorschlag: Das „Hashtag“-Symbol sollte raus! Danke für Eure Meinung. --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 16:57, 19. Mär. 2026 (CET)
Beispiel: [[Kühlungsborn]]
:Die Hashtag-Nutzung ist, wie ich bereits sagte, eine Altersgruppenfrage. Durch Tikschrott wird das aber obsolet und der Klammeraffe (@) wird beliebter. -- [[Spezial:Beiträge/~2026-58111-0|~2026-58111-0]] ([[Benutzer Diskussion:~2026-58111-0|Diskussion]]) 17:18, 19. Mär. 2026 (CET)
::Mir ist das „Hashtag“-Symbol noch nie aufgefallen. Es scheint auch nicht sehr weit verbreitet zu sein. Ich brauche es nicht, aber als „Dinosaurier“ ist es wohl besser, wenn junge Mit-Autoren darüber entscheiden. [[Benutzer:DocWoKav|DocWoKav]] ([[Benutzer Diskussion:DocWoKav|Diskussion]]) 18:35, 19. Mär. 2026 (CET)
== Wikipedia-Kartenwerkstatt ist Geschichte ==
Wie die Headline bereits verrät, ist die [[w:Kartenwerkstatt|Kartenwerkstatt]] bei Wikipedia seit heute, den 28. März 2026 Geschichte. Den Grund kann man [[W:Wikipedia Diskussion:Kartenwerkstatt|hier]] entnehmen. Wikivoyager sind damit in Zukunft gezwungen ihre Anfragen in anderssprachigen Pendants zu stellen oder ihre gewünschten Karten in Eigenregie zu erstellen. -- [[Spezial:Beiträge/~2026-19309-80|~2026-19309-80]] ([[Benutzer Diskussion:~2026-19309-80|Diskussion]]) 20:28, 28. Mär. 2026 (CET)
:Es gibt ja noch die [[c:Commons:Graphic Lab/Map workshop|Kartenwerkstatt auf Commons]]. Dort hätte ich bisher meine Anfragen gestellt, da dort eine internationale Community tätig ist, und die Chance größer ist, für ein bestimmtes Land etwas zu bekommen. Ich glaube aber nicht, dass das für uns so prekäre Auswirkungen haben wird. Unsere statischen Karten beschränken sich auf Quickbar-Positionskarten und ein paar thematische Übersichtskarten. Wir nutzen ja mehr die dynamischen Karten der Kartographer-Erweiterung sowie Karten im Data-Namensraum auf Commons. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 22:43, 28. Mär. 2026 (CET)
::Das mag sein. In der Wunschliste der Kartenwerkstatt wurde allerdings unter anderem ein Kartenwunsch explizit für Wikivoyage von @[[Benutzer:Eduard47|Eduard47]] geäußert, die nun unerstellt archiviert wurde. Daher erschien mir eine Info für alle Beteiligten hier wichtig. -- [[Spezial:Beiträge/~2026-19593-67|~2026-19593-67]] ([[Benutzer Diskussion:~2026-19593-67|Diskussion]]) 05:23, 30. Mär. 2026 (CEST)
:::Ist ja völlig richtig. Habe ich oben das Danke vergessen? Mist. Sorry dafür. Hiermit nachgeholt. Es stimmt, ich habe gelegentlich auf die Kartenwerkstätten verwiesen, da wir selbst gar keine Manpower für sowas haben. Ob wir jemals eine bekommen haben? Bisher nichts gehört. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 07:46, 30. Mär. 2026 (CEST)
::: {{Ping|~2026-19593-67}} Für Dich zur Info: Wenn Du im [[w:Wikipedia:Kartenwerkstatt/Archiv/2025-12#Kartenwunsch: Lagekarte Harz|Archiv]] nachliest, dann wirst Du bemerken, dass die gewünschte Karte im Dezember 2025 erstellt wurde, und ich mich am 11. Dez. 2025 beim Ersteller [[Benutzer:NordNordWest|NNW]] bedankt habe! Die Karte findest Du seitdem in der Quickbar des Wikivoyage-Artikels [[Harz]]! Wenn recherchieren dann bitte richtig, sagt --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:27, 30. Mär. 2026 (CEST)
::::Geht's auch etwas freundlicher? -- [[Spezial:Beiträge/~2026-58111-0|~2026-58111-0]] ([[Benutzer Diskussion:~2026-58111-0|Diskussion]]) 14:39, 30. Mär. 2026 (CEST)
== Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) ==
Hello everyone,
This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>).
'''The Change:'''<br />
Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]].
We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''.
'''What You Need To Do:'''<br />
To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search.
'''Deadline:'''<br />
We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles.
Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[Benutzer:MediaWiki message delivery|MediaWiki message delivery]] ([[Benutzer Diskussion:MediaWiki message delivery|Diskussion]]) 19:11, 3. Apr. 2026 (CEST)
: {{Ping|ZI Jony}} It seems that [[:d:Property:P1846|P1846]] is [[:Kategorie:Wartung:Seiten,_die_Daten_von_Wikidata_benutzen|not used]] at the German Wikivoyage. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 06:59, 4. Apr. 2026 (CEST)
::@[[Benutzer:RolandUnger|RolandUnger]] thanks for your confirmation. [[Benutzer:ZI Jony|ZI Jony]] ([[Benutzer Diskussion:ZI Jony|Diskussion]]) 09:56, 4. Apr. 2026 (CEST)
== Hinweis auf laufende Diskussionen ==
Zu jedem Artikel gibt es eine Diskussionsseite. Insbesondere Diskussionen, bei denen eine größere Anzahl von Teilnehmern wünschenswert wäre, verlaufen diese leider immer wieder mangels Teilnahme ohne Ergebnis. Dieses liegt vermutlich auch daran, dass diese Diskussionen von vielen unbemerkt verlaufen. Nicht jeder hat die entsprechende Seite auf seiner Beobachtungsliste und der Blick in die [[Spezial:Letzte_Änderungen|Letzten Änderungen]] unterbleibt ebenfalls. Die [[Wikivoyage:Lounge|Lounge]] dagegen findet wesentlich stärkere Beachtung. Nicht jede Diskussion gehört in die Lounge, sondern eher auf die dem Thema zugehörige Diskussionsseite. Um dennoch eine größere Teilnehmerzahl zu erreichen schlage ich vor, in der Lounge als ersten Abschnitt (der sollte auch nicht archiviert werden) eine Auflistung aktueller Diskussionen einzurichten. In diesem Abschnitt sollten max. 10{{nnbsp}}Einträge mit wenigen Worten und einem Link auf eine aktuelle Diskussion hingewiesen werden. Nach etwa einem Monat kann der Hinweis gelöscht werden. Der Verfasser der Diskussion trägt den Hinweis ein und löscht ihn dann später auch wieder. Ein zusätzlicher Verwaltungsaufwand wird dadurch vermieden. Was hält die Community davon? --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:54, 16. Apr. 2026 (CEST)
:Ich halte das für eine sehr gute Idee, ja das stimmt, vieles verläuft im Sande, einfach nur weil es irgentwie untergeht [[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 23:32, 16. Apr. 2026 (CEST)
3inpwkvi6a4kwu057j5822ve9crl35e
1769112
1769111
2026-04-16T21:33:50Z
Scholless
15050
/* Hinweis auf laufende Diskussionen */
1769112
wikitext
text/x-wiki
__NEWSECTIONLINK__ <!-- damit erzeugen wir einen "+"-Tab oben, das ermöglicht ein einfaches Hinzufügen eines neuen Diskussionsthemas
-->{{IstIn|Organisation}} __FORCETOC__
[[File:City Space Bar & Lounge.JPG|mini|City Space Bar & Lounge im Swissôtel Krasnye Holmy Moskau]]
Die '''Lounge''' bietet die Möglichkeit für allgemeine Diskussionen an zentraler Stelle.
Neben den Lounges der Sprachversionen von Wikivoyage gibt es die englischsprachige [[:mail:wikivoyage-l|Mailingliste Wikivoyage-l]] und die Seite '''[[meta:Wikivoyage/Lounge|Wikivoyage Lounge]] auf Meta''' für Diskussionen über alle Sprachversionen und die Beziehung zu anderen Wikimedia-Projekten.
Alte Beiträge (in der Regel Threads, die älter als 14 Tage sind) befinden sich im '''[[Wikivoyage:Lounge/Archiv|Archiv]]'''. — '''[{{FULLURL:Wikivoyage:Lounge|action=edit§ion=new}} Neue Beiträge bitte unten anfügen]'''.
<!--hier geht's los-->
==Zur Erinnerung [[#zwei_Abstimmung_Lebensmittelmärkte]] ==
Ich hoffe das Thema ist dann am 14.12 konstruktiv mit Vorschlag von der Fussi erledigt.
Abstimmung bis 14.12 ist hier: [[#zwei_Abstimmung_Lebensmittelmärkte]] --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 10:42, 6. Dez. 2025 (CET)
=== Abstimmung Lebensmittelmärkte ===
Folgender Textabschnitt unten soll '''neu zum Thema [[Wikivoyage:Wohin_damit#L|"L" Lebensmittelgeschäft]]''' und bei '''[[Wikivoyage:Wohin_damit#D|"D" Drogerie, Drogeriemarkt]]''' aufgenommen werden. Der neue Text ersetzt jeweils die bisherigen Textabschnitte.
Der neue Textabschnitt:
"Hinweise zu Versorgungseinrichtungen mit Lebensmitteln und Drogerieartikeln nur in kleinen Orten (Abschnitt Einkaufen), ohne Nennung der Firmennamen (Handelsketten) und nur mit Marker ohne weitere Details, d. h. auch ohne Adresse und ohne Öffnungszeiten. Die nächste größere Einkaufsmöglichkeit befindet sich in XYZ."
Bitte mit Wort "Ja", "Nein" oder "Enthaltung" abstimmen. Die Abstimmung endet am Mittwoch 15. Oktober 2025 um 23:59 Uhr Mitteleuropäische Zeit.
'''Abstimmung:'''
* '''Ja''' --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 15:47, 8. Okt. 2025 (CEST)
:'''Ja''' -- [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 16:22, 8. Okt. 2025 (CEST)
* '''Nein''' das ist eine Wischi-Waschi-Formulierung. Ein Eintrag ohne Name Adresse ist sinnlos für Leser. --[[Benutzer:Qualitätssicherung|Qualitätssicherung]] ([[Benutzer Diskussion:Qualitätssicherung|Diskussion]]) 23:14, 8. Okt. 2025 (CEST)
:: Nachtrag: als ich vor ein paar Jahren in Australien war, waren die wenigen ALDI-Süd (''sic'') dort eine Erlösung im Vergleich zu den australischen Ketten, mit mieser Qualität und horrenden Preisen. Sind dort für Reisende wichtig um nicht zu sagen lebenwichtig. ;-)
* '''Nein''' -- Dies ist eher sinnlos. Wenn es schon kaum was gibt, hilft dies auch bloß nicht. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 07:30, 9. Okt. 2025 (CEST)
*:* Ja --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 20:27, 13. Okt. 2025 (CEST)
* Eher '''Nein''' aus zwei Gründen. '''1.''' Dann könnte man auch einfach einen Marker direkt im Mapframe angeben, wie ich es in [[Singapur/Southern Islands]] bei den Toiletten, Aussichtspunkten und Stränden gemacht habe - keines dieser Objekte steht im Text. Das Symbol wäre dann {{Code|grocery}}. Das ist ja bisher gar nicht geregelt und bisher alles erlaubt. Weil ist nix anderes als dort oben steht. Und etwas Namenloses im Text macht keinen Sinn. Wäre vielleicht generell eine gute Alternative. '''2.''' Wäre eine allgemeine Augenmaß-Formulierung nicht flexibler? Ist bestimmt nur eine Frage der Zeit, dass wir über ein anderes Verbot mit einen "Aber" reden.
:PS1: ließe sich auch gut auf die oft diskutiereten Apotheken anwenden, die jetzt noch generell zugelassen sind.
:PS2: Auf [[Wikivoyage:Wohin_damit|Wohin_damit]] gibt es auch "K wie [[Wikivoyage:Wohin_damit#K|Kiosk]]" -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 05:32, 14. Okt. 2025 (CEST)
=== 2. Abstimmung Lebensmittelmärkte ===
Ich hätte einen Alternativvorschlag.
* verbotene Objekte bleiben pauschal erstmal verboten, also Supermärkte, Friseure, Tankstellen und was in weiteren Diskussionen noch dazukommt (Imbissbuden, Apotheken, Fast-Food, Kantinen, Kioske)
* In die Einleitung von [[Wikivoyage:Wohin damit]] kommt, eine Klausel. ''Auf dieser Seite als nicht erwünscht eingestufte Objekte können ausnahmsweise in Artikeln gelistet werden, wenn sie ein Alleinstellungsmerkmal besitzen. Als ein solches Merkmal kann beispielsweise folgendes gelten:''
** ''Überregionale Bekanntheit''
** ''Einzig vorhandenes Objekt in weitem Umkreis. Das kann je nach Weltregion ein unterschiedlicher Radius sein und sollte im entsprechenden Kontext abgewogen werden.''
** ''Wenn in einer Einrichtung neben der Landessprache auch Deutsch oder Englisch gesprochen wird, und beide Sprachen keine Amtssprache in dem Land sind.''
** ''Touristisch interessante zusätzliche Eigenschaft, die über die normale Bestimmung des Objektes hinausgeht (z.{{nnbsp}}B. wenn Imbissbude auch ein Planespotting-Hotspot ist.''
''Dieses Merkmal ist auf der Diskussionsseite unter „Objekte mit Alleinstellungsmerknmal“ zu dokumentieren. Dieser Abschnitt sollte nicht archiviert werden. Von der Ausnahme ausgeschlossen sind [[Wikivoyage:Unerwünschte Inhalte|Unerwünschte Inhalte]]. Ist es nicht angegeben, können entsprechende Einträge gelöscht werden.''
{{Ping|Dirk Schmidt|RaveDog|Qualitätssicherung|RolandUnger|Eduard47}} Wäre das eine Idee? Und bitte nicht fragen, wer jetzt nachträglich die ganzen Begründungen nachtragen soll. Wir sind alle entspannt und keiner, der die Regeln kennt, wird einen Lösch-Feldzug starten, wenn ein Eintrag augenscheinlich erstmal Sinn macht. Ansonsten rückfragen bzw. löschen und auf die Beschwerde warten und drüber reden. Dann aber über das konkrete Objekt selbst reden und keine Regeldiskussion führen. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 05:47, 4. Nov. 2025 (CET)
:Ich geb mal spät noch meinen Senf dazu, auch als jemand der bereits von Ravedogs Löschungen betroffen war: Würde Imbisse stehen lassen, wir sollten nicht nur die 3-Gänge-Küche abdecken. McDoof etc in Ausnahmen (einziger in weiter Umgebung, Touristischer Ort, etc.) ansonsten nein würde ich ebenfalls mitgehen.
:Wir sind kein Telefonbuch, aber etwas Augenmaß ist immer gut.
:Mfg [[Benutzer:Deutschereditor|Deutschereditor]] ([[Benutzer Diskussion:Deutschereditor|Diskussion]]) 21:46, 17. Nov. 2025 (CET)
PS: Künftige Diskussionen könnten sich einfacher gestalten, da man nur noch entscheiden muss, ob eine Objektart unter die Regel "Verbot + Ausnahme" fallen soll. So könnte es obsolet werden in ellenlangen Diskussionen Szenarien zu entwerfen, wo man ein verbotenes Objekt doch brauchen könnte, wenn man sich einig ist, dass es im Regelfall nicht nach Wikivoyage gehört. Wenn man keine Ausnahme duldet, kommt es zusätzlich auf die Liste der [[Wikivoyage:Unerwünschte Inhalte|unerwünschten Inhalte]]. Ansonsten kann man alles, was nur auf [[Wikivoyage:Wohin damit|Wohin damit]] unerwünscht ist, im Ausnahmefall angeben. Und wenn nun einer den Friseurladen eines Star-Friseurs listen will.. Ok, von mir aus. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 06:53, 4. Nov. 2025 (CET)
:''Ja, prinzipiell ist das gute Idee!'' Mein Vorschlag der 1. Abstimmung war da eh nicht umfassend genug (Kioske, Tankstellen ja nicht dabei usw.). Also die Idee das so zu klären ist sinnvoll. Das bei potentiellen "Massenobjekten" grundlegend auszusortieren, aber in berechtigten Ausnahmen zuzulassen dann genau pragmatisch sinnvoll: Denn das lässt genau die pragmatischen Einzelfallentscheidungen die im sinne des Reisenden als Selbstversorger sinnvoll sind. Und die genaue Definition einer Ausnahme sollte man den Autoren überlassen, bzw. das jeweils bei Bedarf vor Ort am Artikel dann klären (Wenn z. B. ein Kioskfan anfängt Kioskliste irgendwo anzulegen...) Bei Lebensmittelmärkten wären solche Ausnahmen dann z. B. kleine Ferienorte und die Minimärklte - siehe der eine Lebensmittelmarkt in Oberhof oder in Spiekeroog, die drei Minimärkte auf den drei Dörfern auf Amrum... Wichtig wäre, dann das bei Ausnahme ein kompletter V-Card-Eintrag mit Objektname, Öffnungszeiten usw. zulässig ist. ''Ich denke damit hätten wir eine möglichst flexible pragmatische Regelung für möglichst alle strittigen Objektbereiche (auch für pot. neue Fälle in der Zukunft)'' --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 07:54, 4. Nov. 2025 (CET)
::Sofern der Punkt bei den Inseln als Alleinstellungsmerkmal grundlegend dargestellt wird. Ansonsten haben wir das Problem, dass jeder Autor ein Ketten/Franchise-Etablissement in seinem bearbeitenden Ort als überaus wichtig ansieht. Wenn deiner Meinung nach nur die Meinung des Autoren zählt (wenn ich dich richtig verstanden habe), dann ist die ganze Abstimmung hier total sinnfrei. Denn jedem fällt irgendeinen Stuss ein, warum Dieses oder Jenes wichtig zu erwähnen ist, wohingegen jedem genau das Gegenteilige einfallen könnte, was dagegen spricht. Am Ende haben wir wieder nur eine Diskutiererei, wie eh und je und nix, aber auch gar nix gewonnen.
::Wie bereits bei ''wohin damit'' gesagt, isses mir mittlerweile wurscht, was am Ende für eine Regelung bei Supermärkten/Apotheken/Fressbuden/etc. aufgestellt wird. Ich beuge mich der Mehrheit und ändere entsprechend meine bereits bearbeiteten Artikel anschließend nach und nach um. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 08:37, 4. Nov. 2025 (CET)
:::Die Argumente überzeugen! Fussis Vorschlag ist pragmatisch und auch praktikabel. Einzig beim Punkt ''"Dieses Merkmal ist auf der Diskussionsseite unter „Objekte mit Alleinstellungsmerknmal“ zu dokumentieren"'' befürchte ich Diskussionen. Könnte man dort ggf. eine Checkliste hinterlegen? Dann würde die Formulierung von Ausnahmen einfacher und eindeutiger. [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:11, 4. Nov. 2025 (CET)
::::Ich habe oben bewusst "beispielsweise" bei den Merkmalen geschrieben. Daher denke ich, eine Checkliste macht (noch) keinen Sinn. Eine Liste vorgeben würde ich erst, wenn es zu vielen ausufernden Kloppereien kommt. Weil die Erstellung dieser Liste lässt uns wieder genauso ewig diskutieren. Aber das glaube ich einfach noch nicht. Man sollte das erstmal abwarten. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:16, 4. Nov. 2025 (CET)
:::Das ist doch jetzt aber auch wieder so ein konstruiertes Szenario. Sowas lässt sich immer finden wenn man gegen etwas sein will. Wie auch woanders angemerkt, ist nicht ein alleiniger Autor jetzt "Bestimmer". Dann muss halt die Community den konkreten Fall diskutieren. Und ja, wenn ein Troll hier MacDonalds einfügt und Gründe bloß erfindet, gehört es trotzdem gelöscht. Meine Intention ist, dass bei einer konkreten Löschung nicht wie jetzt elende lange ergebnisfreie Regeldiskussionen geführt werden (wie bisher), sondern dass man sich auf den konkreten Fall konzentriert.
:::Um Missverständnissen vorzubeugen können wir gerne reinschreiben, aber für mich war das klar. ''Im Zweifelsfall entscheidet die Community über die Zulässigkeit des Alleinstellungsmerkmals''. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:13, 4. Nov. 2025 (CET)
:::Eine andere Idee habe ich nicht, dann bin auch ich raus... -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:18, 4. Nov. 2025 (CET)
::::@DerFussi: Pardon, ich hatte vergessen ein At-Zeichen zu setzen. Meine Überlegungen gingen an Dirk, nicht an dich. Aber ich glaube, auch ihn hatte ich falsch verstanden. Meine Gedanken mögen vielleicht konstruiert wirken, ich tendiere aber gern dazu alle Eventualitäten mit einzubeziehen, um zukünftige Probleme zu vermeiden.
::::Meine Meinung sollte aber in diesem speziellen Fall weniger gewichtet werden als die der anderen, da ich bereits schrieb, dass ich mich der Mehrheit beuge. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 22:36, 4. Nov. 2025 (CET)
:::::Ich wüsste auch nicht, wie man die Praktikabilität eines solchen Ansatzes abschätzen könnte, als es einfach mal zu testen. Wenn es doch wieder elende Diskussionen und Stress gibt... dann ratlos. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 04:44, 5. Nov. 2025 (CET)
::::::Frage nach weiteren 14 Tagen: Was machen wir nun? Mein Vorschlag: Fussis Alternativvorschlag annehmen und umsetzen! [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 12:09, 19. Nov. 2025 (CET)
:::::::{{pro}} - Stimme zu; auch damit das Thema beendet ist. Anfang dieser Woche hat wieder ein Benutzer Imbisse eingepflegt. Ein Ergebnis für die Themen Fast-Food/Imbissbuden, Supermärkte und Apotheken, ob Ja oder Nein, ist nach vielen Monaten längst überfällig. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 10:02, 21. Nov. 2025 (CET)
=== zwei Abstimmung_Lebensmittelmärkte ===
Hier die 2. formale Abstimmung "Lebenmittelmärkte und weitere POI", Textvorschlag von "DerFussi" oben. Die 1. Abstimmung ging mit einem "Patt" aus. Daher hier dieser Alternativvorschlag.
xxxxxxxxxxx
'''Alternativvorschlag zur Abstimmung:'''
* verbotene Objekte bleiben pauschal erstmal verboten, also Supermärkte, Friseure, Tankstellen und was in weiteren Diskussionen noch dazukommt (Imbissbuden, Apotheken, Fast-Food, Kantinen, Kioske)
* In die Einleitung von [[Wikivoyage:Wohin damit]] kommt, eine Klausel. ''Auf dieser Seite als nicht erwünscht eingestufte Objekte können ausnahmsweise in Artikeln gelistet werden, wenn sie ein Alleinstellungsmerkmal besitzen. Als ein solches Merkmal kann beispielsweise folgendes gelten:''
** ''Überregionale Bekanntheit''
** ''Einzig vorhandenes Objekt in weitem Umkreis. Das kann je nach Weltregion ein unterschiedlicher Radius sein und sollte im entsprechenden Kontext abgewogen werden.''
** ''Wenn in einer Einrichtung neben der Landessprache auch Deutsch oder Englisch gesprochen wird, und beide Sprachen keine Amtssprache in dem Land sind.''
** ''Touristisch interessante zusätzliche Eigenschaft, die über die normale Bestimmung des Objektes hinausgeht (z.{{nnbsp}}B. wenn Imbissbude auch ein Planespotting-Hotspot ist.''
''Dieses Merkmal ist auf der Diskussionsseite (welcher?) unter „Objekte mit Alleinstellungsmerkmal“ zu dokumentieren. Dieser Abschnitt sollte nicht archiviert werden. Von der Ausnahme ausgeschlossen sind [[Wikivoyage:Unerwünschte Inhalte|Unerwünschte Inhalte]]. Ist es nicht angegeben, können entsprechende Einträge gelöscht werden.''
xxxxxxxxxxxxxxxx
*Dieser Vorschlag von "Der Fussi" steht damit hier zur Abstimmung.
*Es kann mit '''"Ja"'''{{Pro}}, '''"Nein"''' {{contra}} und '''"Enthaltung"''' {{neutral}} abgestimmt werden.
*Die Abstimmung endet So 14. Dezember, 23:59 Uhr mitteleuropäischer Zeit (MEZ=.
* {{Pro}} --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 01:14, 6. Dez. 2025 (CET)
* Unsere [[Wikivoyage:Regeln zur Entscheidungsfindung|Regeln zur Entscheidungsfindung]] sind war etwas komplizierter, aber darüber würde ich hinwegsehen, wenn wir damit vorwärtskommen, solange sich keiner beschwert. Alles gut. {{Pro}} -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 12:27, 6. Dez. 2025 (CET)
* {{Pro}} Pragmatischer Vorschlag, der allen einen Spielraum bietet. --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:07, 6. Dez. 2025 (CET)
* {{Pro}} - Nur eine kleine Verständnisfrage: Gilt die Regelung ab dem 14. Dezember dann einschließlich der in Klammern gesetzten Objekte? Nur damit ich weiß, ob ich diese ggf. in meinen bearbeiteten Artikel entfernen muss, wenn die Abstimmung "erfolgreich" war. --[[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 20:56, 7. Dez. 2025 (CET)
* {{neutral}} wenn man’s denn regeln muß. Wie wär’s mit Kurzfassung des Verordnungstextes (und das für alle): “be flexible” im Sinne von „Hirn einschalten“ bei der Auswahl? --[[Benutzer:Qualitätssicherung|Qualitätssicherung]] ([[Benutzer Diskussion:Qualitätssicherung|Diskussion]]) 01:14, 8. Dez. 2025 (CET)
*:@[[Benutzer:Qualitätssicherung|Qualitätssicherung]] Hirn einschalten funktioniert nicht. Sowas führt nur zu Endlosdiskussionen ohne Endergebnis, wie es seit Jahren auf WV gepflegt wird. Jeder fühlt sich da im Recht. Egal ob Pro oder Contra. [[Spezial:Beiträge/~2025-33216-75|~2025-33216-75]] ([[Benutzer Diskussion:~2025-33216-75|Diskussion]]) 11:38, 8. Dez. 2025 (CET)
*:Genau. "Hirn einschalten" funktioniert generell nicht, nicht nur auf WV. Dann gäbe es weniger Gerichtsverfahren, weniger Verschwörungstheorien, weniger Gewalt usw. usw. Vielleicht funktionieren ja auch einige/viele Hirne nur anders als andere. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 06:42, 22. Dez. 2025 (CET)
*: "Hirn einschalten" funktioniert auch nicht bei Hinrnlosen!--[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 13:22, 22. Dez. 2025 (CET)
==== Ergebnis der Abstimmung ====
Es haben 5 Benutzer ihre Stimme abgegeben. Dabei entfielen auf
* {{Pro}}: 4 Stimmen
* {{neutral}}: 1 Stimme
* {{contra}}: 0 Stimmen
Damit ist der Alternativorschlag angenommen und wird in [[Wikivoyage:Wohin damit]] sinngemäß eingefügt.--[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:44, 17. Jan. 2026 (CET)
:Ergänzung und Bitte an alle Benutzer:<br />
:: Zitat: ''Und bitte nicht fragen, wer jetzt nachträglich die ganzen Begründungen nachtragen soll. Wir sind alle entspannt und keiner, der die Regeln kennt, wird einen Lösch-Feldzug starten, wenn ein Eintrag augenscheinlich erstmal Sinn macht. Ansonsten rückfragen bzw. löschen und auf die Beschwerde warten und drüber reden. Dann aber über das konkrete Objekt selbst reden und keine Regeldiskussion führen. -- DerFussi 05:47, 4. Nov. 2025 (CET)''
:Danke! [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 11:06, 17. Jan. 2026 (CET)
== Offizielle Bestätigung meines Rücktrittes ==
Liebe Wikivoyager, gestern wurde meine Rücktrittsanfrage bzgl. der Administration bei Wikivoyage genehmigt und durchgeführt, daher werden ab sofort '''keine''' weiteren administrative Tätigkeiten/Hilfestellungen von meiner Seite aus möglich sein. Ich wollte es etwas offizieller und übersichtlicher gestalten als es wieder "unübersichtlich" im ANR der [[Wikivoyage:Nominierungen zum Administrator|Adminnominierung]] zu posten. Ich hoffe, dass das genehm ist. Weitere Informationen zur Rücktrittsbestätigung erhaltet ihr via Wikimedia [https://meta.wikimedia.org/wiki/Steward_requests/Permissions#Removal_of_access hier]. Vielen Dank für euer Verständnis. Beste Grüße aus dem sonnigen Südwesten. -- [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 17:48, 12. Mär. 2026 (CET)
:Alles klar. Schade. Für mich sind ja Admin-Tätigkeit und sich mit (sorry) so einem Scheiß rumschlagen getrennte Dinge. Inhaltliche Angelegenheiten sind ja kein Admin-Job. Für mich ist es ein herber Verlust. Hoffe, du bleibst uns als Autor erhalten. {{S|:'(}} -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 15:56, 13. Mär. 2026 (CET)
:: Es ist schade. Aber es ist deine Entscheidung. Trotzdem noch viel Freude bei der Arbeit in Wikivoyage. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:03, 14. Mär. 2026 (CET)
== Geändertes Aussehen des vCard-Editors ==
Mit Blick in die Zukunft habe ich das Aussehen vCard-Editors geändert. Das Ganze habe ich auf vier Seiten verteilt, womit auch eine größere Schrift möglich ist. Was die Zukunft anbetrifft, müssen wir eine Umstellung der Bibliotheken für die Dialoggestaltung vornehmen. Und dann ist man man das Aussehen schon gewohnt. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:03, 14. Mär. 2026 (CET)
: Und noch eine Neuerung: Man kann die Sonderzeichen (neben der Beschreibung) nun für alle Eingabezeilen verwenden. Einfach den Cursor in die entsprechende Zeile setzen und das gewünschte Zeichen drücken. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:05, 14. Mär. 2026 (CET)
::Danke, gefällt mir sehr gut {{S|applaus}}. Die Darstellung ist jetzt übersichtlicher als vorher. Auch die Verwendung der Sonderzeichen (insbes. geschützte Leerzeichen) in allen Eingabezeilen erleichtert die Arbeit. Hoffentlich werden diese zukünftig intensiver genutzt {{S|;)}}. [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:36, 14. Mär. 2026 (CET)
== 25 Jahre Wikipedia … und noch einen Grund mehr zum Feiern ==
Die Wikipedia begeht heute den [[w:Wikipedia:25 Jahre Wikipedia|25. Geburtstag]] der deutschsprachigen Wikipedia. Herzlichen Glückwunsch und weitere erfolgreiche Jahre.
Aber dies ist nicht der einzige Geburtstag in diesem Jahr. Am 10. Dezember 2026 feiert Wikivoyage sein 20jähriges Bestehen. Wir sollten dies auch gebührend feiern. Ich denke, dass es wenigstens ein persönliches Treffen geben sollte. Wenn jemand eine besondere Idee hat, so möge er sie hier mitteilen. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 16:59, 16. Mär. 2026 (CET)
* Gute Idee mit dem persönlichen Treffen! Da bin ich gerne dabei --[[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 17:26, 16. Mär. 2026 (CET)
* Den Glückwünschen an die deutsche Wikipedia möchte ich mich gern anschließen.
: Das Bestehen der Wikivoyage sollten wir tatsächlich feiern, auch wenn die Zahl der Aktiven relativ gering ist. Hier ein paar -unsortierte- Gedanken:
:* Der Zeitpunkt Dezember ist m.{{nnbsp}}E. relativ ungeeignet. Außenaktivitäten sind eingeschränkt, Lokalitäten wegen der Vorweihnachtszeit häufig ausgebucht, private Terminkalender oft voll. Besser wäre evtl. Herbst (Sep) 2026 oder Frühjahr 2027 (ist mir pers. zu weit weg)
:* Ort möglichst für alle gut erreichbar per Bahn oder Kfz. Für deutsche Teilnahmer ggf. [[Kassel]], wenn wir auch Österreicher und Schweizer einbeziehen wollen ggf. [[Würzburg]]? Oder: Ort eines noch zu wählenden ZdM?
:* Vorschlag Zeitpunkt und Ort: [[Regensburg]], WikiCon 2026 (Freitag, 18. bis Sonntag, d. 20. September 2026)
: Ich freue mich auf ein Treffen! --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 17:46, 16. Mär. 2026 (CET)
::Ich mache mich am 27.09. wieder auf in meine zweit Heimat und kehre erst 2027 zurück. Ort wäre mir egal. <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 19:42, 16. Mär. 2026 (CET)
* Regensburg? Sehr gut. Würzburg? Grandios, komme ich mit dem Fahrrad. --[[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 20:48, 16. Mär. 2026 (CET)
== Wohin damit − offene Diskussionen ==
Auf der Diskussionsseite von [[Wikivoyage Diskussion:Wohin damit|Wohin damit]] "schlummern" 2 Diskussionen, die vermutlich von den meisten unbemerkt verlaufen sind und daher mangels Teilnahme nicht abgeschlossen werden konnten, bzw. es gibt kein eindeutiges Ergebnis das in die Schlagwortliste einfließen könnte. Bitte seht euch doch mal die Diskussionen [[Wikivoyage Diskussion:Wohin damit#Kurtaxe (neu 2026)|'''Kurtaxe (neu 2026)''']] und [[Wikivoyage Diskussion:Wohin damit#Ärzte|'''Ärzte''']] an und beteiligt euch an der Diskussion. Bis Ende März d.{{nnbsp}}J. sollten wir eine Einigung gefunden haben. Danke im Voraus! --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 16:22, 19. Mär. 2026 (CET)
== Social-Media in der Quickbar-Ort ==
In der Quickbar von Ortsartikeln werden u.{{nnbsp}}a. auch anklickbare Social-Media-Symbole eingeblendet, allerdings ausschließlich wenn sie in Wikidata vorhanden sind. Zu den Symbolen gehört auch das „Hashtag“-Symbol. Der Klick darauf führt zu einer Linkliste. Allerdings führen wohl 90{{nnbsp}}% der Links ins Leere. Daher stellen sich die Fragen: Soll das „Hashtag“-Symbol weiterhin dort erscheinen? Wollen wir diesen zweifelhaften „Service“ unseren Lesern zumuten? Werden Hashtags heute überhaupt noch genutzt? Mein Vorschlag: Das „Hashtag“-Symbol sollte raus! Danke für Eure Meinung. --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 16:57, 19. Mär. 2026 (CET)
Beispiel: [[Kühlungsborn]]
:Die Hashtag-Nutzung ist, wie ich bereits sagte, eine Altersgruppenfrage. Durch Tikschrott wird das aber obsolet und der Klammeraffe (@) wird beliebter. -- [[Spezial:Beiträge/~2026-58111-0|~2026-58111-0]] ([[Benutzer Diskussion:~2026-58111-0|Diskussion]]) 17:18, 19. Mär. 2026 (CET)
::Mir ist das „Hashtag“-Symbol noch nie aufgefallen. Es scheint auch nicht sehr weit verbreitet zu sein. Ich brauche es nicht, aber als „Dinosaurier“ ist es wohl besser, wenn junge Mit-Autoren darüber entscheiden. [[Benutzer:DocWoKav|DocWoKav]] ([[Benutzer Diskussion:DocWoKav|Diskussion]]) 18:35, 19. Mär. 2026 (CET)
== Wikipedia-Kartenwerkstatt ist Geschichte ==
Wie die Headline bereits verrät, ist die [[w:Kartenwerkstatt|Kartenwerkstatt]] bei Wikipedia seit heute, den 28. März 2026 Geschichte. Den Grund kann man [[W:Wikipedia Diskussion:Kartenwerkstatt|hier]] entnehmen. Wikivoyager sind damit in Zukunft gezwungen ihre Anfragen in anderssprachigen Pendants zu stellen oder ihre gewünschten Karten in Eigenregie zu erstellen. -- [[Spezial:Beiträge/~2026-19309-80|~2026-19309-80]] ([[Benutzer Diskussion:~2026-19309-80|Diskussion]]) 20:28, 28. Mär. 2026 (CET)
:Es gibt ja noch die [[c:Commons:Graphic Lab/Map workshop|Kartenwerkstatt auf Commons]]. Dort hätte ich bisher meine Anfragen gestellt, da dort eine internationale Community tätig ist, und die Chance größer ist, für ein bestimmtes Land etwas zu bekommen. Ich glaube aber nicht, dass das für uns so prekäre Auswirkungen haben wird. Unsere statischen Karten beschränken sich auf Quickbar-Positionskarten und ein paar thematische Übersichtskarten. Wir nutzen ja mehr die dynamischen Karten der Kartographer-Erweiterung sowie Karten im Data-Namensraum auf Commons. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 22:43, 28. Mär. 2026 (CET)
::Das mag sein. In der Wunschliste der Kartenwerkstatt wurde allerdings unter anderem ein Kartenwunsch explizit für Wikivoyage von @[[Benutzer:Eduard47|Eduard47]] geäußert, die nun unerstellt archiviert wurde. Daher erschien mir eine Info für alle Beteiligten hier wichtig. -- [[Spezial:Beiträge/~2026-19593-67|~2026-19593-67]] ([[Benutzer Diskussion:~2026-19593-67|Diskussion]]) 05:23, 30. Mär. 2026 (CEST)
:::Ist ja völlig richtig. Habe ich oben das Danke vergessen? Mist. Sorry dafür. Hiermit nachgeholt. Es stimmt, ich habe gelegentlich auf die Kartenwerkstätten verwiesen, da wir selbst gar keine Manpower für sowas haben. Ob wir jemals eine bekommen haben? Bisher nichts gehört. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 07:46, 30. Mär. 2026 (CEST)
::: {{Ping|~2026-19593-67}} Für Dich zur Info: Wenn Du im [[w:Wikipedia:Kartenwerkstatt/Archiv/2025-12#Kartenwunsch: Lagekarte Harz|Archiv]] nachliest, dann wirst Du bemerken, dass die gewünschte Karte im Dezember 2025 erstellt wurde, und ich mich am 11. Dez. 2025 beim Ersteller [[Benutzer:NordNordWest|NNW]] bedankt habe! Die Karte findest Du seitdem in der Quickbar des Wikivoyage-Artikels [[Harz]]! Wenn recherchieren dann bitte richtig, sagt --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:27, 30. Mär. 2026 (CEST)
::::Geht's auch etwas freundlicher? -- [[Spezial:Beiträge/~2026-58111-0|~2026-58111-0]] ([[Benutzer Diskussion:~2026-58111-0|Diskussion]]) 14:39, 30. Mär. 2026 (CEST)
== Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) ==
Hello everyone,
This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>).
'''The Change:'''<br />
Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]].
We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''.
'''What You Need To Do:'''<br />
To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search.
'''Deadline:'''<br />
We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles.
Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[Benutzer:MediaWiki message delivery|MediaWiki message delivery]] ([[Benutzer Diskussion:MediaWiki message delivery|Diskussion]]) 19:11, 3. Apr. 2026 (CEST)
: {{Ping|ZI Jony}} It seems that [[:d:Property:P1846|P1846]] is [[:Kategorie:Wartung:Seiten,_die_Daten_von_Wikidata_benutzen|not used]] at the German Wikivoyage. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 06:59, 4. Apr. 2026 (CEST)
::@[[Benutzer:RolandUnger|RolandUnger]] thanks for your confirmation. [[Benutzer:ZI Jony|ZI Jony]] ([[Benutzer Diskussion:ZI Jony|Diskussion]]) 09:56, 4. Apr. 2026 (CEST)
== Hinweis auf laufende Diskussionen ==
Zu jedem Artikel gibt es eine Diskussionsseite. Insbesondere Diskussionen, bei denen eine größere Anzahl von Teilnehmern wünschenswert wäre, verlaufen diese leider immer wieder mangels Teilnahme ohne Ergebnis. Dieses liegt vermutlich auch daran, dass diese Diskussionen von vielen unbemerkt verlaufen. Nicht jeder hat die entsprechende Seite auf seiner Beobachtungsliste und der Blick in die [[Spezial:Letzte_Änderungen|Letzten Änderungen]] unterbleibt ebenfalls. Die [[Wikivoyage:Lounge|Lounge]] dagegen findet wesentlich stärkere Beachtung. Nicht jede Diskussion gehört in die Lounge, sondern eher auf die dem Thema zugehörige Diskussionsseite. Um dennoch eine größere Teilnehmerzahl zu erreichen schlage ich vor, in der Lounge als ersten Abschnitt (der sollte auch nicht archiviert werden) eine Auflistung aktueller Diskussionen einzurichten. In diesem Abschnitt sollten max. 10{{nnbsp}}Einträge mit wenigen Worten und einem Link auf eine aktuelle Diskussion hingewiesen werden. Nach etwa einem Monat kann der Hinweis gelöscht werden. Der Verfasser der Diskussion trägt den Hinweis ein und löscht ihn dann später auch wieder. Ein zusätzlicher Verwaltungsaufwand wird dadurch vermieden. Was hält die Community davon? --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:54, 16. Apr. 2026 (CEST)
:Ich halte das für eine sehr gute Idee, ja das stimmt, vieles verläuft im Sande, einfach nur weil es irgendwie untergeht [[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 23:32, 16. Apr. 2026 (CEST)
b7195icqzu65mwhuh0uwv498f03xe08
1769144
1769112
2026-04-17T05:59:51Z
DerFussi
6
/* Hinweis auf laufende Diskussionen */ Antwort
1769144
wikitext
text/x-wiki
__NEWSECTIONLINK__ <!-- damit erzeugen wir einen "+"-Tab oben, das ermöglicht ein einfaches Hinzufügen eines neuen Diskussionsthemas
-->{{IstIn|Organisation}} __FORCETOC__
[[File:City Space Bar & Lounge.JPG|mini|City Space Bar & Lounge im Swissôtel Krasnye Holmy Moskau]]
Die '''Lounge''' bietet die Möglichkeit für allgemeine Diskussionen an zentraler Stelle.
Neben den Lounges der Sprachversionen von Wikivoyage gibt es die englischsprachige [[:mail:wikivoyage-l|Mailingliste Wikivoyage-l]] und die Seite '''[[meta:Wikivoyage/Lounge|Wikivoyage Lounge]] auf Meta''' für Diskussionen über alle Sprachversionen und die Beziehung zu anderen Wikimedia-Projekten.
Alte Beiträge (in der Regel Threads, die älter als 14 Tage sind) befinden sich im '''[[Wikivoyage:Lounge/Archiv|Archiv]]'''. — '''[{{FULLURL:Wikivoyage:Lounge|action=edit§ion=new}} Neue Beiträge bitte unten anfügen]'''.
<!--hier geht's los-->
==Zur Erinnerung [[#zwei_Abstimmung_Lebensmittelmärkte]] ==
Ich hoffe das Thema ist dann am 14.12 konstruktiv mit Vorschlag von der Fussi erledigt.
Abstimmung bis 14.12 ist hier: [[#zwei_Abstimmung_Lebensmittelmärkte]] --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 10:42, 6. Dez. 2025 (CET)
=== Abstimmung Lebensmittelmärkte ===
Folgender Textabschnitt unten soll '''neu zum Thema [[Wikivoyage:Wohin_damit#L|"L" Lebensmittelgeschäft]]''' und bei '''[[Wikivoyage:Wohin_damit#D|"D" Drogerie, Drogeriemarkt]]''' aufgenommen werden. Der neue Text ersetzt jeweils die bisherigen Textabschnitte.
Der neue Textabschnitt:
"Hinweise zu Versorgungseinrichtungen mit Lebensmitteln und Drogerieartikeln nur in kleinen Orten (Abschnitt Einkaufen), ohne Nennung der Firmennamen (Handelsketten) und nur mit Marker ohne weitere Details, d. h. auch ohne Adresse und ohne Öffnungszeiten. Die nächste größere Einkaufsmöglichkeit befindet sich in XYZ."
Bitte mit Wort "Ja", "Nein" oder "Enthaltung" abstimmen. Die Abstimmung endet am Mittwoch 15. Oktober 2025 um 23:59 Uhr Mitteleuropäische Zeit.
'''Abstimmung:'''
* '''Ja''' --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 15:47, 8. Okt. 2025 (CEST)
:'''Ja''' -- [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 16:22, 8. Okt. 2025 (CEST)
* '''Nein''' das ist eine Wischi-Waschi-Formulierung. Ein Eintrag ohne Name Adresse ist sinnlos für Leser. --[[Benutzer:Qualitätssicherung|Qualitätssicherung]] ([[Benutzer Diskussion:Qualitätssicherung|Diskussion]]) 23:14, 8. Okt. 2025 (CEST)
:: Nachtrag: als ich vor ein paar Jahren in Australien war, waren die wenigen ALDI-Süd (''sic'') dort eine Erlösung im Vergleich zu den australischen Ketten, mit mieser Qualität und horrenden Preisen. Sind dort für Reisende wichtig um nicht zu sagen lebenwichtig. ;-)
* '''Nein''' -- Dies ist eher sinnlos. Wenn es schon kaum was gibt, hilft dies auch bloß nicht. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 07:30, 9. Okt. 2025 (CEST)
*:* Ja --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 20:27, 13. Okt. 2025 (CEST)
* Eher '''Nein''' aus zwei Gründen. '''1.''' Dann könnte man auch einfach einen Marker direkt im Mapframe angeben, wie ich es in [[Singapur/Southern Islands]] bei den Toiletten, Aussichtspunkten und Stränden gemacht habe - keines dieser Objekte steht im Text. Das Symbol wäre dann {{Code|grocery}}. Das ist ja bisher gar nicht geregelt und bisher alles erlaubt. Weil ist nix anderes als dort oben steht. Und etwas Namenloses im Text macht keinen Sinn. Wäre vielleicht generell eine gute Alternative. '''2.''' Wäre eine allgemeine Augenmaß-Formulierung nicht flexibler? Ist bestimmt nur eine Frage der Zeit, dass wir über ein anderes Verbot mit einen "Aber" reden.
:PS1: ließe sich auch gut auf die oft diskutiereten Apotheken anwenden, die jetzt noch generell zugelassen sind.
:PS2: Auf [[Wikivoyage:Wohin_damit|Wohin_damit]] gibt es auch "K wie [[Wikivoyage:Wohin_damit#K|Kiosk]]" -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 05:32, 14. Okt. 2025 (CEST)
=== 2. Abstimmung Lebensmittelmärkte ===
Ich hätte einen Alternativvorschlag.
* verbotene Objekte bleiben pauschal erstmal verboten, also Supermärkte, Friseure, Tankstellen und was in weiteren Diskussionen noch dazukommt (Imbissbuden, Apotheken, Fast-Food, Kantinen, Kioske)
* In die Einleitung von [[Wikivoyage:Wohin damit]] kommt, eine Klausel. ''Auf dieser Seite als nicht erwünscht eingestufte Objekte können ausnahmsweise in Artikeln gelistet werden, wenn sie ein Alleinstellungsmerkmal besitzen. Als ein solches Merkmal kann beispielsweise folgendes gelten:''
** ''Überregionale Bekanntheit''
** ''Einzig vorhandenes Objekt in weitem Umkreis. Das kann je nach Weltregion ein unterschiedlicher Radius sein und sollte im entsprechenden Kontext abgewogen werden.''
** ''Wenn in einer Einrichtung neben der Landessprache auch Deutsch oder Englisch gesprochen wird, und beide Sprachen keine Amtssprache in dem Land sind.''
** ''Touristisch interessante zusätzliche Eigenschaft, die über die normale Bestimmung des Objektes hinausgeht (z.{{nnbsp}}B. wenn Imbissbude auch ein Planespotting-Hotspot ist.''
''Dieses Merkmal ist auf der Diskussionsseite unter „Objekte mit Alleinstellungsmerknmal“ zu dokumentieren. Dieser Abschnitt sollte nicht archiviert werden. Von der Ausnahme ausgeschlossen sind [[Wikivoyage:Unerwünschte Inhalte|Unerwünschte Inhalte]]. Ist es nicht angegeben, können entsprechende Einträge gelöscht werden.''
{{Ping|Dirk Schmidt|RaveDog|Qualitätssicherung|RolandUnger|Eduard47}} Wäre das eine Idee? Und bitte nicht fragen, wer jetzt nachträglich die ganzen Begründungen nachtragen soll. Wir sind alle entspannt und keiner, der die Regeln kennt, wird einen Lösch-Feldzug starten, wenn ein Eintrag augenscheinlich erstmal Sinn macht. Ansonsten rückfragen bzw. löschen und auf die Beschwerde warten und drüber reden. Dann aber über das konkrete Objekt selbst reden und keine Regeldiskussion führen. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 05:47, 4. Nov. 2025 (CET)
:Ich geb mal spät noch meinen Senf dazu, auch als jemand der bereits von Ravedogs Löschungen betroffen war: Würde Imbisse stehen lassen, wir sollten nicht nur die 3-Gänge-Küche abdecken. McDoof etc in Ausnahmen (einziger in weiter Umgebung, Touristischer Ort, etc.) ansonsten nein würde ich ebenfalls mitgehen.
:Wir sind kein Telefonbuch, aber etwas Augenmaß ist immer gut.
:Mfg [[Benutzer:Deutschereditor|Deutschereditor]] ([[Benutzer Diskussion:Deutschereditor|Diskussion]]) 21:46, 17. Nov. 2025 (CET)
PS: Künftige Diskussionen könnten sich einfacher gestalten, da man nur noch entscheiden muss, ob eine Objektart unter die Regel "Verbot + Ausnahme" fallen soll. So könnte es obsolet werden in ellenlangen Diskussionen Szenarien zu entwerfen, wo man ein verbotenes Objekt doch brauchen könnte, wenn man sich einig ist, dass es im Regelfall nicht nach Wikivoyage gehört. Wenn man keine Ausnahme duldet, kommt es zusätzlich auf die Liste der [[Wikivoyage:Unerwünschte Inhalte|unerwünschten Inhalte]]. Ansonsten kann man alles, was nur auf [[Wikivoyage:Wohin damit|Wohin damit]] unerwünscht ist, im Ausnahmefall angeben. Und wenn nun einer den Friseurladen eines Star-Friseurs listen will.. Ok, von mir aus. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 06:53, 4. Nov. 2025 (CET)
:''Ja, prinzipiell ist das gute Idee!'' Mein Vorschlag der 1. Abstimmung war da eh nicht umfassend genug (Kioske, Tankstellen ja nicht dabei usw.). Also die Idee das so zu klären ist sinnvoll. Das bei potentiellen "Massenobjekten" grundlegend auszusortieren, aber in berechtigten Ausnahmen zuzulassen dann genau pragmatisch sinnvoll: Denn das lässt genau die pragmatischen Einzelfallentscheidungen die im sinne des Reisenden als Selbstversorger sinnvoll sind. Und die genaue Definition einer Ausnahme sollte man den Autoren überlassen, bzw. das jeweils bei Bedarf vor Ort am Artikel dann klären (Wenn z. B. ein Kioskfan anfängt Kioskliste irgendwo anzulegen...) Bei Lebensmittelmärkten wären solche Ausnahmen dann z. B. kleine Ferienorte und die Minimärklte - siehe der eine Lebensmittelmarkt in Oberhof oder in Spiekeroog, die drei Minimärkte auf den drei Dörfern auf Amrum... Wichtig wäre, dann das bei Ausnahme ein kompletter V-Card-Eintrag mit Objektname, Öffnungszeiten usw. zulässig ist. ''Ich denke damit hätten wir eine möglichst flexible pragmatische Regelung für möglichst alle strittigen Objektbereiche (auch für pot. neue Fälle in der Zukunft)'' --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 07:54, 4. Nov. 2025 (CET)
::Sofern der Punkt bei den Inseln als Alleinstellungsmerkmal grundlegend dargestellt wird. Ansonsten haben wir das Problem, dass jeder Autor ein Ketten/Franchise-Etablissement in seinem bearbeitenden Ort als überaus wichtig ansieht. Wenn deiner Meinung nach nur die Meinung des Autoren zählt (wenn ich dich richtig verstanden habe), dann ist die ganze Abstimmung hier total sinnfrei. Denn jedem fällt irgendeinen Stuss ein, warum Dieses oder Jenes wichtig zu erwähnen ist, wohingegen jedem genau das Gegenteilige einfallen könnte, was dagegen spricht. Am Ende haben wir wieder nur eine Diskutiererei, wie eh und je und nix, aber auch gar nix gewonnen.
::Wie bereits bei ''wohin damit'' gesagt, isses mir mittlerweile wurscht, was am Ende für eine Regelung bei Supermärkten/Apotheken/Fressbuden/etc. aufgestellt wird. Ich beuge mich der Mehrheit und ändere entsprechend meine bereits bearbeiteten Artikel anschließend nach und nach um. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 08:37, 4. Nov. 2025 (CET)
:::Die Argumente überzeugen! Fussis Vorschlag ist pragmatisch und auch praktikabel. Einzig beim Punkt ''"Dieses Merkmal ist auf der Diskussionsseite unter „Objekte mit Alleinstellungsmerknmal“ zu dokumentieren"'' befürchte ich Diskussionen. Könnte man dort ggf. eine Checkliste hinterlegen? Dann würde die Formulierung von Ausnahmen einfacher und eindeutiger. [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:11, 4. Nov. 2025 (CET)
::::Ich habe oben bewusst "beispielsweise" bei den Merkmalen geschrieben. Daher denke ich, eine Checkliste macht (noch) keinen Sinn. Eine Liste vorgeben würde ich erst, wenn es zu vielen ausufernden Kloppereien kommt. Weil die Erstellung dieser Liste lässt uns wieder genauso ewig diskutieren. Aber das glaube ich einfach noch nicht. Man sollte das erstmal abwarten. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:16, 4. Nov. 2025 (CET)
:::Das ist doch jetzt aber auch wieder so ein konstruiertes Szenario. Sowas lässt sich immer finden wenn man gegen etwas sein will. Wie auch woanders angemerkt, ist nicht ein alleiniger Autor jetzt "Bestimmer". Dann muss halt die Community den konkreten Fall diskutieren. Und ja, wenn ein Troll hier MacDonalds einfügt und Gründe bloß erfindet, gehört es trotzdem gelöscht. Meine Intention ist, dass bei einer konkreten Löschung nicht wie jetzt elende lange ergebnisfreie Regeldiskussionen geführt werden (wie bisher), sondern dass man sich auf den konkreten Fall konzentriert.
:::Um Missverständnissen vorzubeugen können wir gerne reinschreiben, aber für mich war das klar. ''Im Zweifelsfall entscheidet die Community über die Zulässigkeit des Alleinstellungsmerkmals''. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:13, 4. Nov. 2025 (CET)
:::Eine andere Idee habe ich nicht, dann bin auch ich raus... -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:18, 4. Nov. 2025 (CET)
::::@DerFussi: Pardon, ich hatte vergessen ein At-Zeichen zu setzen. Meine Überlegungen gingen an Dirk, nicht an dich. Aber ich glaube, auch ihn hatte ich falsch verstanden. Meine Gedanken mögen vielleicht konstruiert wirken, ich tendiere aber gern dazu alle Eventualitäten mit einzubeziehen, um zukünftige Probleme zu vermeiden.
::::Meine Meinung sollte aber in diesem speziellen Fall weniger gewichtet werden als die der anderen, da ich bereits schrieb, dass ich mich der Mehrheit beuge. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 22:36, 4. Nov. 2025 (CET)
:::::Ich wüsste auch nicht, wie man die Praktikabilität eines solchen Ansatzes abschätzen könnte, als es einfach mal zu testen. Wenn es doch wieder elende Diskussionen und Stress gibt... dann ratlos. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 04:44, 5. Nov. 2025 (CET)
::::::Frage nach weiteren 14 Tagen: Was machen wir nun? Mein Vorschlag: Fussis Alternativvorschlag annehmen und umsetzen! [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 12:09, 19. Nov. 2025 (CET)
:::::::{{pro}} - Stimme zu; auch damit das Thema beendet ist. Anfang dieser Woche hat wieder ein Benutzer Imbisse eingepflegt. Ein Ergebnis für die Themen Fast-Food/Imbissbuden, Supermärkte und Apotheken, ob Ja oder Nein, ist nach vielen Monaten längst überfällig. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 10:02, 21. Nov. 2025 (CET)
=== zwei Abstimmung_Lebensmittelmärkte ===
Hier die 2. formale Abstimmung "Lebenmittelmärkte und weitere POI", Textvorschlag von "DerFussi" oben. Die 1. Abstimmung ging mit einem "Patt" aus. Daher hier dieser Alternativvorschlag.
xxxxxxxxxxx
'''Alternativvorschlag zur Abstimmung:'''
* verbotene Objekte bleiben pauschal erstmal verboten, also Supermärkte, Friseure, Tankstellen und was in weiteren Diskussionen noch dazukommt (Imbissbuden, Apotheken, Fast-Food, Kantinen, Kioske)
* In die Einleitung von [[Wikivoyage:Wohin damit]] kommt, eine Klausel. ''Auf dieser Seite als nicht erwünscht eingestufte Objekte können ausnahmsweise in Artikeln gelistet werden, wenn sie ein Alleinstellungsmerkmal besitzen. Als ein solches Merkmal kann beispielsweise folgendes gelten:''
** ''Überregionale Bekanntheit''
** ''Einzig vorhandenes Objekt in weitem Umkreis. Das kann je nach Weltregion ein unterschiedlicher Radius sein und sollte im entsprechenden Kontext abgewogen werden.''
** ''Wenn in einer Einrichtung neben der Landessprache auch Deutsch oder Englisch gesprochen wird, und beide Sprachen keine Amtssprache in dem Land sind.''
** ''Touristisch interessante zusätzliche Eigenschaft, die über die normale Bestimmung des Objektes hinausgeht (z.{{nnbsp}}B. wenn Imbissbude auch ein Planespotting-Hotspot ist.''
''Dieses Merkmal ist auf der Diskussionsseite (welcher?) unter „Objekte mit Alleinstellungsmerkmal“ zu dokumentieren. Dieser Abschnitt sollte nicht archiviert werden. Von der Ausnahme ausgeschlossen sind [[Wikivoyage:Unerwünschte Inhalte|Unerwünschte Inhalte]]. Ist es nicht angegeben, können entsprechende Einträge gelöscht werden.''
xxxxxxxxxxxxxxxx
*Dieser Vorschlag von "Der Fussi" steht damit hier zur Abstimmung.
*Es kann mit '''"Ja"'''{{Pro}}, '''"Nein"''' {{contra}} und '''"Enthaltung"''' {{neutral}} abgestimmt werden.
*Die Abstimmung endet So 14. Dezember, 23:59 Uhr mitteleuropäischer Zeit (MEZ=.
* {{Pro}} --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 01:14, 6. Dez. 2025 (CET)
* Unsere [[Wikivoyage:Regeln zur Entscheidungsfindung|Regeln zur Entscheidungsfindung]] sind war etwas komplizierter, aber darüber würde ich hinwegsehen, wenn wir damit vorwärtskommen, solange sich keiner beschwert. Alles gut. {{Pro}} -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 12:27, 6. Dez. 2025 (CET)
* {{Pro}} Pragmatischer Vorschlag, der allen einen Spielraum bietet. --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:07, 6. Dez. 2025 (CET)
* {{Pro}} - Nur eine kleine Verständnisfrage: Gilt die Regelung ab dem 14. Dezember dann einschließlich der in Klammern gesetzten Objekte? Nur damit ich weiß, ob ich diese ggf. in meinen bearbeiteten Artikel entfernen muss, wenn die Abstimmung "erfolgreich" war. --[[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 20:56, 7. Dez. 2025 (CET)
* {{neutral}} wenn man’s denn regeln muß. Wie wär’s mit Kurzfassung des Verordnungstextes (und das für alle): “be flexible” im Sinne von „Hirn einschalten“ bei der Auswahl? --[[Benutzer:Qualitätssicherung|Qualitätssicherung]] ([[Benutzer Diskussion:Qualitätssicherung|Diskussion]]) 01:14, 8. Dez. 2025 (CET)
*:@[[Benutzer:Qualitätssicherung|Qualitätssicherung]] Hirn einschalten funktioniert nicht. Sowas führt nur zu Endlosdiskussionen ohne Endergebnis, wie es seit Jahren auf WV gepflegt wird. Jeder fühlt sich da im Recht. Egal ob Pro oder Contra. [[Spezial:Beiträge/~2025-33216-75|~2025-33216-75]] ([[Benutzer Diskussion:~2025-33216-75|Diskussion]]) 11:38, 8. Dez. 2025 (CET)
*:Genau. "Hirn einschalten" funktioniert generell nicht, nicht nur auf WV. Dann gäbe es weniger Gerichtsverfahren, weniger Verschwörungstheorien, weniger Gewalt usw. usw. Vielleicht funktionieren ja auch einige/viele Hirne nur anders als andere. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 06:42, 22. Dez. 2025 (CET)
*: "Hirn einschalten" funktioniert auch nicht bei Hinrnlosen!--[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 13:22, 22. Dez. 2025 (CET)
==== Ergebnis der Abstimmung ====
Es haben 5 Benutzer ihre Stimme abgegeben. Dabei entfielen auf
* {{Pro}}: 4 Stimmen
* {{neutral}}: 1 Stimme
* {{contra}}: 0 Stimmen
Damit ist der Alternativorschlag angenommen und wird in [[Wikivoyage:Wohin damit]] sinngemäß eingefügt.--[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:44, 17. Jan. 2026 (CET)
:Ergänzung und Bitte an alle Benutzer:<br />
:: Zitat: ''Und bitte nicht fragen, wer jetzt nachträglich die ganzen Begründungen nachtragen soll. Wir sind alle entspannt und keiner, der die Regeln kennt, wird einen Lösch-Feldzug starten, wenn ein Eintrag augenscheinlich erstmal Sinn macht. Ansonsten rückfragen bzw. löschen und auf die Beschwerde warten und drüber reden. Dann aber über das konkrete Objekt selbst reden und keine Regeldiskussion führen. -- DerFussi 05:47, 4. Nov. 2025 (CET)''
:Danke! [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 11:06, 17. Jan. 2026 (CET)
== Offizielle Bestätigung meines Rücktrittes ==
Liebe Wikivoyager, gestern wurde meine Rücktrittsanfrage bzgl. der Administration bei Wikivoyage genehmigt und durchgeführt, daher werden ab sofort '''keine''' weiteren administrative Tätigkeiten/Hilfestellungen von meiner Seite aus möglich sein. Ich wollte es etwas offizieller und übersichtlicher gestalten als es wieder "unübersichtlich" im ANR der [[Wikivoyage:Nominierungen zum Administrator|Adminnominierung]] zu posten. Ich hoffe, dass das genehm ist. Weitere Informationen zur Rücktrittsbestätigung erhaltet ihr via Wikimedia [https://meta.wikimedia.org/wiki/Steward_requests/Permissions#Removal_of_access hier]. Vielen Dank für euer Verständnis. Beste Grüße aus dem sonnigen Südwesten. -- [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 17:48, 12. Mär. 2026 (CET)
:Alles klar. Schade. Für mich sind ja Admin-Tätigkeit und sich mit (sorry) so einem Scheiß rumschlagen getrennte Dinge. Inhaltliche Angelegenheiten sind ja kein Admin-Job. Für mich ist es ein herber Verlust. Hoffe, du bleibst uns als Autor erhalten. {{S|:'(}} -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 15:56, 13. Mär. 2026 (CET)
:: Es ist schade. Aber es ist deine Entscheidung. Trotzdem noch viel Freude bei der Arbeit in Wikivoyage. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:03, 14. Mär. 2026 (CET)
== Geändertes Aussehen des vCard-Editors ==
Mit Blick in die Zukunft habe ich das Aussehen vCard-Editors geändert. Das Ganze habe ich auf vier Seiten verteilt, womit auch eine größere Schrift möglich ist. Was die Zukunft anbetrifft, müssen wir eine Umstellung der Bibliotheken für die Dialoggestaltung vornehmen. Und dann ist man man das Aussehen schon gewohnt. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:03, 14. Mär. 2026 (CET)
: Und noch eine Neuerung: Man kann die Sonderzeichen (neben der Beschreibung) nun für alle Eingabezeilen verwenden. Einfach den Cursor in die entsprechende Zeile setzen und das gewünschte Zeichen drücken. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:05, 14. Mär. 2026 (CET)
::Danke, gefällt mir sehr gut {{S|applaus}}. Die Darstellung ist jetzt übersichtlicher als vorher. Auch die Verwendung der Sonderzeichen (insbes. geschützte Leerzeichen) in allen Eingabezeilen erleichtert die Arbeit. Hoffentlich werden diese zukünftig intensiver genutzt {{S|;)}}. [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:36, 14. Mär. 2026 (CET)
== 25 Jahre Wikipedia … und noch einen Grund mehr zum Feiern ==
Die Wikipedia begeht heute den [[w:Wikipedia:25 Jahre Wikipedia|25. Geburtstag]] der deutschsprachigen Wikipedia. Herzlichen Glückwunsch und weitere erfolgreiche Jahre.
Aber dies ist nicht der einzige Geburtstag in diesem Jahr. Am 10. Dezember 2026 feiert Wikivoyage sein 20jähriges Bestehen. Wir sollten dies auch gebührend feiern. Ich denke, dass es wenigstens ein persönliches Treffen geben sollte. Wenn jemand eine besondere Idee hat, so möge er sie hier mitteilen. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 16:59, 16. Mär. 2026 (CET)
* Gute Idee mit dem persönlichen Treffen! Da bin ich gerne dabei --[[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 17:26, 16. Mär. 2026 (CET)
* Den Glückwünschen an die deutsche Wikipedia möchte ich mich gern anschließen.
: Das Bestehen der Wikivoyage sollten wir tatsächlich feiern, auch wenn die Zahl der Aktiven relativ gering ist. Hier ein paar -unsortierte- Gedanken:
:* Der Zeitpunkt Dezember ist m.{{nnbsp}}E. relativ ungeeignet. Außenaktivitäten sind eingeschränkt, Lokalitäten wegen der Vorweihnachtszeit häufig ausgebucht, private Terminkalender oft voll. Besser wäre evtl. Herbst (Sep) 2026 oder Frühjahr 2027 (ist mir pers. zu weit weg)
:* Ort möglichst für alle gut erreichbar per Bahn oder Kfz. Für deutsche Teilnahmer ggf. [[Kassel]], wenn wir auch Österreicher und Schweizer einbeziehen wollen ggf. [[Würzburg]]? Oder: Ort eines noch zu wählenden ZdM?
:* Vorschlag Zeitpunkt und Ort: [[Regensburg]], WikiCon 2026 (Freitag, 18. bis Sonntag, d. 20. September 2026)
: Ich freue mich auf ein Treffen! --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 17:46, 16. Mär. 2026 (CET)
::Ich mache mich am 27.09. wieder auf in meine zweit Heimat und kehre erst 2027 zurück. Ort wäre mir egal. <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 19:42, 16. Mär. 2026 (CET)
* Regensburg? Sehr gut. Würzburg? Grandios, komme ich mit dem Fahrrad. --[[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 20:48, 16. Mär. 2026 (CET)
== Wohin damit − offene Diskussionen ==
Auf der Diskussionsseite von [[Wikivoyage Diskussion:Wohin damit|Wohin damit]] "schlummern" 2 Diskussionen, die vermutlich von den meisten unbemerkt verlaufen sind und daher mangels Teilnahme nicht abgeschlossen werden konnten, bzw. es gibt kein eindeutiges Ergebnis das in die Schlagwortliste einfließen könnte. Bitte seht euch doch mal die Diskussionen [[Wikivoyage Diskussion:Wohin damit#Kurtaxe (neu 2026)|'''Kurtaxe (neu 2026)''']] und [[Wikivoyage Diskussion:Wohin damit#Ärzte|'''Ärzte''']] an und beteiligt euch an der Diskussion. Bis Ende März d.{{nnbsp}}J. sollten wir eine Einigung gefunden haben. Danke im Voraus! --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 16:22, 19. Mär. 2026 (CET)
== Social-Media in der Quickbar-Ort ==
In der Quickbar von Ortsartikeln werden u.{{nnbsp}}a. auch anklickbare Social-Media-Symbole eingeblendet, allerdings ausschließlich wenn sie in Wikidata vorhanden sind. Zu den Symbolen gehört auch das „Hashtag“-Symbol. Der Klick darauf führt zu einer Linkliste. Allerdings führen wohl 90{{nnbsp}}% der Links ins Leere. Daher stellen sich die Fragen: Soll das „Hashtag“-Symbol weiterhin dort erscheinen? Wollen wir diesen zweifelhaften „Service“ unseren Lesern zumuten? Werden Hashtags heute überhaupt noch genutzt? Mein Vorschlag: Das „Hashtag“-Symbol sollte raus! Danke für Eure Meinung. --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 16:57, 19. Mär. 2026 (CET)
Beispiel: [[Kühlungsborn]]
:Die Hashtag-Nutzung ist, wie ich bereits sagte, eine Altersgruppenfrage. Durch Tikschrott wird das aber obsolet und der Klammeraffe (@) wird beliebter. -- [[Spezial:Beiträge/~2026-58111-0|~2026-58111-0]] ([[Benutzer Diskussion:~2026-58111-0|Diskussion]]) 17:18, 19. Mär. 2026 (CET)
::Mir ist das „Hashtag“-Symbol noch nie aufgefallen. Es scheint auch nicht sehr weit verbreitet zu sein. Ich brauche es nicht, aber als „Dinosaurier“ ist es wohl besser, wenn junge Mit-Autoren darüber entscheiden. [[Benutzer:DocWoKav|DocWoKav]] ([[Benutzer Diskussion:DocWoKav|Diskussion]]) 18:35, 19. Mär. 2026 (CET)
== Wikipedia-Kartenwerkstatt ist Geschichte ==
Wie die Headline bereits verrät, ist die [[w:Kartenwerkstatt|Kartenwerkstatt]] bei Wikipedia seit heute, den 28. März 2026 Geschichte. Den Grund kann man [[W:Wikipedia Diskussion:Kartenwerkstatt|hier]] entnehmen. Wikivoyager sind damit in Zukunft gezwungen ihre Anfragen in anderssprachigen Pendants zu stellen oder ihre gewünschten Karten in Eigenregie zu erstellen. -- [[Spezial:Beiträge/~2026-19309-80|~2026-19309-80]] ([[Benutzer Diskussion:~2026-19309-80|Diskussion]]) 20:28, 28. Mär. 2026 (CET)
:Es gibt ja noch die [[c:Commons:Graphic Lab/Map workshop|Kartenwerkstatt auf Commons]]. Dort hätte ich bisher meine Anfragen gestellt, da dort eine internationale Community tätig ist, und die Chance größer ist, für ein bestimmtes Land etwas zu bekommen. Ich glaube aber nicht, dass das für uns so prekäre Auswirkungen haben wird. Unsere statischen Karten beschränken sich auf Quickbar-Positionskarten und ein paar thematische Übersichtskarten. Wir nutzen ja mehr die dynamischen Karten der Kartographer-Erweiterung sowie Karten im Data-Namensraum auf Commons. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 22:43, 28. Mär. 2026 (CET)
::Das mag sein. In der Wunschliste der Kartenwerkstatt wurde allerdings unter anderem ein Kartenwunsch explizit für Wikivoyage von @[[Benutzer:Eduard47|Eduard47]] geäußert, die nun unerstellt archiviert wurde. Daher erschien mir eine Info für alle Beteiligten hier wichtig. -- [[Spezial:Beiträge/~2026-19593-67|~2026-19593-67]] ([[Benutzer Diskussion:~2026-19593-67|Diskussion]]) 05:23, 30. Mär. 2026 (CEST)
:::Ist ja völlig richtig. Habe ich oben das Danke vergessen? Mist. Sorry dafür. Hiermit nachgeholt. Es stimmt, ich habe gelegentlich auf die Kartenwerkstätten verwiesen, da wir selbst gar keine Manpower für sowas haben. Ob wir jemals eine bekommen haben? Bisher nichts gehört. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 07:46, 30. Mär. 2026 (CEST)
::: {{Ping|~2026-19593-67}} Für Dich zur Info: Wenn Du im [[w:Wikipedia:Kartenwerkstatt/Archiv/2025-12#Kartenwunsch: Lagekarte Harz|Archiv]] nachliest, dann wirst Du bemerken, dass die gewünschte Karte im Dezember 2025 erstellt wurde, und ich mich am 11. Dez. 2025 beim Ersteller [[Benutzer:NordNordWest|NNW]] bedankt habe! Die Karte findest Du seitdem in der Quickbar des Wikivoyage-Artikels [[Harz]]! Wenn recherchieren dann bitte richtig, sagt --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:27, 30. Mär. 2026 (CEST)
::::Geht's auch etwas freundlicher? -- [[Spezial:Beiträge/~2026-58111-0|~2026-58111-0]] ([[Benutzer Diskussion:~2026-58111-0|Diskussion]]) 14:39, 30. Mär. 2026 (CEST)
== Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) ==
Hello everyone,
This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>).
'''The Change:'''<br />
Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]].
We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''.
'''What You Need To Do:'''<br />
To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search.
'''Deadline:'''<br />
We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles.
Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[Benutzer:MediaWiki message delivery|MediaWiki message delivery]] ([[Benutzer Diskussion:MediaWiki message delivery|Diskussion]]) 19:11, 3. Apr. 2026 (CEST)
: {{Ping|ZI Jony}} It seems that [[:d:Property:P1846|P1846]] is [[:Kategorie:Wartung:Seiten,_die_Daten_von_Wikidata_benutzen|not used]] at the German Wikivoyage. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 06:59, 4. Apr. 2026 (CEST)
::@[[Benutzer:RolandUnger|RolandUnger]] thanks for your confirmation. [[Benutzer:ZI Jony|ZI Jony]] ([[Benutzer Diskussion:ZI Jony|Diskussion]]) 09:56, 4. Apr. 2026 (CEST)
== Hinweis auf laufende Diskussionen ==
Zu jedem Artikel gibt es eine Diskussionsseite. Insbesondere Diskussionen, bei denen eine größere Anzahl von Teilnehmern wünschenswert wäre, verlaufen diese leider immer wieder mangels Teilnahme ohne Ergebnis. Dieses liegt vermutlich auch daran, dass diese Diskussionen von vielen unbemerkt verlaufen. Nicht jeder hat die entsprechende Seite auf seiner Beobachtungsliste und der Blick in die [[Spezial:Letzte_Änderungen|Letzten Änderungen]] unterbleibt ebenfalls. Die [[Wikivoyage:Lounge|Lounge]] dagegen findet wesentlich stärkere Beachtung. Nicht jede Diskussion gehört in die Lounge, sondern eher auf die dem Thema zugehörige Diskussionsseite. Um dennoch eine größere Teilnehmerzahl zu erreichen schlage ich vor, in der Lounge als ersten Abschnitt (der sollte auch nicht archiviert werden) eine Auflistung aktueller Diskussionen einzurichten. In diesem Abschnitt sollten max. 10{{nnbsp}}Einträge mit wenigen Worten und einem Link auf eine aktuelle Diskussion hingewiesen werden. Nach etwa einem Monat kann der Hinweis gelöscht werden. Der Verfasser der Diskussion trägt den Hinweis ein und löscht ihn dann später auch wieder. Ein zusätzlicher Verwaltungsaufwand wird dadurch vermieden. Was hält die Community davon? --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:54, 16. Apr. 2026 (CEST)
:Ich halte das für eine sehr gute Idee, ja das stimmt, vieles verläuft im Sande, einfach nur weil es irgendwie untergeht [[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 23:32, 16. Apr. 2026 (CEST)
::Können wir probieren. Dazu ein paar Punkte mal lose eingeworfen.
::* Ich selbst habe eine leere Beobachtungsliste, beobachte also gar nichts, weder "meine" Artikel noch Projektnamensraum-Seiten. Ich überfliege nur die letzten Änderungen nach irgendwie "auffälligen Edits". Edits mir bekannter Autorennamen im Artikelnamensraum ignoriere ich im Regelfall sowieso.
::* Es dürfte kein Allheilmittel sein. Momentan gehe ich davon aus, dass die Leute, die Interesse auf Diskussionen haben, dieses auch tun und die Diskussion finden. Selbst IPs scheinen die eine oder andere Diskussion zu finden. Manche interessiert es gerade einfach nicht. Nur ein Beispiel ({{Ping|RolandUnger}}: Das ist kein Vorwurf :) ). Ich denke, dass RolandUnger alles mitbekommet und wirklich alles und jeden kontrolliert. Trotzdem ist er nicht bei jeder Diskussion dabei. Du musst einfach davon ausgehen, das nicht bei jeder Diskussion das Interesse oder die Priorität besteht. Manchmal ist wahrscheinlich auch keine Zeit. Ich selbst kämpfe zur Zeit mit etwas Burnout und komme über 10 einfache Edits am Tag (wenn überhaupt) nicht hinaus. Darüber hinaus habe ich noch die eine oder andere Baustelle in der Wikipedia (Death-Metal-Bands).
::* Diskutieren kann auch ermüden. Besonders auf die vielen "Wohin damit"-Anfragen könnten daher einige nicht immer Lust haben. Ich erinnere ja bekanntermaßen immer daran, wenigstens das bereits Diskutierte auch in aufbereitete Hinweise und Regeln zu gießen, was ja in der Vergangenheit oft vergessen wurde, würde aber mit neuen Diskussionen würde warten, bis etwas massiverer Redebedarf besteht und es zu Kloppereien kommt. Liegt aber bestimmt auch an meiner momentanen generellen Müdigkeit.
::Aufgrund der derzeit an zwei Händen abzählbaren Autorenschaft, kann ich mir kaum vorstellen, dass es zu mehr Beteiligung führen wird. Bei wachsender Community wäre es aber eine gute Idee, für Aufmerksamkeit zu sorgen. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 07:59, 17. Apr. 2026 (CEST)
im2f364187guy3dqmxc9dvndzhl5nup
1769194
1769144
2026-04-17T10:03:10Z
DerFussi
6
/* Hinweis auf laufende Diskussionen */ -Wortdopplung
1769194
wikitext
text/x-wiki
__NEWSECTIONLINK__ <!-- damit erzeugen wir einen "+"-Tab oben, das ermöglicht ein einfaches Hinzufügen eines neuen Diskussionsthemas
-->{{IstIn|Organisation}} __FORCETOC__
[[File:City Space Bar & Lounge.JPG|mini|City Space Bar & Lounge im Swissôtel Krasnye Holmy Moskau]]
Die '''Lounge''' bietet die Möglichkeit für allgemeine Diskussionen an zentraler Stelle.
Neben den Lounges der Sprachversionen von Wikivoyage gibt es die englischsprachige [[:mail:wikivoyage-l|Mailingliste Wikivoyage-l]] und die Seite '''[[meta:Wikivoyage/Lounge|Wikivoyage Lounge]] auf Meta''' für Diskussionen über alle Sprachversionen und die Beziehung zu anderen Wikimedia-Projekten.
Alte Beiträge (in der Regel Threads, die älter als 14 Tage sind) befinden sich im '''[[Wikivoyage:Lounge/Archiv|Archiv]]'''. — '''[{{FULLURL:Wikivoyage:Lounge|action=edit§ion=new}} Neue Beiträge bitte unten anfügen]'''.
<!--hier geht's los-->
==Zur Erinnerung [[#zwei_Abstimmung_Lebensmittelmärkte]] ==
Ich hoffe das Thema ist dann am 14.12 konstruktiv mit Vorschlag von der Fussi erledigt.
Abstimmung bis 14.12 ist hier: [[#zwei_Abstimmung_Lebensmittelmärkte]] --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 10:42, 6. Dez. 2025 (CET)
=== Abstimmung Lebensmittelmärkte ===
Folgender Textabschnitt unten soll '''neu zum Thema [[Wikivoyage:Wohin_damit#L|"L" Lebensmittelgeschäft]]''' und bei '''[[Wikivoyage:Wohin_damit#D|"D" Drogerie, Drogeriemarkt]]''' aufgenommen werden. Der neue Text ersetzt jeweils die bisherigen Textabschnitte.
Der neue Textabschnitt:
"Hinweise zu Versorgungseinrichtungen mit Lebensmitteln und Drogerieartikeln nur in kleinen Orten (Abschnitt Einkaufen), ohne Nennung der Firmennamen (Handelsketten) und nur mit Marker ohne weitere Details, d. h. auch ohne Adresse und ohne Öffnungszeiten. Die nächste größere Einkaufsmöglichkeit befindet sich in XYZ."
Bitte mit Wort "Ja", "Nein" oder "Enthaltung" abstimmen. Die Abstimmung endet am Mittwoch 15. Oktober 2025 um 23:59 Uhr Mitteleuropäische Zeit.
'''Abstimmung:'''
* '''Ja''' --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 15:47, 8. Okt. 2025 (CEST)
:'''Ja''' -- [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 16:22, 8. Okt. 2025 (CEST)
* '''Nein''' das ist eine Wischi-Waschi-Formulierung. Ein Eintrag ohne Name Adresse ist sinnlos für Leser. --[[Benutzer:Qualitätssicherung|Qualitätssicherung]] ([[Benutzer Diskussion:Qualitätssicherung|Diskussion]]) 23:14, 8. Okt. 2025 (CEST)
:: Nachtrag: als ich vor ein paar Jahren in Australien war, waren die wenigen ALDI-Süd (''sic'') dort eine Erlösung im Vergleich zu den australischen Ketten, mit mieser Qualität und horrenden Preisen. Sind dort für Reisende wichtig um nicht zu sagen lebenwichtig. ;-)
* '''Nein''' -- Dies ist eher sinnlos. Wenn es schon kaum was gibt, hilft dies auch bloß nicht. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 07:30, 9. Okt. 2025 (CEST)
*:* Ja --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 20:27, 13. Okt. 2025 (CEST)
* Eher '''Nein''' aus zwei Gründen. '''1.''' Dann könnte man auch einfach einen Marker direkt im Mapframe angeben, wie ich es in [[Singapur/Southern Islands]] bei den Toiletten, Aussichtspunkten und Stränden gemacht habe - keines dieser Objekte steht im Text. Das Symbol wäre dann {{Code|grocery}}. Das ist ja bisher gar nicht geregelt und bisher alles erlaubt. Weil ist nix anderes als dort oben steht. Und etwas Namenloses im Text macht keinen Sinn. Wäre vielleicht generell eine gute Alternative. '''2.''' Wäre eine allgemeine Augenmaß-Formulierung nicht flexibler? Ist bestimmt nur eine Frage der Zeit, dass wir über ein anderes Verbot mit einen "Aber" reden.
:PS1: ließe sich auch gut auf die oft diskutiereten Apotheken anwenden, die jetzt noch generell zugelassen sind.
:PS2: Auf [[Wikivoyage:Wohin_damit|Wohin_damit]] gibt es auch "K wie [[Wikivoyage:Wohin_damit#K|Kiosk]]" -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 05:32, 14. Okt. 2025 (CEST)
=== 2. Abstimmung Lebensmittelmärkte ===
Ich hätte einen Alternativvorschlag.
* verbotene Objekte bleiben pauschal erstmal verboten, also Supermärkte, Friseure, Tankstellen und was in weiteren Diskussionen noch dazukommt (Imbissbuden, Apotheken, Fast-Food, Kantinen, Kioske)
* In die Einleitung von [[Wikivoyage:Wohin damit]] kommt, eine Klausel. ''Auf dieser Seite als nicht erwünscht eingestufte Objekte können ausnahmsweise in Artikeln gelistet werden, wenn sie ein Alleinstellungsmerkmal besitzen. Als ein solches Merkmal kann beispielsweise folgendes gelten:''
** ''Überregionale Bekanntheit''
** ''Einzig vorhandenes Objekt in weitem Umkreis. Das kann je nach Weltregion ein unterschiedlicher Radius sein und sollte im entsprechenden Kontext abgewogen werden.''
** ''Wenn in einer Einrichtung neben der Landessprache auch Deutsch oder Englisch gesprochen wird, und beide Sprachen keine Amtssprache in dem Land sind.''
** ''Touristisch interessante zusätzliche Eigenschaft, die über die normale Bestimmung des Objektes hinausgeht (z.{{nnbsp}}B. wenn Imbissbude auch ein Planespotting-Hotspot ist.''
''Dieses Merkmal ist auf der Diskussionsseite unter „Objekte mit Alleinstellungsmerknmal“ zu dokumentieren. Dieser Abschnitt sollte nicht archiviert werden. Von der Ausnahme ausgeschlossen sind [[Wikivoyage:Unerwünschte Inhalte|Unerwünschte Inhalte]]. Ist es nicht angegeben, können entsprechende Einträge gelöscht werden.''
{{Ping|Dirk Schmidt|RaveDog|Qualitätssicherung|RolandUnger|Eduard47}} Wäre das eine Idee? Und bitte nicht fragen, wer jetzt nachträglich die ganzen Begründungen nachtragen soll. Wir sind alle entspannt und keiner, der die Regeln kennt, wird einen Lösch-Feldzug starten, wenn ein Eintrag augenscheinlich erstmal Sinn macht. Ansonsten rückfragen bzw. löschen und auf die Beschwerde warten und drüber reden. Dann aber über das konkrete Objekt selbst reden und keine Regeldiskussion führen. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 05:47, 4. Nov. 2025 (CET)
:Ich geb mal spät noch meinen Senf dazu, auch als jemand der bereits von Ravedogs Löschungen betroffen war: Würde Imbisse stehen lassen, wir sollten nicht nur die 3-Gänge-Küche abdecken. McDoof etc in Ausnahmen (einziger in weiter Umgebung, Touristischer Ort, etc.) ansonsten nein würde ich ebenfalls mitgehen.
:Wir sind kein Telefonbuch, aber etwas Augenmaß ist immer gut.
:Mfg [[Benutzer:Deutschereditor|Deutschereditor]] ([[Benutzer Diskussion:Deutschereditor|Diskussion]]) 21:46, 17. Nov. 2025 (CET)
PS: Künftige Diskussionen könnten sich einfacher gestalten, da man nur noch entscheiden muss, ob eine Objektart unter die Regel "Verbot + Ausnahme" fallen soll. So könnte es obsolet werden in ellenlangen Diskussionen Szenarien zu entwerfen, wo man ein verbotenes Objekt doch brauchen könnte, wenn man sich einig ist, dass es im Regelfall nicht nach Wikivoyage gehört. Wenn man keine Ausnahme duldet, kommt es zusätzlich auf die Liste der [[Wikivoyage:Unerwünschte Inhalte|unerwünschten Inhalte]]. Ansonsten kann man alles, was nur auf [[Wikivoyage:Wohin damit|Wohin damit]] unerwünscht ist, im Ausnahmefall angeben. Und wenn nun einer den Friseurladen eines Star-Friseurs listen will.. Ok, von mir aus. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 06:53, 4. Nov. 2025 (CET)
:''Ja, prinzipiell ist das gute Idee!'' Mein Vorschlag der 1. Abstimmung war da eh nicht umfassend genug (Kioske, Tankstellen ja nicht dabei usw.). Also die Idee das so zu klären ist sinnvoll. Das bei potentiellen "Massenobjekten" grundlegend auszusortieren, aber in berechtigten Ausnahmen zuzulassen dann genau pragmatisch sinnvoll: Denn das lässt genau die pragmatischen Einzelfallentscheidungen die im sinne des Reisenden als Selbstversorger sinnvoll sind. Und die genaue Definition einer Ausnahme sollte man den Autoren überlassen, bzw. das jeweils bei Bedarf vor Ort am Artikel dann klären (Wenn z. B. ein Kioskfan anfängt Kioskliste irgendwo anzulegen...) Bei Lebensmittelmärkten wären solche Ausnahmen dann z. B. kleine Ferienorte und die Minimärklte - siehe der eine Lebensmittelmarkt in Oberhof oder in Spiekeroog, die drei Minimärkte auf den drei Dörfern auf Amrum... Wichtig wäre, dann das bei Ausnahme ein kompletter V-Card-Eintrag mit Objektname, Öffnungszeiten usw. zulässig ist. ''Ich denke damit hätten wir eine möglichst flexible pragmatische Regelung für möglichst alle strittigen Objektbereiche (auch für pot. neue Fälle in der Zukunft)'' --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 07:54, 4. Nov. 2025 (CET)
::Sofern der Punkt bei den Inseln als Alleinstellungsmerkmal grundlegend dargestellt wird. Ansonsten haben wir das Problem, dass jeder Autor ein Ketten/Franchise-Etablissement in seinem bearbeitenden Ort als überaus wichtig ansieht. Wenn deiner Meinung nach nur die Meinung des Autoren zählt (wenn ich dich richtig verstanden habe), dann ist die ganze Abstimmung hier total sinnfrei. Denn jedem fällt irgendeinen Stuss ein, warum Dieses oder Jenes wichtig zu erwähnen ist, wohingegen jedem genau das Gegenteilige einfallen könnte, was dagegen spricht. Am Ende haben wir wieder nur eine Diskutiererei, wie eh und je und nix, aber auch gar nix gewonnen.
::Wie bereits bei ''wohin damit'' gesagt, isses mir mittlerweile wurscht, was am Ende für eine Regelung bei Supermärkten/Apotheken/Fressbuden/etc. aufgestellt wird. Ich beuge mich der Mehrheit und ändere entsprechend meine bereits bearbeiteten Artikel anschließend nach und nach um. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 08:37, 4. Nov. 2025 (CET)
:::Die Argumente überzeugen! Fussis Vorschlag ist pragmatisch und auch praktikabel. Einzig beim Punkt ''"Dieses Merkmal ist auf der Diskussionsseite unter „Objekte mit Alleinstellungsmerknmal“ zu dokumentieren"'' befürchte ich Diskussionen. Könnte man dort ggf. eine Checkliste hinterlegen? Dann würde die Formulierung von Ausnahmen einfacher und eindeutiger. [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:11, 4. Nov. 2025 (CET)
::::Ich habe oben bewusst "beispielsweise" bei den Merkmalen geschrieben. Daher denke ich, eine Checkliste macht (noch) keinen Sinn. Eine Liste vorgeben würde ich erst, wenn es zu vielen ausufernden Kloppereien kommt. Weil die Erstellung dieser Liste lässt uns wieder genauso ewig diskutieren. Aber das glaube ich einfach noch nicht. Man sollte das erstmal abwarten. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:16, 4. Nov. 2025 (CET)
:::Das ist doch jetzt aber auch wieder so ein konstruiertes Szenario. Sowas lässt sich immer finden wenn man gegen etwas sein will. Wie auch woanders angemerkt, ist nicht ein alleiniger Autor jetzt "Bestimmer". Dann muss halt die Community den konkreten Fall diskutieren. Und ja, wenn ein Troll hier MacDonalds einfügt und Gründe bloß erfindet, gehört es trotzdem gelöscht. Meine Intention ist, dass bei einer konkreten Löschung nicht wie jetzt elende lange ergebnisfreie Regeldiskussionen geführt werden (wie bisher), sondern dass man sich auf den konkreten Fall konzentriert.
:::Um Missverständnissen vorzubeugen können wir gerne reinschreiben, aber für mich war das klar. ''Im Zweifelsfall entscheidet die Community über die Zulässigkeit des Alleinstellungsmerkmals''. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:13, 4. Nov. 2025 (CET)
:::Eine andere Idee habe ich nicht, dann bin auch ich raus... -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 10:18, 4. Nov. 2025 (CET)
::::@DerFussi: Pardon, ich hatte vergessen ein At-Zeichen zu setzen. Meine Überlegungen gingen an Dirk, nicht an dich. Aber ich glaube, auch ihn hatte ich falsch verstanden. Meine Gedanken mögen vielleicht konstruiert wirken, ich tendiere aber gern dazu alle Eventualitäten mit einzubeziehen, um zukünftige Probleme zu vermeiden.
::::Meine Meinung sollte aber in diesem speziellen Fall weniger gewichtet werden als die der anderen, da ich bereits schrieb, dass ich mich der Mehrheit beuge. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 22:36, 4. Nov. 2025 (CET)
:::::Ich wüsste auch nicht, wie man die Praktikabilität eines solchen Ansatzes abschätzen könnte, als es einfach mal zu testen. Wenn es doch wieder elende Diskussionen und Stress gibt... dann ratlos. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 04:44, 5. Nov. 2025 (CET)
::::::Frage nach weiteren 14 Tagen: Was machen wir nun? Mein Vorschlag: Fussis Alternativvorschlag annehmen und umsetzen! [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 12:09, 19. Nov. 2025 (CET)
:::::::{{pro}} - Stimme zu; auch damit das Thema beendet ist. Anfang dieser Woche hat wieder ein Benutzer Imbisse eingepflegt. Ein Ergebnis für die Themen Fast-Food/Imbissbuden, Supermärkte und Apotheken, ob Ja oder Nein, ist nach vielen Monaten längst überfällig. [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 10:02, 21. Nov. 2025 (CET)
=== zwei Abstimmung_Lebensmittelmärkte ===
Hier die 2. formale Abstimmung "Lebenmittelmärkte und weitere POI", Textvorschlag von "DerFussi" oben. Die 1. Abstimmung ging mit einem "Patt" aus. Daher hier dieser Alternativvorschlag.
xxxxxxxxxxx
'''Alternativvorschlag zur Abstimmung:'''
* verbotene Objekte bleiben pauschal erstmal verboten, also Supermärkte, Friseure, Tankstellen und was in weiteren Diskussionen noch dazukommt (Imbissbuden, Apotheken, Fast-Food, Kantinen, Kioske)
* In die Einleitung von [[Wikivoyage:Wohin damit]] kommt, eine Klausel. ''Auf dieser Seite als nicht erwünscht eingestufte Objekte können ausnahmsweise in Artikeln gelistet werden, wenn sie ein Alleinstellungsmerkmal besitzen. Als ein solches Merkmal kann beispielsweise folgendes gelten:''
** ''Überregionale Bekanntheit''
** ''Einzig vorhandenes Objekt in weitem Umkreis. Das kann je nach Weltregion ein unterschiedlicher Radius sein und sollte im entsprechenden Kontext abgewogen werden.''
** ''Wenn in einer Einrichtung neben der Landessprache auch Deutsch oder Englisch gesprochen wird, und beide Sprachen keine Amtssprache in dem Land sind.''
** ''Touristisch interessante zusätzliche Eigenschaft, die über die normale Bestimmung des Objektes hinausgeht (z.{{nnbsp}}B. wenn Imbissbude auch ein Planespotting-Hotspot ist.''
''Dieses Merkmal ist auf der Diskussionsseite (welcher?) unter „Objekte mit Alleinstellungsmerkmal“ zu dokumentieren. Dieser Abschnitt sollte nicht archiviert werden. Von der Ausnahme ausgeschlossen sind [[Wikivoyage:Unerwünschte Inhalte|Unerwünschte Inhalte]]. Ist es nicht angegeben, können entsprechende Einträge gelöscht werden.''
xxxxxxxxxxxxxxxx
*Dieser Vorschlag von "Der Fussi" steht damit hier zur Abstimmung.
*Es kann mit '''"Ja"'''{{Pro}}, '''"Nein"''' {{contra}} und '''"Enthaltung"''' {{neutral}} abgestimmt werden.
*Die Abstimmung endet So 14. Dezember, 23:59 Uhr mitteleuropäischer Zeit (MEZ=.
* {{Pro}} --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 01:14, 6. Dez. 2025 (CET)
* Unsere [[Wikivoyage:Regeln zur Entscheidungsfindung|Regeln zur Entscheidungsfindung]] sind war etwas komplizierter, aber darüber würde ich hinwegsehen, wenn wir damit vorwärtskommen, solange sich keiner beschwert. Alles gut. {{Pro}} -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 12:27, 6. Dez. 2025 (CET)
* {{Pro}} Pragmatischer Vorschlag, der allen einen Spielraum bietet. --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:07, 6. Dez. 2025 (CET)
* {{Pro}} - Nur eine kleine Verständnisfrage: Gilt die Regelung ab dem 14. Dezember dann einschließlich der in Klammern gesetzten Objekte? Nur damit ich weiß, ob ich diese ggf. in meinen bearbeiteten Artikel entfernen muss, wenn die Abstimmung "erfolgreich" war. --[[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 20:56, 7. Dez. 2025 (CET)
* {{neutral}} wenn man’s denn regeln muß. Wie wär’s mit Kurzfassung des Verordnungstextes (und das für alle): “be flexible” im Sinne von „Hirn einschalten“ bei der Auswahl? --[[Benutzer:Qualitätssicherung|Qualitätssicherung]] ([[Benutzer Diskussion:Qualitätssicherung|Diskussion]]) 01:14, 8. Dez. 2025 (CET)
*:@[[Benutzer:Qualitätssicherung|Qualitätssicherung]] Hirn einschalten funktioniert nicht. Sowas führt nur zu Endlosdiskussionen ohne Endergebnis, wie es seit Jahren auf WV gepflegt wird. Jeder fühlt sich da im Recht. Egal ob Pro oder Contra. [[Spezial:Beiträge/~2025-33216-75|~2025-33216-75]] ([[Benutzer Diskussion:~2025-33216-75|Diskussion]]) 11:38, 8. Dez. 2025 (CET)
*:Genau. "Hirn einschalten" funktioniert generell nicht, nicht nur auf WV. Dann gäbe es weniger Gerichtsverfahren, weniger Verschwörungstheorien, weniger Gewalt usw. usw. Vielleicht funktionieren ja auch einige/viele Hirne nur anders als andere. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 06:42, 22. Dez. 2025 (CET)
*: "Hirn einschalten" funktioniert auch nicht bei Hinrnlosen!--[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 13:22, 22. Dez. 2025 (CET)
==== Ergebnis der Abstimmung ====
Es haben 5 Benutzer ihre Stimme abgegeben. Dabei entfielen auf
* {{Pro}}: 4 Stimmen
* {{neutral}}: 1 Stimme
* {{contra}}: 0 Stimmen
Damit ist der Alternativorschlag angenommen und wird in [[Wikivoyage:Wohin damit]] sinngemäß eingefügt.--[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:44, 17. Jan. 2026 (CET)
:Ergänzung und Bitte an alle Benutzer:<br />
:: Zitat: ''Und bitte nicht fragen, wer jetzt nachträglich die ganzen Begründungen nachtragen soll. Wir sind alle entspannt und keiner, der die Regeln kennt, wird einen Lösch-Feldzug starten, wenn ein Eintrag augenscheinlich erstmal Sinn macht. Ansonsten rückfragen bzw. löschen und auf die Beschwerde warten und drüber reden. Dann aber über das konkrete Objekt selbst reden und keine Regeldiskussion führen. -- DerFussi 05:47, 4. Nov. 2025 (CET)''
:Danke! [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 11:06, 17. Jan. 2026 (CET)
== Offizielle Bestätigung meines Rücktrittes ==
Liebe Wikivoyager, gestern wurde meine Rücktrittsanfrage bzgl. der Administration bei Wikivoyage genehmigt und durchgeführt, daher werden ab sofort '''keine''' weiteren administrative Tätigkeiten/Hilfestellungen von meiner Seite aus möglich sein. Ich wollte es etwas offizieller und übersichtlicher gestalten als es wieder "unübersichtlich" im ANR der [[Wikivoyage:Nominierungen zum Administrator|Adminnominierung]] zu posten. Ich hoffe, dass das genehm ist. Weitere Informationen zur Rücktrittsbestätigung erhaltet ihr via Wikimedia [https://meta.wikimedia.org/wiki/Steward_requests/Permissions#Removal_of_access hier]. Vielen Dank für euer Verständnis. Beste Grüße aus dem sonnigen Südwesten. -- [[Benutzer:RaveDog|RaveDog]] ([[Benutzer Diskussion:RaveDog|Diskussion]]) 17:48, 12. Mär. 2026 (CET)
:Alles klar. Schade. Für mich sind ja Admin-Tätigkeit und sich mit (sorry) so einem Scheiß rumschlagen getrennte Dinge. Inhaltliche Angelegenheiten sind ja kein Admin-Job. Für mich ist es ein herber Verlust. Hoffe, du bleibst uns als Autor erhalten. {{S|:'(}} -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 15:56, 13. Mär. 2026 (CET)
:: Es ist schade. Aber es ist deine Entscheidung. Trotzdem noch viel Freude bei der Arbeit in Wikivoyage. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:03, 14. Mär. 2026 (CET)
== Geändertes Aussehen des vCard-Editors ==
Mit Blick in die Zukunft habe ich das Aussehen vCard-Editors geändert. Das Ganze habe ich auf vier Seiten verteilt, womit auch eine größere Schrift möglich ist. Was die Zukunft anbetrifft, müssen wir eine Umstellung der Bibliotheken für die Dialoggestaltung vornehmen. Und dann ist man man das Aussehen schon gewohnt. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:03, 14. Mär. 2026 (CET)
: Und noch eine Neuerung: Man kann die Sonderzeichen (neben der Beschreibung) nun für alle Eingabezeilen verwenden. Einfach den Cursor in die entsprechende Zeile setzen und das gewünschte Zeichen drücken. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:05, 14. Mär. 2026 (CET)
::Danke, gefällt mir sehr gut {{S|applaus}}. Die Darstellung ist jetzt übersichtlicher als vorher. Auch die Verwendung der Sonderzeichen (insbes. geschützte Leerzeichen) in allen Eingabezeilen erleichtert die Arbeit. Hoffentlich werden diese zukünftig intensiver genutzt {{S|;)}}. [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:36, 14. Mär. 2026 (CET)
== 25 Jahre Wikipedia … und noch einen Grund mehr zum Feiern ==
Die Wikipedia begeht heute den [[w:Wikipedia:25 Jahre Wikipedia|25. Geburtstag]] der deutschsprachigen Wikipedia. Herzlichen Glückwunsch und weitere erfolgreiche Jahre.
Aber dies ist nicht der einzige Geburtstag in diesem Jahr. Am 10. Dezember 2026 feiert Wikivoyage sein 20jähriges Bestehen. Wir sollten dies auch gebührend feiern. Ich denke, dass es wenigstens ein persönliches Treffen geben sollte. Wenn jemand eine besondere Idee hat, so möge er sie hier mitteilen. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 16:59, 16. Mär. 2026 (CET)
* Gute Idee mit dem persönlichen Treffen! Da bin ich gerne dabei --[[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 17:26, 16. Mär. 2026 (CET)
* Den Glückwünschen an die deutsche Wikipedia möchte ich mich gern anschließen.
: Das Bestehen der Wikivoyage sollten wir tatsächlich feiern, auch wenn die Zahl der Aktiven relativ gering ist. Hier ein paar -unsortierte- Gedanken:
:* Der Zeitpunkt Dezember ist m.{{nnbsp}}E. relativ ungeeignet. Außenaktivitäten sind eingeschränkt, Lokalitäten wegen der Vorweihnachtszeit häufig ausgebucht, private Terminkalender oft voll. Besser wäre evtl. Herbst (Sep) 2026 oder Frühjahr 2027 (ist mir pers. zu weit weg)
:* Ort möglichst für alle gut erreichbar per Bahn oder Kfz. Für deutsche Teilnahmer ggf. [[Kassel]], wenn wir auch Österreicher und Schweizer einbeziehen wollen ggf. [[Würzburg]]? Oder: Ort eines noch zu wählenden ZdM?
:* Vorschlag Zeitpunkt und Ort: [[Regensburg]], WikiCon 2026 (Freitag, 18. bis Sonntag, d. 20. September 2026)
: Ich freue mich auf ein Treffen! --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 17:46, 16. Mär. 2026 (CET)
::Ich mache mich am 27.09. wieder auf in meine zweit Heimat und kehre erst 2027 zurück. Ort wäre mir egal. <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 19:42, 16. Mär. 2026 (CET)
* Regensburg? Sehr gut. Würzburg? Grandios, komme ich mit dem Fahrrad. --[[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 20:48, 16. Mär. 2026 (CET)
== Wohin damit − offene Diskussionen ==
Auf der Diskussionsseite von [[Wikivoyage Diskussion:Wohin damit|Wohin damit]] "schlummern" 2 Diskussionen, die vermutlich von den meisten unbemerkt verlaufen sind und daher mangels Teilnahme nicht abgeschlossen werden konnten, bzw. es gibt kein eindeutiges Ergebnis das in die Schlagwortliste einfließen könnte. Bitte seht euch doch mal die Diskussionen [[Wikivoyage Diskussion:Wohin damit#Kurtaxe (neu 2026)|'''Kurtaxe (neu 2026)''']] und [[Wikivoyage Diskussion:Wohin damit#Ärzte|'''Ärzte''']] an und beteiligt euch an der Diskussion. Bis Ende März d.{{nnbsp}}J. sollten wir eine Einigung gefunden haben. Danke im Voraus! --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 16:22, 19. Mär. 2026 (CET)
== Social-Media in der Quickbar-Ort ==
In der Quickbar von Ortsartikeln werden u.{{nnbsp}}a. auch anklickbare Social-Media-Symbole eingeblendet, allerdings ausschließlich wenn sie in Wikidata vorhanden sind. Zu den Symbolen gehört auch das „Hashtag“-Symbol. Der Klick darauf führt zu einer Linkliste. Allerdings führen wohl 90{{nnbsp}}% der Links ins Leere. Daher stellen sich die Fragen: Soll das „Hashtag“-Symbol weiterhin dort erscheinen? Wollen wir diesen zweifelhaften „Service“ unseren Lesern zumuten? Werden Hashtags heute überhaupt noch genutzt? Mein Vorschlag: Das „Hashtag“-Symbol sollte raus! Danke für Eure Meinung. --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 16:57, 19. Mär. 2026 (CET)
Beispiel: [[Kühlungsborn]]
:Die Hashtag-Nutzung ist, wie ich bereits sagte, eine Altersgruppenfrage. Durch Tikschrott wird das aber obsolet und der Klammeraffe (@) wird beliebter. -- [[Spezial:Beiträge/~2026-58111-0|~2026-58111-0]] ([[Benutzer Diskussion:~2026-58111-0|Diskussion]]) 17:18, 19. Mär. 2026 (CET)
::Mir ist das „Hashtag“-Symbol noch nie aufgefallen. Es scheint auch nicht sehr weit verbreitet zu sein. Ich brauche es nicht, aber als „Dinosaurier“ ist es wohl besser, wenn junge Mit-Autoren darüber entscheiden. [[Benutzer:DocWoKav|DocWoKav]] ([[Benutzer Diskussion:DocWoKav|Diskussion]]) 18:35, 19. Mär. 2026 (CET)
== Wikipedia-Kartenwerkstatt ist Geschichte ==
Wie die Headline bereits verrät, ist die [[w:Kartenwerkstatt|Kartenwerkstatt]] bei Wikipedia seit heute, den 28. März 2026 Geschichte. Den Grund kann man [[W:Wikipedia Diskussion:Kartenwerkstatt|hier]] entnehmen. Wikivoyager sind damit in Zukunft gezwungen ihre Anfragen in anderssprachigen Pendants zu stellen oder ihre gewünschten Karten in Eigenregie zu erstellen. -- [[Spezial:Beiträge/~2026-19309-80|~2026-19309-80]] ([[Benutzer Diskussion:~2026-19309-80|Diskussion]]) 20:28, 28. Mär. 2026 (CET)
:Es gibt ja noch die [[c:Commons:Graphic Lab/Map workshop|Kartenwerkstatt auf Commons]]. Dort hätte ich bisher meine Anfragen gestellt, da dort eine internationale Community tätig ist, und die Chance größer ist, für ein bestimmtes Land etwas zu bekommen. Ich glaube aber nicht, dass das für uns so prekäre Auswirkungen haben wird. Unsere statischen Karten beschränken sich auf Quickbar-Positionskarten und ein paar thematische Übersichtskarten. Wir nutzen ja mehr die dynamischen Karten der Kartographer-Erweiterung sowie Karten im Data-Namensraum auf Commons. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 22:43, 28. Mär. 2026 (CET)
::Das mag sein. In der Wunschliste der Kartenwerkstatt wurde allerdings unter anderem ein Kartenwunsch explizit für Wikivoyage von @[[Benutzer:Eduard47|Eduard47]] geäußert, die nun unerstellt archiviert wurde. Daher erschien mir eine Info für alle Beteiligten hier wichtig. -- [[Spezial:Beiträge/~2026-19593-67|~2026-19593-67]] ([[Benutzer Diskussion:~2026-19593-67|Diskussion]]) 05:23, 30. Mär. 2026 (CEST)
:::Ist ja völlig richtig. Habe ich oben das Danke vergessen? Mist. Sorry dafür. Hiermit nachgeholt. Es stimmt, ich habe gelegentlich auf die Kartenwerkstätten verwiesen, da wir selbst gar keine Manpower für sowas haben. Ob wir jemals eine bekommen haben? Bisher nichts gehört. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 07:46, 30. Mär. 2026 (CEST)
::: {{Ping|~2026-19593-67}} Für Dich zur Info: Wenn Du im [[w:Wikipedia:Kartenwerkstatt/Archiv/2025-12#Kartenwunsch: Lagekarte Harz|Archiv]] nachliest, dann wirst Du bemerken, dass die gewünschte Karte im Dezember 2025 erstellt wurde, und ich mich am 11. Dez. 2025 beim Ersteller [[Benutzer:NordNordWest|NNW]] bedankt habe! Die Karte findest Du seitdem in der Quickbar des Wikivoyage-Artikels [[Harz]]! Wenn recherchieren dann bitte richtig, sagt --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 10:27, 30. Mär. 2026 (CEST)
::::Geht's auch etwas freundlicher? -- [[Spezial:Beiträge/~2026-58111-0|~2026-58111-0]] ([[Benutzer Diskussion:~2026-58111-0|Diskussion]]) 14:39, 30. Mär. 2026 (CEST)
== Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) ==
Hello everyone,
This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>).
'''The Change:'''<br />
Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]].
We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''.
'''What You Need To Do:'''<br />
To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search.
'''Deadline:'''<br />
We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles.
Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[Benutzer:MediaWiki message delivery|MediaWiki message delivery]] ([[Benutzer Diskussion:MediaWiki message delivery|Diskussion]]) 19:11, 3. Apr. 2026 (CEST)
: {{Ping|ZI Jony}} It seems that [[:d:Property:P1846|P1846]] is [[:Kategorie:Wartung:Seiten,_die_Daten_von_Wikidata_benutzen|not used]] at the German Wikivoyage. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 06:59, 4. Apr. 2026 (CEST)
::@[[Benutzer:RolandUnger|RolandUnger]] thanks for your confirmation. [[Benutzer:ZI Jony|ZI Jony]] ([[Benutzer Diskussion:ZI Jony|Diskussion]]) 09:56, 4. Apr. 2026 (CEST)
== Hinweis auf laufende Diskussionen ==
Zu jedem Artikel gibt es eine Diskussionsseite. Insbesondere Diskussionen, bei denen eine größere Anzahl von Teilnehmern wünschenswert wäre, verlaufen diese leider immer wieder mangels Teilnahme ohne Ergebnis. Dieses liegt vermutlich auch daran, dass diese Diskussionen von vielen unbemerkt verlaufen. Nicht jeder hat die entsprechende Seite auf seiner Beobachtungsliste und der Blick in die [[Spezial:Letzte_Änderungen|Letzten Änderungen]] unterbleibt ebenfalls. Die [[Wikivoyage:Lounge|Lounge]] dagegen findet wesentlich stärkere Beachtung. Nicht jede Diskussion gehört in die Lounge, sondern eher auf die dem Thema zugehörige Diskussionsseite. Um dennoch eine größere Teilnehmerzahl zu erreichen schlage ich vor, in der Lounge als ersten Abschnitt (der sollte auch nicht archiviert werden) eine Auflistung aktueller Diskussionen einzurichten. In diesem Abschnitt sollten max. 10{{nnbsp}}Einträge mit wenigen Worten und einem Link auf eine aktuelle Diskussion hingewiesen werden. Nach etwa einem Monat kann der Hinweis gelöscht werden. Der Verfasser der Diskussion trägt den Hinweis ein und löscht ihn dann später auch wieder. Ein zusätzlicher Verwaltungsaufwand wird dadurch vermieden. Was hält die Community davon? --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:54, 16. Apr. 2026 (CEST)
:Ich halte das für eine sehr gute Idee, ja das stimmt, vieles verläuft im Sande, einfach nur weil es irgendwie untergeht [[Benutzer:Scholless|Scholless]] ([[Benutzer Diskussion:Scholless|Diskussion]]) 23:32, 16. Apr. 2026 (CEST)
::Können wir probieren. Dazu ein paar Punkte mal lose eingeworfen.
::* Ich selbst habe eine leere Beobachtungsliste, beobachte also gar nichts, weder "meine" Artikel noch Projektnamensraum-Seiten. Ich überfliege nur die letzten Änderungen nach irgendwie "auffälligen Edits". Edits mir bekannter Autorennamen im Artikelnamensraum ignoriere ich im Regelfall sowieso.
::* Es dürfte kein Allheilmittel sein. Momentan gehe ich davon aus, dass die Leute, die Interesse auf Diskussionen haben, dieses auch tun und die Diskussion finden. Selbst IPs scheinen die eine oder andere Diskussion zu finden. Manche interessiert es gerade einfach nicht. Nur ein Beispiel ({{Ping|RolandUnger}}: Das ist kein Vorwurf :) ). Ich denke, dass RolandUnger alles mitbekommet und wirklich alles und jeden kontrolliert. Trotzdem ist er nicht bei jeder Diskussion dabei. Du musst einfach davon ausgehen, das nicht bei jeder Diskussion das Interesse oder die Priorität besteht. Manchmal ist wahrscheinlich auch keine Zeit. Ich selbst kämpfe zur Zeit mit etwas Burnout und komme über 10 einfache Edits am Tag (wenn überhaupt) nicht hinaus. Darüber hinaus habe ich noch die eine oder andere Baustelle in der Wikipedia (Death-Metal-Bands).
::* Diskutieren kann auch ermüden. Besonders auf die vielen "Wohin damit"-Anfragen könnten daher einige nicht immer Lust haben. Ich erinnere ja bekanntermaßen immer daran, wenigstens das bereits Diskutierte auch in aufbereitete Hinweise und Regeln zu gießen, was ja in der Vergangenheit oft vergessen wurde, würde aber mit neuen Diskussionen warten, bis etwas massiverer Redebedarf besteht und es zu Kloppereien kommt. Liegt aber bestimmt auch an meiner momentanen generellen Müdigkeit.
::Aufgrund der derzeit an zwei Händen abzählbaren Autorenschaft, kann ich mir kaum vorstellen, dass es zu mehr Beteiligung führen wird. Bei wachsender Community wäre es aber eine gute Idee, für Aufmerksamkeit zu sorgen. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 07:59, 17. Apr. 2026 (CEST)
e6ocosdvdg51pfun8pc3kycn2pnv23b
Rhein-Radweg
0
7394
1768994
1768965
2026-04-16T12:55:39Z
Dirk Schmidt
15181
/* Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) */
1768994
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der '''[[Rheintal-Weg|Rheintal-Weg]]''' auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den [[Badischer Weinradweg|Badischen Weinradweg]] ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
[[Image:Rhein Eltville 4179.jpg|thumb|Uferweg am Rhein vor Eltville im [[Rheingau]], frei für Radfahrer. Der Rhein-Radweg u. R3 führen entlang der Hauptstraße ohne Rheinblick.]]
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile von ihm wollen wir dem Radfahrer näher bringen.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Tauberradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
aufgrund des 600 m hohen Anstiegs über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} sollte man die Zahnradbahn in Richtung Disentis / Chur bis {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} fahren.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
Hier verläuft der Rhein-Radweg fast vollständig auf dem Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Karlsruhe]]''' - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] '''[[Wörth am Rhein]]''' (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* Technikmuseum Speyer
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Speyer]]''' - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life. · Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]'''
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:Bestand:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos)
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
=== Digitale Karten ===
* [https://de.eurovelo.com/ev15 '''Rheinradweg''' gesamt, in Französisch, Englisch, Deutsch und Niederländisch · Eurovelo]
* [https://cycling.waymarkedtrails.org/#route?id=2171555 Waymarked Trails: '''Gesamtkarte des Rhein-Radwegs''' auf Basis von OpenStreetMap-Daten.]
* [https://map.veloland.ch/?lang=de&route=2 Veloland Schweiz: interaktive Karte Schweizer Nationalroute 2: '''Rhein-Route''']
* [https://www.radfahrenimelsass.de/de/radwege/eurovelo-routen/der-rheinradweg-eurovelo-15-39.html Rhein-Radweg im '''Elsass''' (deutsch) · Alsace à vélo]
* [https://www.tourismus-bw.de/Media/Touren/Rhein-Radweg-von-Konstanz-nach-Basel Rhein-Radweg am '''Hochrhein''' · Tourismus BW]
* [https://www.tourismus-bw.de/Natur/Radfahren-in-Baden-Wuerttemberg/Landesradfernwege/Veloroute-Rhein Rhein-Radweg am '''Oberrhein''' · Tourismus BW]
* [https://radroutenplaner.hessen.de/map/?info=2&id=30 Rhein-Radweg in '''Hessen''' · Radroutenplaner Hessen]
* [https://www.radwanderland.de/application/routenplaner?routing=radrouten&radroute=RFW/Rhein-Radweg '''Rheinland Pfalz''' · radwanderland.de]
* [https://www.nrw-tourismus.de/rheinradweg Rhein-Radweg '''Nordrhein-Westfalen''' · Niederrhein Tourismus GmbH] · Über die Symbole auf der Karte sind Detail-Infos anklickbar.
* [http://radservice.radroutenplaner.nrw.de/rrp/nrw/cgi?lang=DE&showThematicRoute=Rheinradweg%20-%20Veloroute%20Rhein&view=296614,5422279,467200,5750612 '''NRW'''] · für NRW und Teile von Rheinland-Pfalz. · Weitere Radwege können ausgewählt und Entfernung, Höhenprofil und Höhenmeter berechnet werden.
* [https://www.hollandfahrradland.de/radfernwege/rijnfietsroute '''Rijnfietsroute''' in den Niederlanden]
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
jyvw2ixlk50y981i4hzaw8tfihyop5i
1768997
1768994
2026-04-16T13:03:47Z
Dirk Schmidt
15181
/* Oberrhein: Basel – Mainz (etwa 400 km) */
1768997
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der '''[[Rheintal-Weg|Rheintal-Weg]]''' auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den [[Badischer Weinradweg|Badischen Weinradweg]] ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
[[Image:Rhein Eltville 4179.jpg|thumb|Uferweg am Rhein vor Eltville im [[Rheingau]], frei für Radfahrer. Der Rhein-Radweg u. R3 führen entlang der Hauptstraße ohne Rheinblick.]]
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile von ihm wollen wir dem Radfahrer näher bringen.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Tauberradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
aufgrund des 600 m hohen Anstiegs über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} sollte man die Zahnradbahn in Richtung Disentis / Chur bis {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} fahren.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
Hier verläuft der Rhein-Radweg fast vollständig auf dem Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Karlsruhe | type= town | wikidata = Q1040}} - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Wörth am Rhein | type= town | wikidata = Q522165}} (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Speyer | type= town | wikidata = Q6829}} - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life, Technikmuseum Speyer. Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]'''
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
* '''Rheinbrücken Worms''' bei Rosengarten. Bitte sich hier an die Einbahnregleung der Radweg halten.
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
* {{Marker | name = Worms | type= town | wikidata = Q3852}}
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:Bestand:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos)
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
=== Digitale Karten ===
* [https://de.eurovelo.com/ev15 '''Rheinradweg''' gesamt, in Französisch, Englisch, Deutsch und Niederländisch · Eurovelo]
* [https://cycling.waymarkedtrails.org/#route?id=2171555 Waymarked Trails: '''Gesamtkarte des Rhein-Radwegs''' auf Basis von OpenStreetMap-Daten.]
* [https://map.veloland.ch/?lang=de&route=2 Veloland Schweiz: interaktive Karte Schweizer Nationalroute 2: '''Rhein-Route''']
* [https://www.radfahrenimelsass.de/de/radwege/eurovelo-routen/der-rheinradweg-eurovelo-15-39.html Rhein-Radweg im '''Elsass''' (deutsch) · Alsace à vélo]
* [https://www.tourismus-bw.de/Media/Touren/Rhein-Radweg-von-Konstanz-nach-Basel Rhein-Radweg am '''Hochrhein''' · Tourismus BW]
* [https://www.tourismus-bw.de/Natur/Radfahren-in-Baden-Wuerttemberg/Landesradfernwege/Veloroute-Rhein Rhein-Radweg am '''Oberrhein''' · Tourismus BW]
* [https://radroutenplaner.hessen.de/map/?info=2&id=30 Rhein-Radweg in '''Hessen''' · Radroutenplaner Hessen]
* [https://www.radwanderland.de/application/routenplaner?routing=radrouten&radroute=RFW/Rhein-Radweg '''Rheinland Pfalz''' · radwanderland.de]
* [https://www.nrw-tourismus.de/rheinradweg Rhein-Radweg '''Nordrhein-Westfalen''' · Niederrhein Tourismus GmbH] · Über die Symbole auf der Karte sind Detail-Infos anklickbar.
* [http://radservice.radroutenplaner.nrw.de/rrp/nrw/cgi?lang=DE&showThematicRoute=Rheinradweg%20-%20Veloroute%20Rhein&view=296614,5422279,467200,5750612 '''NRW'''] · für NRW und Teile von Rheinland-Pfalz. · Weitere Radwege können ausgewählt und Entfernung, Höhenprofil und Höhenmeter berechnet werden.
* [https://www.hollandfahrradland.de/radfernwege/rijnfietsroute '''Rijnfietsroute''' in den Niederlanden]
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
oxhlokxzy6pqbxl9ks3q6ne97vmror3
1769015
1768997
2026-04-16T14:02:45Z
Dirk Schmidt
15181
/* linksrheinisch: Neuf-Brisach - Straßburg: 77 km */
1769015
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der '''[[Rheintal-Weg|Rheintal-Weg]]''' auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den [[Badischer Weinradweg|Badischen Weinradweg]] ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
[[Image:Rhein Eltville 4179.jpg|thumb|Uferweg am Rhein vor Eltville im [[Rheingau]], frei für Radfahrer. Der Rhein-Radweg u. R3 führen entlang der Hauptstraße ohne Rheinblick.]]
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile von ihm wollen wir dem Radfahrer näher bringen.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Tauberradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
aufgrund des 600 m hohen Anstiegs über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} sollte man die Zahnradbahn in Richtung Disentis / Chur bis {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} fahren.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
[[Datei:02f-Eurovelo 15 (NgnL)-04064.jpg|mini|EV15 Südlich Artzenheim im Elsass. Im Hintergrund die Kirche von Artzenheim. Am Horizont die Vogesen. Aufgrund des trockenen Klimas müssen hier Felder im Sommer bewässert werden.]]
[[Datei:02f-Eurovelo 15 (NgnL)-00792.jpg|mini|EV15 am reizvollen Rhein-Rhone-Kanal. Der historische Kanal führt direkt nach Strassburg.]]
Hier verläuft der Rhein-Radweg als EV15 in großen Teilen der Etappem auf dem reizvollen Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Karlsruhe | type= town | wikidata = Q1040}} - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Wörth am Rhein | type= town | wikidata = Q522165}} (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Speyer | type= town | wikidata = Q6829}} - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life, Technikmuseum Speyer. Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]'''
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
* '''Rheinbrücken Worms''' bei Rosengarten. Bitte sich hier an die Einbahnregleung der Radweg halten.
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
* {{Marker | name = Worms | type= town | wikidata = Q3852}}
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:Bestand:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos)
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
=== Digitale Karten ===
* [https://de.eurovelo.com/ev15 '''Rheinradweg''' gesamt, in Französisch, Englisch, Deutsch und Niederländisch · Eurovelo]
* [https://cycling.waymarkedtrails.org/#route?id=2171555 Waymarked Trails: '''Gesamtkarte des Rhein-Radwegs''' auf Basis von OpenStreetMap-Daten.]
* [https://map.veloland.ch/?lang=de&route=2 Veloland Schweiz: interaktive Karte Schweizer Nationalroute 2: '''Rhein-Route''']
* [https://www.radfahrenimelsass.de/de/radwege/eurovelo-routen/der-rheinradweg-eurovelo-15-39.html Rhein-Radweg im '''Elsass''' (deutsch) · Alsace à vélo]
* [https://www.tourismus-bw.de/Media/Touren/Rhein-Radweg-von-Konstanz-nach-Basel Rhein-Radweg am '''Hochrhein''' · Tourismus BW]
* [https://www.tourismus-bw.de/Natur/Radfahren-in-Baden-Wuerttemberg/Landesradfernwege/Veloroute-Rhein Rhein-Radweg am '''Oberrhein''' · Tourismus BW]
* [https://radroutenplaner.hessen.de/map/?info=2&id=30 Rhein-Radweg in '''Hessen''' · Radroutenplaner Hessen]
* [https://www.radwanderland.de/application/routenplaner?routing=radrouten&radroute=RFW/Rhein-Radweg '''Rheinland Pfalz''' · radwanderland.de]
* [https://www.nrw-tourismus.de/rheinradweg Rhein-Radweg '''Nordrhein-Westfalen''' · Niederrhein Tourismus GmbH] · Über die Symbole auf der Karte sind Detail-Infos anklickbar.
* [http://radservice.radroutenplaner.nrw.de/rrp/nrw/cgi?lang=DE&showThematicRoute=Rheinradweg%20-%20Veloroute%20Rhein&view=296614,5422279,467200,5750612 '''NRW'''] · für NRW und Teile von Rheinland-Pfalz. · Weitere Radwege können ausgewählt und Entfernung, Höhenprofil und Höhenmeter berechnet werden.
* [https://www.hollandfahrradland.de/radfernwege/rijnfietsroute '''Rijnfietsroute''' in den Niederlanden]
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
olyzaq4wmkaversdshm9towtdpsgyab
1769022
1769015
2026-04-16T14:34:10Z
Dirk Schmidt
15181
/* Reisezeit */
1769022
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der '''[[Rheintal-Weg|Rheintal-Weg]]''' auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den [[Badischer Weinradweg|Badischen Weinradweg]] ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
[[Image:Rhein Eltville 4179.jpg|thumb|Uferweg am Rhein vor Eltville im [[Rheingau]], frei für Radfahrer. Der Rhein-Radweg u. R3 führen entlang der Hauptstraße ohne Rheinblick.]]
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile von ihm wollen wir dem Radfahrer näher bringen.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Rheinradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
aufgrund des 600 m hohen Anstiegs über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} sollte man die Zahnradbahn in Richtung Disentis / Chur bis {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} fahren.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
[[Datei:02f-Eurovelo 15 (NgnL)-04064.jpg|mini|EV15 Südlich Artzenheim im Elsass. Im Hintergrund die Kirche von Artzenheim. Am Horizont die Vogesen. Aufgrund des trockenen Klimas müssen hier Felder im Sommer bewässert werden.]]
[[Datei:02f-Eurovelo 15 (NgnL)-00792.jpg|mini|EV15 am reizvollen Rhein-Rhone-Kanal. Der historische Kanal führt direkt nach Strassburg.]]
Hier verläuft der Rhein-Radweg als EV15 in großen Teilen der Etappem auf dem reizvollen Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Karlsruhe | type= town | wikidata = Q1040}} - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Wörth am Rhein | type= town | wikidata = Q522165}} (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Speyer | type= town | wikidata = Q6829}} - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life, Technikmuseum Speyer. Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]'''
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
* '''Rheinbrücken Worms''' bei Rosengarten. Bitte sich hier an die Einbahnregleung der Radweg halten.
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
* {{Marker | name = Worms | type= town | wikidata = Q3852}}
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:Bestand:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos)
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
=== Digitale Karten ===
* [https://de.eurovelo.com/ev15 '''Rheinradweg''' gesamt, in Französisch, Englisch, Deutsch und Niederländisch · Eurovelo]
* [https://cycling.waymarkedtrails.org/#route?id=2171555 Waymarked Trails: '''Gesamtkarte des Rhein-Radwegs''' auf Basis von OpenStreetMap-Daten.]
* [https://map.veloland.ch/?lang=de&route=2 Veloland Schweiz: interaktive Karte Schweizer Nationalroute 2: '''Rhein-Route''']
* [https://www.radfahrenimelsass.de/de/radwege/eurovelo-routen/der-rheinradweg-eurovelo-15-39.html Rhein-Radweg im '''Elsass''' (deutsch) · Alsace à vélo]
* [https://www.tourismus-bw.de/Media/Touren/Rhein-Radweg-von-Konstanz-nach-Basel Rhein-Radweg am '''Hochrhein''' · Tourismus BW]
* [https://www.tourismus-bw.de/Natur/Radfahren-in-Baden-Wuerttemberg/Landesradfernwege/Veloroute-Rhein Rhein-Radweg am '''Oberrhein''' · Tourismus BW]
* [https://radroutenplaner.hessen.de/map/?info=2&id=30 Rhein-Radweg in '''Hessen''' · Radroutenplaner Hessen]
* [https://www.radwanderland.de/application/routenplaner?routing=radrouten&radroute=RFW/Rhein-Radweg '''Rheinland Pfalz''' · radwanderland.de]
* [https://www.nrw-tourismus.de/rheinradweg Rhein-Radweg '''Nordrhein-Westfalen''' · Niederrhein Tourismus GmbH] · Über die Symbole auf der Karte sind Detail-Infos anklickbar.
* [http://radservice.radroutenplaner.nrw.de/rrp/nrw/cgi?lang=DE&showThematicRoute=Rheinradweg%20-%20Veloroute%20Rhein&view=296614,5422279,467200,5750612 '''NRW'''] · für NRW und Teile von Rheinland-Pfalz. · Weitere Radwege können ausgewählt und Entfernung, Höhenprofil und Höhenmeter berechnet werden.
* [https://www.hollandfahrradland.de/radfernwege/rijnfietsroute '''Rijnfietsroute''' in den Niederlanden]
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
i81r6w8ahv1wzlh9f7saj752nbtp4gq
1769023
1769022
2026-04-16T14:37:33Z
Dirk Schmidt
15181
/* Hintergrund */
1769023
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der '''[[Rheintal-Weg|Rheintal-Weg]]''' auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den [[Badischer Weinradweg|Badischen Weinradweg]] ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
[[Image:Rhein Eltville 4179.jpg|thumb|Uferweg am Rhein vor Eltville im [[Rheingau]], frei für Radfahrer. Der Rhein-Radweg u. R3 führen entlang der Hauptstraße ohne Rheinblick.]]
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile sollen hier aufgezeigt werden.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Rheinradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
aufgrund des 600 m hohen Anstiegs über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} sollte man die Zahnradbahn in Richtung Disentis / Chur bis {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} fahren.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
[[Datei:02f-Eurovelo 15 (NgnL)-04064.jpg|mini|EV15 Südlich Artzenheim im Elsass. Im Hintergrund die Kirche von Artzenheim. Am Horizont die Vogesen. Aufgrund des trockenen Klimas müssen hier Felder im Sommer bewässert werden.]]
[[Datei:02f-Eurovelo 15 (NgnL)-00792.jpg|mini|EV15 am reizvollen Rhein-Rhone-Kanal. Der historische Kanal führt direkt nach Strassburg.]]
Hier verläuft der Rhein-Radweg als EV15 in großen Teilen der Etappem auf dem reizvollen Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Karlsruhe | type= town | wikidata = Q1040}} - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Wörth am Rhein | type= town | wikidata = Q522165}} (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Speyer | type= town | wikidata = Q6829}} - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life, Technikmuseum Speyer. Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]'''
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
* '''Rheinbrücken Worms''' bei Rosengarten. Bitte sich hier an die Einbahnregleung der Radweg halten.
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
* {{Marker | name = Worms | type= town | wikidata = Q3852}}
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:Bestand:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos)
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
=== Digitale Karten ===
* [https://de.eurovelo.com/ev15 '''Rheinradweg''' gesamt, in Französisch, Englisch, Deutsch und Niederländisch · Eurovelo]
* [https://cycling.waymarkedtrails.org/#route?id=2171555 Waymarked Trails: '''Gesamtkarte des Rhein-Radwegs''' auf Basis von OpenStreetMap-Daten.]
* [https://map.veloland.ch/?lang=de&route=2 Veloland Schweiz: interaktive Karte Schweizer Nationalroute 2: '''Rhein-Route''']
* [https://www.radfahrenimelsass.de/de/radwege/eurovelo-routen/der-rheinradweg-eurovelo-15-39.html Rhein-Radweg im '''Elsass''' (deutsch) · Alsace à vélo]
* [https://www.tourismus-bw.de/Media/Touren/Rhein-Radweg-von-Konstanz-nach-Basel Rhein-Radweg am '''Hochrhein''' · Tourismus BW]
* [https://www.tourismus-bw.de/Natur/Radfahren-in-Baden-Wuerttemberg/Landesradfernwege/Veloroute-Rhein Rhein-Radweg am '''Oberrhein''' · Tourismus BW]
* [https://radroutenplaner.hessen.de/map/?info=2&id=30 Rhein-Radweg in '''Hessen''' · Radroutenplaner Hessen]
* [https://www.radwanderland.de/application/routenplaner?routing=radrouten&radroute=RFW/Rhein-Radweg '''Rheinland Pfalz''' · radwanderland.de]
* [https://www.nrw-tourismus.de/rheinradweg Rhein-Radweg '''Nordrhein-Westfalen''' · Niederrhein Tourismus GmbH] · Über die Symbole auf der Karte sind Detail-Infos anklickbar.
* [http://radservice.radroutenplaner.nrw.de/rrp/nrw/cgi?lang=DE&showThematicRoute=Rheinradweg%20-%20Veloroute%20Rhein&view=296614,5422279,467200,5750612 '''NRW'''] · für NRW und Teile von Rheinland-Pfalz. · Weitere Radwege können ausgewählt und Entfernung, Höhenprofil und Höhenmeter berechnet werden.
* [https://www.hollandfahrradland.de/radfernwege/rijnfietsroute '''Rijnfietsroute''' in den Niederlanden]
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
s3qp4ou8q0v6y9rbwhsbu77vnzb5gmg
1769133
1769023
2026-04-17T04:52:28Z
RolandUnger
3
/* Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) */ Bild nicht vorhanden
1769133
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der '''[[Rheintal-Weg|Rheintal-Weg]]''' auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den [[Badischer Weinradweg|Badischen Weinradweg]] ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
[[Image:Rhein Eltville 4179.jpg|thumb|Uferweg am Rhein vor Eltville im [[Rheingau]], frei für Radfahrer. Der Rhein-Radweg u. R3 führen entlang der Hauptstraße ohne Rheinblick.]]
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile sollen hier aufgezeigt werden.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Rheinradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
aufgrund des 600 m hohen Anstiegs über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} sollte man die Zahnradbahn in Richtung Disentis / Chur bis {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} fahren.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
[[Datei:02f-Eurovelo 15 (NgnL)-04064.jpg|mini|EV15 Südlich Artzenheim im Elsass. Im Hintergrund die Kirche von Artzenheim. Am Horizont die Vogesen. Aufgrund des trockenen Klimas müssen hier Felder im Sommer bewässert werden.]]
[[Datei:02f-Eurovelo 15 (NgnL)-00792.jpg|mini|EV15 am reizvollen Rhein-Rhone-Kanal. Der historische Kanal führt direkt nach Strassburg.]]
Hier verläuft der Rhein-Radweg als EV15 in großen Teilen der Etappem auf dem reizvollen Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Karlsruhe | type= town | wikidata = Q1040}} - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Wörth am Rhein | type= town | wikidata = Q522165}} (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Speyer | type= town | wikidata = Q6829}} - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life, Technikmuseum Speyer. Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]'''
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
* '''Rheinbrücken Worms''' bei Rosengarten. Bitte sich hier an die Einbahnregleung der Radweg halten.
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
* {{Marker | name = Worms | type= town | wikidata = Q3852}}
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos)
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
=== Digitale Karten ===
* [https://de.eurovelo.com/ev15 '''Rheinradweg''' gesamt, in Französisch, Englisch, Deutsch und Niederländisch · Eurovelo]
* [https://cycling.waymarkedtrails.org/#route?id=2171555 Waymarked Trails: '''Gesamtkarte des Rhein-Radwegs''' auf Basis von OpenStreetMap-Daten.]
* [https://map.veloland.ch/?lang=de&route=2 Veloland Schweiz: interaktive Karte Schweizer Nationalroute 2: '''Rhein-Route''']
* [https://www.radfahrenimelsass.de/de/radwege/eurovelo-routen/der-rheinradweg-eurovelo-15-39.html Rhein-Radweg im '''Elsass''' (deutsch) · Alsace à vélo]
* [https://www.tourismus-bw.de/Media/Touren/Rhein-Radweg-von-Konstanz-nach-Basel Rhein-Radweg am '''Hochrhein''' · Tourismus BW]
* [https://www.tourismus-bw.de/Natur/Radfahren-in-Baden-Wuerttemberg/Landesradfernwege/Veloroute-Rhein Rhein-Radweg am '''Oberrhein''' · Tourismus BW]
* [https://radroutenplaner.hessen.de/map/?info=2&id=30 Rhein-Radweg in '''Hessen''' · Radroutenplaner Hessen]
* [https://www.radwanderland.de/application/routenplaner?routing=radrouten&radroute=RFW/Rhein-Radweg '''Rheinland Pfalz''' · radwanderland.de]
* [https://www.nrw-tourismus.de/rheinradweg Rhein-Radweg '''Nordrhein-Westfalen''' · Niederrhein Tourismus GmbH] · Über die Symbole auf der Karte sind Detail-Infos anklickbar.
* [http://radservice.radroutenplaner.nrw.de/rrp/nrw/cgi?lang=DE&showThematicRoute=Rheinradweg%20-%20Veloroute%20Rhein&view=296614,5422279,467200,5750612 '''NRW'''] · für NRW und Teile von Rheinland-Pfalz. · Weitere Radwege können ausgewählt und Entfernung, Höhenprofil und Höhenmeter berechnet werden.
* [https://www.hollandfahrradland.de/radfernwege/rijnfietsroute '''Rijnfietsroute''' in den Niederlanden]
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
cafxy0zkitxldjvq9qpdbshl074rs23
1769145
1769133
2026-04-17T06:17:58Z
Dirk Schmidt
15181
/* rechtsrheinisch Speyer – Mannheim – Worms */
1769145
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der '''[[Rheintal-Weg|Rheintal-Weg]]''' auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den [[Badischer Weinradweg|Badischen Weinradweg]] ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
[[Image:Rhein Eltville 4179.jpg|thumb|Uferweg am Rhein vor Eltville im [[Rheingau]], frei für Radfahrer. Der Rhein-Radweg u. R3 führen entlang der Hauptstraße ohne Rheinblick.]]
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile sollen hier aufgezeigt werden.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Rheinradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
aufgrund des 600 m hohen Anstiegs über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} sollte man die Zahnradbahn in Richtung Disentis / Chur bis {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} fahren.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
[[Datei:02f-Eurovelo 15 (NgnL)-04064.jpg|mini|EV15 Südlich Artzenheim im Elsass. Im Hintergrund die Kirche von Artzenheim. Am Horizont die Vogesen. Aufgrund des trockenen Klimas müssen hier Felder im Sommer bewässert werden.]]
[[Datei:02f-Eurovelo 15 (NgnL)-00792.jpg|mini|EV15 am reizvollen Rhein-Rhone-Kanal. Der historische Kanal führt direkt nach Strassburg.]]
Hier verläuft der Rhein-Radweg als EV15 in großen Teilen der Etappem auf dem reizvollen Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Karlsruhe | type= town | wikidata = Q1040}} - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Wörth am Rhein | type= town | wikidata = Q522165}} (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Speyer | type= town | wikidata = Q6829}} - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life, Technikmuseum Speyer. Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]''' - Größte Stadt in der [[Kurpflaz]], Wahrzeichen ist der Wasserturm in der Innenstadt, Schloss (heute von der Uni genutzt), [Luisenpark], Anschluss an den [[Neckartal-Radweg]] Richtung [[Heidelberg]].
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
* '''Rheinbrücken Worms''' bei Rosengarten. Bitte sich hier an die Einbahnregleung der Radweg halten.
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
* {{Marker | name = Worms | type= town | wikidata = Q3852}}
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos)
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
=== Digitale Karten ===
* [https://de.eurovelo.com/ev15 '''Rheinradweg''' gesamt, in Französisch, Englisch, Deutsch und Niederländisch · Eurovelo]
* [https://cycling.waymarkedtrails.org/#route?id=2171555 Waymarked Trails: '''Gesamtkarte des Rhein-Radwegs''' auf Basis von OpenStreetMap-Daten.]
* [https://map.veloland.ch/?lang=de&route=2 Veloland Schweiz: interaktive Karte Schweizer Nationalroute 2: '''Rhein-Route''']
* [https://www.radfahrenimelsass.de/de/radwege/eurovelo-routen/der-rheinradweg-eurovelo-15-39.html Rhein-Radweg im '''Elsass''' (deutsch) · Alsace à vélo]
* [https://www.tourismus-bw.de/Media/Touren/Rhein-Radweg-von-Konstanz-nach-Basel Rhein-Radweg am '''Hochrhein''' · Tourismus BW]
* [https://www.tourismus-bw.de/Natur/Radfahren-in-Baden-Wuerttemberg/Landesradfernwege/Veloroute-Rhein Rhein-Radweg am '''Oberrhein''' · Tourismus BW]
* [https://radroutenplaner.hessen.de/map/?info=2&id=30 Rhein-Radweg in '''Hessen''' · Radroutenplaner Hessen]
* [https://www.radwanderland.de/application/routenplaner?routing=radrouten&radroute=RFW/Rhein-Radweg '''Rheinland Pfalz''' · radwanderland.de]
* [https://www.nrw-tourismus.de/rheinradweg Rhein-Radweg '''Nordrhein-Westfalen''' · Niederrhein Tourismus GmbH] · Über die Symbole auf der Karte sind Detail-Infos anklickbar.
* [http://radservice.radroutenplaner.nrw.de/rrp/nrw/cgi?lang=DE&showThematicRoute=Rheinradweg%20-%20Veloroute%20Rhein&view=296614,5422279,467200,5750612 '''NRW'''] · für NRW und Teile von Rheinland-Pfalz. · Weitere Radwege können ausgewählt und Entfernung, Höhenprofil und Höhenmeter berechnet werden.
* [https://www.hollandfahrradland.de/radfernwege/rijnfietsroute '''Rijnfietsroute''' in den Niederlanden]
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
f4jy29l6pm8kp503rog12u5utyqc3vs
1769150
1769145
2026-04-17T06:43:54Z
Dirk Schmidt
15181
/* linksrheinisch: Neuf-Brisach - Straßburg: 77 km */
1769150
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der '''[[Rheintal-Weg|Rheintal-Weg]]''' auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den [[Badischer Weinradweg|Badischen Weinradweg]] ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
[[Image:Rhein Eltville 4179.jpg|thumb|Uferweg am Rhein vor Eltville im [[Rheingau]], frei für Radfahrer. Der Rhein-Radweg u. R3 führen entlang der Hauptstraße ohne Rheinblick.]]
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile sollen hier aufgezeigt werden.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Rheinradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
aufgrund des 600 m hohen Anstiegs über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} sollte man die Zahnradbahn in Richtung Disentis / Chur bis {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} fahren.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
[[Datei:02f-Eurovelo 15 (NgnL)-04064.jpg|mini|EV15 Südlich Artzenheim im Elsass. Im Hintergrund die Kirche von Artzenheim. Am Horizont die Vogesen. Aufgrund des trockenen Klimas müssen hier Felder im Sommer bewässert werden.]]
[[Datei:02f-Eurovelo 15 (NgnL)-00792.jpg|mini|EV15 am reizvollen Rhein-Rhone-Kanal. Der historische Kanal führt direkt nach Strassburg.]]
Hier verläuft der Rhein-Radweg als EV15 in großen Teilen der Etappem auf dem reizvollen Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena (EV5)|Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Karlsruhe | type= town | wikidata = Q1040}} - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Wörth am Rhein | type= town | wikidata = Q522165}} (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Speyer | type= town | wikidata = Q6829}} - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life, Technikmuseum Speyer. Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]''' - Größte Stadt in der [[Kurpflaz]], Wahrzeichen ist der Wasserturm in der Innenstadt, Schloss (heute von der Uni genutzt), [Luisenpark], Anschluss an den [[Neckartal-Radweg]] Richtung [[Heidelberg]].
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
* '''Rheinbrücken Worms''' bei Rosengarten. Bitte sich hier an die Einbahnregleung der Radweg halten.
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
* {{Marker | name = Worms | type= town | wikidata = Q3852}}
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos)
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
=== Digitale Karten ===
* [https://de.eurovelo.com/ev15 '''Rheinradweg''' gesamt, in Französisch, Englisch, Deutsch und Niederländisch · Eurovelo]
* [https://cycling.waymarkedtrails.org/#route?id=2171555 Waymarked Trails: '''Gesamtkarte des Rhein-Radwegs''' auf Basis von OpenStreetMap-Daten.]
* [https://map.veloland.ch/?lang=de&route=2 Veloland Schweiz: interaktive Karte Schweizer Nationalroute 2: '''Rhein-Route''']
* [https://www.radfahrenimelsass.de/de/radwege/eurovelo-routen/der-rheinradweg-eurovelo-15-39.html Rhein-Radweg im '''Elsass''' (deutsch) · Alsace à vélo]
* [https://www.tourismus-bw.de/Media/Touren/Rhein-Radweg-von-Konstanz-nach-Basel Rhein-Radweg am '''Hochrhein''' · Tourismus BW]
* [https://www.tourismus-bw.de/Natur/Radfahren-in-Baden-Wuerttemberg/Landesradfernwege/Veloroute-Rhein Rhein-Radweg am '''Oberrhein''' · Tourismus BW]
* [https://radroutenplaner.hessen.de/map/?info=2&id=30 Rhein-Radweg in '''Hessen''' · Radroutenplaner Hessen]
* [https://www.radwanderland.de/application/routenplaner?routing=radrouten&radroute=RFW/Rhein-Radweg '''Rheinland Pfalz''' · radwanderland.de]
* [https://www.nrw-tourismus.de/rheinradweg Rhein-Radweg '''Nordrhein-Westfalen''' · Niederrhein Tourismus GmbH] · Über die Symbole auf der Karte sind Detail-Infos anklickbar.
* [http://radservice.radroutenplaner.nrw.de/rrp/nrw/cgi?lang=DE&showThematicRoute=Rheinradweg%20-%20Veloroute%20Rhein&view=296614,5422279,467200,5750612 '''NRW'''] · für NRW und Teile von Rheinland-Pfalz. · Weitere Radwege können ausgewählt und Entfernung, Höhenprofil und Höhenmeter berechnet werden.
* [https://www.hollandfahrradland.de/radfernwege/rijnfietsroute '''Rijnfietsroute''' in den Niederlanden]
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
lclirh3jta318u3zant2a14xkz7dbwz
1769151
1769150
2026-04-17T06:47:48Z
Dirk Schmidt
15181
/* Literatur- und Kartenhinweise */ dig. Karten aufgeräumt auf off. überregionale Infos beschränkt
1769151
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der '''[[Rheintal-Weg|Rheintal-Weg]]''' auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den [[Badischer Weinradweg|Badischen Weinradweg]] ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
[[Image:Rhein Eltville 4179.jpg|thumb|Uferweg am Rhein vor Eltville im [[Rheingau]], frei für Radfahrer. Der Rhein-Radweg u. R3 führen entlang der Hauptstraße ohne Rheinblick.]]
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile sollen hier aufgezeigt werden.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Rheinradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
aufgrund des 600 m hohen Anstiegs über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} sollte man die Zahnradbahn in Richtung Disentis / Chur bis {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} fahren.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
[[Datei:02f-Eurovelo 15 (NgnL)-04064.jpg|mini|EV15 Südlich Artzenheim im Elsass. Im Hintergrund die Kirche von Artzenheim. Am Horizont die Vogesen. Aufgrund des trockenen Klimas müssen hier Felder im Sommer bewässert werden.]]
[[Datei:02f-Eurovelo 15 (NgnL)-00792.jpg|mini|EV15 am reizvollen Rhein-Rhone-Kanal. Der historische Kanal führt direkt nach Strassburg.]]
Hier verläuft der Rhein-Radweg als EV15 in großen Teilen der Etappem auf dem reizvollen Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena (EV5)|Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Karlsruhe | type= town | wikidata = Q1040}} - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Wörth am Rhein | type= town | wikidata = Q522165}} (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Speyer | type= town | wikidata = Q6829}} - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life, Technikmuseum Speyer. Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]''' - Größte Stadt in der [[Kurpflaz]], Wahrzeichen ist der Wasserturm in der Innenstadt, Schloss (heute von der Uni genutzt), [Luisenpark], Anschluss an den [[Neckartal-Radweg]] Richtung [[Heidelberg]].
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
* '''Rheinbrücken Worms''' bei Rosengarten. Bitte sich hier an die Einbahnregleung der Radweg halten.
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
* {{Marker | name = Worms | type= town | wikidata = Q3852}}
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos)
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
== Weblinks ==
*'''Eurovelo''': [https://de.eurovelo.com/ev15 offizielle Infos zum Rheinradweg EV15] - in Französisch, Englisch, Deutsch und Niederländisch
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
mn6xixvmvv7j0dixlhwmm2jxj4v98of
1769152
1769151
2026-04-17T06:53:05Z
Dirk Schmidt
15181
/* 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) */
1769152
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der '''[[Rheintal-Weg|Rheintal-Weg]]''' auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den [[Badischer Weinradweg|Badischen Weinradweg]] ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
[[Image:Rhein Eltville 4179.jpg|thumb|Uferweg am Rhein vor Eltville im [[Rheingau]], frei für Radfahrer. Der Rhein-Radweg u. R3 führen entlang der Hauptstraße ohne Rheinblick.]]
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile sollen hier aufgezeigt werden.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Rheinradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
aufgrund des 600 m hohen Anstiegs über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} sollte man die Zahnradbahn in Richtung Disentis / Chur bis {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} fahren.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
[[Datei:02f-Eurovelo 15 (NgnL)-04064.jpg|mini|EV15 Südlich Artzenheim im Elsass. Im Hintergrund die Kirche von Artzenheim. Am Horizont die Vogesen. Aufgrund des trockenen Klimas müssen hier Felder im Sommer bewässert werden.]]
[[Datei:02f-Eurovelo 15 (NgnL)-00792.jpg|mini|EV15 am reizvollen Rhein-Rhone-Kanal. Der historische Kanal führt direkt nach Strassburg.]]
Hier verläuft der Rhein-Radweg als EV15 in großen Teilen der Etappem auf dem reizvollen Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena (EV5)|Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Karlsruhe | type= town | wikidata = Q1040}} - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Wörth am Rhein | type= town | wikidata = Q522165}} (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Speyer | type= town | wikidata = Q6829}} - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life, Technikmuseum Speyer. Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]''' - Größte Stadt in der [[Kurpflaz]], Wahrzeichen ist der Wasserturm in der Innenstadt, Schloss (heute von der Uni genutzt), [Luisenpark], Anschluss an den [[Neckartal-Radweg]] Richtung [[Heidelberg]].
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
* '''Rheinbrücken Worms''' bei Rosengarten. Bitte sich hier an die Einbahnregleung der Radweg halten.
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
* {{Marker | name = Worms | type= town | wikidata = Q3852}}
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos])
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
== Weblinks ==
*'''Eurovelo''': [https://de.eurovelo.com/ev15 offizielle Infos zum Rheinradweg EV15] - in Französisch, Englisch, Deutsch und Niederländisch
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
t9qq8roh9i6e3zguj45wei4ko3awkgv
1769154
1769152
2026-04-17T06:58:04Z
Dirk Schmidt
15181
/* Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) */
1769154
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der '''[[Rheintal-Weg|Rheintal-Weg]]''' auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den [[Badischer Weinradweg|Badischen Weinradweg]] ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
[[Image:Rhein Eltville 4179.jpg|thumb|Uferweg am Rhein vor Eltville im [[Rheingau]], frei für Radfahrer. Der Rhein-Radweg u. R3 führen entlang der Hauptstraße ohne Rheinblick.]]
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile sollen hier aufgezeigt werden.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Rheinradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
aufgrund des 600 m hohen Anstiegs über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} sollte man die Zahnradbahn in Richtung Disentis / Chur bis {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} fahren.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
[[Datei:02f-Eurovelo 15 (NgnL)-04064.jpg|mini|EV15 Südlich Artzenheim im Elsass. Im Hintergrund die Kirche von Artzenheim. Am Horizont die Vogesen. Aufgrund des trockenen Klimas müssen hier Felder im Sommer bewässert werden.]]
[[Datei:02f-Eurovelo 15 (NgnL)-00792.jpg|mini|EV15 am reizvollen Rhein-Rhone-Kanal. Der historische Kanal führt direkt nach Strassburg.]]
Hier verläuft der Rhein-Radweg als EV15 in großen Teilen der Etappem auf dem reizvollen Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena (EV5)|Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Karlsruhe | type= town | wikidata = Q1040}} - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Wörth am Rhein | type= town | wikidata = Q522165}} (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Speyer | type= town | wikidata = Q6829}} - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life, Technikmuseum Speyer. Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]''' - Größte Stadt in der [[Kurpflaz]], Wahrzeichen ist der Wasserturm in der Innenstadt, Schloss (heute von der Uni genutzt), [Luisenpark], Anschluss an den [[Neckartal-Radweg]] Richtung [[Heidelberg]].
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
* '''Rheinbrücken Worms''' bei Rosengarten. Bitte sich hier an die Einbahnregleung der Radweg halten.
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
* {{Marker | name = Worms | type= town | wikidata = Q3852}}
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der Abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos])
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
== Weblinks ==
*'''Eurovelo''': [https://de.eurovelo.com/ev15 offizielle Infos zum Rheinradweg EV15] - in Französisch, Englisch, Deutsch und Niederländisch
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
eg4i79vjjwri0ao2vuhch3pmlc5tg0f
1769155
1769154
2026-04-17T06:59:37Z
Dirk Schmidt
15181
1769155
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der alte [[Rheintal-Weg]] auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den '''[[Badischer Weinradweg|Badischen Weinradweg]]''' ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
[[Image:Rhein Eltville 4179.jpg|thumb|Uferweg am Rhein vor Eltville im [[Rheingau]], frei für Radfahrer. Der Rhein-Radweg u. R3 führen entlang der Hauptstraße ohne Rheinblick.]]
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile sollen hier aufgezeigt werden.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Rheinradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
aufgrund des 600 m hohen Anstiegs über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} sollte man die Zahnradbahn in Richtung Disentis / Chur bis {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} fahren.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
[[Datei:02f-Eurovelo 15 (NgnL)-04064.jpg|mini|EV15 Südlich Artzenheim im Elsass. Im Hintergrund die Kirche von Artzenheim. Am Horizont die Vogesen. Aufgrund des trockenen Klimas müssen hier Felder im Sommer bewässert werden.]]
[[Datei:02f-Eurovelo 15 (NgnL)-00792.jpg|mini|EV15 am reizvollen Rhein-Rhone-Kanal. Der historische Kanal führt direkt nach Strassburg.]]
Hier verläuft der Rhein-Radweg als EV15 in großen Teilen der Etappem auf dem reizvollen Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena (EV5)|Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Karlsruhe | type= town | wikidata = Q1040}} - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Wörth am Rhein | type= town | wikidata = Q522165}} (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Speyer | type= town | wikidata = Q6829}} - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life, Technikmuseum Speyer. Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]''' - Größte Stadt in der [[Kurpflaz]], Wahrzeichen ist der Wasserturm in der Innenstadt, Schloss (heute von der Uni genutzt), [Luisenpark], Anschluss an den [[Neckartal-Radweg]] Richtung [[Heidelberg]].
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
* '''Rheinbrücken Worms''' bei Rosengarten. Bitte sich hier an die Einbahnregleung der Radweg halten.
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
* {{Marker | name = Worms | type= town | wikidata = Q3852}}
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der Abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos])
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
== Weblinks ==
*'''Eurovelo''': [https://de.eurovelo.com/ev15 offizielle Infos zum Rheinradweg EV15] - in Französisch, Englisch, Deutsch und Niederländisch
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
qzgaxd2qakyv3mfx7cqei1bqhw6smdq
1769156
1769155
2026-04-17T07:29:00Z
Dirk Schmidt
15181
1769156
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der alte [[Rheintal-Weg]] auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den '''[[Badischer Weinradweg|Badischen Weinradweg]]''' ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile sollen hier aufgezeigt werden.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Rheinradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
aufgrund des 600 m hohen Anstiegs über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} sollte man die Zahnradbahn in Richtung Disentis / Chur bis {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} fahren.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
[[Datei:02f-Eurovelo 15 (NgnL)-04064.jpg|mini|EV15 Südlich Artzenheim im Elsass. Im Hintergrund die Kirche von Artzenheim. Am Horizont die Vogesen. Aufgrund des trockenen Klimas müssen hier Felder im Sommer bewässert werden.]]
[[Datei:02f-Eurovelo 15 (NgnL)-00792.jpg|mini|EV15 am reizvollen Rhein-Rhone-Kanal. Der historische Kanal führt direkt nach Strassburg.]]
Hier verläuft der Rhein-Radweg als EV15 in großen Teilen der Etappem auf dem reizvollen Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena (EV5)|Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Karlsruhe | type= town | wikidata = Q1040}} - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Wörth am Rhein | type= town | wikidata = Q522165}} (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Speyer | type= town | wikidata = Q6829}} - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life, Technikmuseum Speyer. Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]''' - Größte Stadt in der [[Kurpflaz]], Wahrzeichen ist der Wasserturm in der Innenstadt, Schloss (heute von der Uni genutzt), [Luisenpark], Anschluss an den [[Neckartal-Radweg]] Richtung [[Heidelberg]].
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
* '''Rheinbrücken Worms''' bei Rosengarten. Bitte sich hier an die Einbahnregleung der Radweg halten.
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
* {{Marker | name = Worms | type= town | wikidata = Q3852}}
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der Abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos])
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
== Weblinks ==
*'''Eurovelo''': [https://de.eurovelo.com/ev15 offizielle Infos zum Rheinradweg EV15] - in Französisch, Englisch, Deutsch und Niederländisch
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
7z5xnjew5rgmj8d6xgeauqdl0bd6bfo
1769178
1769156
2026-04-17T08:59:01Z
Dirk Schmidt
15181
/* Bahnhof Andermatt */
1769178
wikitext
text/x-wiki
{{ZdM|Art=Thema|Datum=2011-05}}{{Radweg|kat=Radwege in Baden-Württemberg}}
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|am Oberrhein: Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
Der '''Rhein-Radweg''' führt von der [[Schweiz]] über [[Österreich]], [[Frankreich]] und [[Deutschland]] bis zur Mündung des Stroms in die Nordsee in den [[Niederlande|Niederlanden]]. Ab dem [[Bodensee]] läuft außer im oberen Mittelrheintal je ein Radweg rechts und links des Rheinufers entlang.
'''Eine Route - Viele Länder - Viele Namen'''
Der größte Teil des Rhein-Radweges ist als EuroVelo 15 und in Deutschland zusätzlich als D-Route 8 ausgeschildert. Bis vor wenigen Jahren war das noch anders, vorher bestand der Rheinradweg aus mehreren Einzelwegen, die zum Teil immer noch ausgeschildert sind:
* Die '''[[Rhein-Route|Rhein-Route]] 2''' in der [[Veloland Schweiz|Schweiz]] ist komplett in die EV15 integriert.
* Der alte [[Rheintal-Weg]] auf der deutschen Seite entsprach zwischen Konstanz und Breisach der EV15. Ab Breisach führte der Weg mal näher am Schwarzwald, mal näher am Rhein durch den Oberrheingraben. Mittlerweile wurde der Weg durch den '''[[Badischer Weinradweg|Badischen Weinradweg]]''' ersetzt.
* Die '''Véloroute Rhein Rhin''' im [[Elsass]], in [[Baden (Region)|Baden]], in [[Südhessen]] und in der [[Pfalz]] ist komplett durch die EV15 ersetzt worden. Während in Frankreich und Hessen auch das alte Logo durch das EuroVelo-Logo komplett ersetzt wurde, hat man in Baden-Württemberg und Rheinland-Pfalz beide miteinander verbunden.
* Der '''Niederrheinradweg''' zwischen Duisburg und der niederländischen Grenze ist ebenfalls Teil der EV15, aber noch ausgeschildert.
* Die '''Rijnfietsroute''' entspricht der EV15.
== Streckenprofil ==
{{Mapframe|49.35 |6.5 |zoom=6 |height=420 |width=320 |name=Karte vom Rhein-Radweg. Routen linksrheinisch rot, Strecken rechtsrheinisch dunkelblau}}
[[Image:Logos_EV15_D8_DE.jpg|thumb|Beschilderung der EuroVelo 15 und D-Route 8 in Baden-Württemberg, Rheinland-Pfalz und Nordrhein-Westfalen.]]
[[Image:Logo_EV15_FR.jpg|thumb|Beschilderung der EuroVelo 15 in Frankreich.]]
*'''Länge: 1320 km'''
*'''Ausschilderung:''' vorhanden, allerdings vielfältig.
** Schweiz: Rote Richtungsschilder mit weißer Schrift und der kursiven Ziffer '''''2''''', sowie EuroVelo-15-Logo am Rand
** Deutschland: Routenlogo „Euroradler“ mit EuroVelo-15-Logo am Rand, meist als Zusatzschild zu Länderradwegweisern; in Hessen nur EV15-Logo mit Zusatz „R3“.
** Frankreich: weiße Schilder mit grüner Schrift und EuroVelo-15-Logo.
** Niederlande: Rechteckige weiße Schilder mit grüner Schrift und der Bezeichnung: LF1, LF3, LF4, LF12 oder LF17 (Landelijke Fietsroutes), mit Zusatzschriftzug: '''Rijnfietsroute''' bzw. '''Rijndeltaroute'''.
*'''Steigungen:''' Der Anstieg von [[Andermatt]] zum [[Oberalppass]] ist extrem, dann folgen auch größere Steigungen bis [[Chur]]. Ab Chur über den [[Bodensee]] ist die Strecke bis [[Rotterdam]] weitgehend eben.
*'''Wegzustand:''' Oft gut ausgebaut, aber abhängig vom Wegabschnitt.
*'''Verkehrsbelastung:''' Strecke meistens verkehrsfrei, aber es gibt auch Abschnitte mit sehr starkem Verkehr.
*'''Geeignetes Fahrrad:''' Am Alpenrhein Tourenrad mit Profilreifen und bergtauglicher Schaltung, sonst reicht 5-Gang.
*'''Familieneignung:''' gut, doch abhängig von der Region.
*'''Inlinereignung''' lokal evtl. gegeben, durchgängig nein
== Hintergrund ==
Der Rhein ist Deutschlands größter Fluss, Vorder- und Hinterrhein entspringen im Gotthardmassiv in der Schweiz. Der Rhein hat Gebirge durchschnitten und Täler geformt, wie die [[Rheinschlucht]] bei Flims, das Tal des [[Hochrhein]]s und das [[Mittelrheintal]]. Im Oberrheingraben entstand eine riesige Auenlandschaft mit ständig verändertem Flusslauf. Ab 1817 wurde der Oberrhein begradigt und kanalisiert. Riesige Flächen trockneten aus, wurden landschaftlich genutzt und bebaut. Doch es gibt noch Reste der Auenlandschaft, die man gut mit dem Fahrrad erkunden kann. Der Rhein hat viele Gesichter. Die schönsten Teile sollen hier aufgezeigt werden.
== Vorbereitung ==
=== Etappen und Dauer ===
Wer als durchschnittlich trainierter Radreisender die Gesamtstrecke in Angriff nehmen möchte, sollte vier Wochen Zeit einplanen.
Der Rheinradweg lässt sich allerdings ideal in Abschnitten erkunden.
Attraktivster Abschnitt für ein Verlängertes Wochenende oder eine Urlaubwoche ist sicher das weltbekannte '''Mittelrheintal'''. Auf dem 120{{nnbsp}}km langen [[Rhein-Radweg (Mittelrhein): Mainz − Bonn|Abschnitt zwischen Mainz und Bonn]] gibt es viel zu entdecken.
Aber auch die anderen Abschnitte der Route sind eine Reise Wert:
* '''Alpenrhein - Bodensee und Hochrhein''' - Für die Strecke von Andermatt bis Basel kann man eine gute Woche einplanen. Wer möchte kann die Strecke auch gut in Konstanz beenden und noch Zeit am Bodensee verbringen.
* '''Oberrhein''' - 400 km in rund einer Woche von Basel bis Mainz.
* '''Deutscher Niederrhein''' - Städtekette am Niederrhein von Bonn bis Kleve in vier bis fünf gemütlichen Etappen.
* '''Rhein in den Niederlanden'''' - Hier verzweigt sich der Strom Richtung Nordsee. Strecke mit etwa 5 Etappen.
=== Reisezeit ===
Beste Reisezeit für den Rheinradweg ist von Mai bis September.
Im Gegensatz zu anderen Regionen in Deutschland ist der April zwischen Bodensee und Mittelrhein meist auch schon ein guter Radreisemonat. Dies ist im April natürlich vom Frühlingseinzug und der aktuellen Witterung abhängig.
Ähnlich sieht es im Oktober aus. Auch hier sind oftmals schöne Radreisetage möglich, allerdings von der aktuellen Witterung abhängig.
In den Alpen beachten: Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
=== Veranstaltungen & Feste ===
==== Oberrhein ====
*'''[http://www.rheinradeln.com Rheinradeln]''' - 25 Kilometer autofrei durch Rheinhessen - so werden alle Rheinradler auf der alten B9 zwischen Worms und Oppenheim unterwegs sein.
==== Mittelrhein ====
* Binger Jazzfestival „Bingen swingt“.
* '''[[:Wikipedia:Rhein in Flammen|Rhein in Flammen]]''' − Großfeuerwerke zu verschiedenen Zeitpunkten an verschiedenen Abschnitten im Mittelrheintal.
* Rhine on Skates - Jährliche Tour, 135 km durchs Mittelrheintal auf Inlineskates.
== Anreise ==
=== Bahnhof [[Andermatt]] ===
Von Luzern oder Zürich mit den Schnellzug (nicht IC oder EC) Richtung Tessin bis {{Marker | name = Bahnhof Göschenen| type= rail | wikidata = Q684298}}. Dort muss auf die meterspurige Matterhorn-Gotthard-Bahn umgestiegen werden. Die Schöllenbahn trifft im {{Marker | name = Bahnhof Andermatt | type= rail | wikidata = Q4753704}} auf die Ost-West-Hauptstrecke [[Chur]] - [[Brig-Glis]], auf der auch der Glacier-Express verkehrt.
Aufgrund des 600 m hohen Anstiegs von Andermatt über 11 km zum {{Marker | name = Oberalppass | type= landscape | wikidata = Q661013}} kann man die Zahnradbahn in Richtung Disentis / Chur nehmen. Oben am {{Marker | name = Bahnhof Oberalppass | type= rail| wikidata = Q33467291}} aussteigen.
*Fahrzeit von [[Basel]] mit 2-maligem Umsteigen in [[Göschenen]] und [[Andermatt]] zum [[Oberalppass]]: 3 h 44 min.
*Fahrzeit [[Andermatt]] - [[Oberalppass]]: 20 min.
*Fahrzeit [[Disentis|Disentis/Mustér]] - [[Oberalppass]]: 37 min.
=== Mit dem Fahrrad ===
* R1 - '''[[Rhone-Route|Rhone-Route]]''': 309 km, Andermatt – Genève (Gegenläufig; starke Steigung über den Furkapass, nur im Sommerhalbjahr passierbar).
* R3 - '''[[Nord-Süd-Route|Nord-Süd-Route]]''': 363 km, Basel – Chiasso (Gegenläufig; Steigung über den Gotthardpass, nur im Sommerhalbjahr passierbar).
* '''Verbindungsroute Comer See - Chur''' vgl. unten "Alpentransit", über den Splügenpass, ist nur im Sommerhalbjahr passierbar.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Der Rheinradweg lässt sich in mehrere sinnvolle Reiseabschnitte einteilen. So können auch Teilbereiche des Rhein-Radwegs in einer Wochentour oder verlängertem Wochenende in Angriff genommen werden.
=== Vorderrhein - Alpenrhein - Bodensee: ca. 251 km ===
{{Mapframe|47.1790 |9.1135 |zoom=8 |height=350 |width=220 |name=Karte vom Abschnitt „Vorderrhein - Alpenrhein - Bodensee“ |from = Rhein-Radweg Vorderrhein-Alpenrhein-Bodensee.map}}
[[Image:Andermatt.jpg|thumb|Andermatt von der Oberalp-Passstrasse]]
[[Bild:OAlppass Oberalpsee.jpg|thumb|Oberalpsee am Oberalppass]]
Vom Startpunkt in Andermatt (1437 m) bis nach Basel (266 m) wird der internationale Rheinradweg als '''[[Rhein-Route|Rhein-Route 2]]''' des [[Veloland Schweiz]]-Netzes geführt und ausgeschildert, auch auf der Südseite des Bodensees und des Hochrheins.
Nur im Bereich der Rheinmündung in den [[Bodensee]] verläuft der Alpenrhein ein Stück durch Österreich.
'''Wichtig:''' Der Oberalppass öffnet je nach Wetter meist Ende April oder Anfang Mai.
==== '''1. Etappe: Andermatt – [[Oberalppass]] - Sedrun - [[Disentis]] (32 km)''' ====
Hinter {{Marker | name = Andermatt | type= village | wikidata = Q64019}} beginnen gleich die Serpentinen, es muss auf der Straße gefahren werden. Nach 11 km und mehr als 500 Höhenmetern ist der {{Marker | name = Oberalppass| wikidata = Q661013| show = copy}} (2044{{nnbsp}}m ü. NN) erreicht. Der Bahnhof liegt ganz in der Nähe des Passes.
Gleich hinter dem Pass beginnen die Serpentinen abwärts. Zu den beiden Vorderrhein-Quellen führen längere Fußwege rechts ab. Der erste kleine Ort Tschamut liegt auf 1645 m Höhe. Bis nach {{Marker | name = Sedrun | type= village | wikidata = Q689484}} (1405 m) sind es 12{{nnbsp}}km. Nach weiteren 14 km ist {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347}} (1135 m) erreicht. Bis hier gibt es keinen Radweg, aber es geht ja immer bergab.
Achtung: Die Straße des Oberalppasses ist nur von Mai bis Oktober offen. Info Tel. 163
Höhenmeter Aufstieg: Andermatt–Oberalppass 610 m ↔ Disentis–Oberalppass 900 m – [https://map.veloland.ch/?lang=de&etappe=2.01 Karte auf Veloland.ch]
[[File:Sinnbild Eisenbahn.svg|15px]] Wer den starken Anstieg gleich zu Beginn vermeiden will, kann den Oberalppass auch mit der Bahn erreichen, siehe [[Oberalppass#Mit der Bahn]]
===== Quelle des Vorderrheins =====
Als Ursprung des Vorderrheins wird der Tomasee (Lai da Tuma, 2345 m) zwischen Oberalppass und Val Maighels gesehen. Er ist zu Fuß vom Oberalppass in ca. 1½ Stunde zu erreichen.
[https://www.schweizmobil.ch/de/wanderland/services/sehenswuerdigkeiten/sehenswuerdigkeit-0457.html Quelle des Rheins - der Tomasee]
===== Abstecher zum Lai da Curneda =====
Ein fahrradtauglicher Weg mit nur leichten Steigungen führt zur Staumauer des Lai da Curneda dessen Seespiegel auf 1956 m liegt. Er zweigt von der Passstraße Oberalppass-Disentis bei einer Höhe von 1931 m rechts ab.
==== '''2. Etappe: Disentis – Chur (65 km)''' ====
[[Image:Rheinzusammenfluss.JPG|thumb|Zusammenfluss von Vorderrhein und Hinterrhein bei Schloss Reichenau]]
Orte: [[Disentis]] - Sumvitg - Trun - Brigels - Waltensburg - Andiast - [[Ilanz]] - Versam - Tamins - [[Chur]], ''"die Alpenstadt"''
Höhenmeter: Disentis–Chur: 460 m ↔ Chur–Disentis: 1.000 m – [https://map.veloland.ch/?lang=de&etappe=2.02 Karte auf Veloland.ch]
Von {{Marker | name = Disentis/Mustér | type= village | wikidata = Q68347 | show = copy}} bis {{Marker | name = Ilanz | type= village | wikidata = Q15056824}} (697 m) geht die Fahrt 33 km abseits der Straße weiter, langsam abfallend.
Wer nicht 300 Höhenmeter auf den nächsten 24 km nach Tamins überwinden möchte, sollte in Ilanz nochmals auf die Bahn umsteigen. Hier beginnt die bis zu 400 m tiefe '''[[Rheinschlucht]]''' (Ruinaulta) des Vorderrheins, die bis zum Zusammentreffen mit dem Hinterrhein bei Reichenau den 10.000 Jahre alten Flimser Bergsturz durchschneidet. An den Seitenwänden der Schlucht sind dabei steile Kalksteinklippen und imposante Felsformationen entstanden. Die Bahn fährt durch die Schlucht neben dem Fluss, ein Fußweg ist nur auf dem ersten Teil vorhanden.
Die Hauptstraße führt linksrheinisch über Films, die Rhein-Route dagegen rechtsrheinisch auf einer reizvollen Nebenstraße zunächst 11 km nach Versam Carnifels (937 m). Mit kleinen Anstiegen geht es 13 km nach Rheichenau (592 m) hinunter. Über Tamins (654 m) geht es auf der anderen Rheinseite auf eigenem Fahrradweg weiter bis Felsberg. An der Brücke läuft die Nationalroute 6: [[Graubünden-Route|Graubünden-Route (Chur–Bellinzona)]] zu, die den Hinterrhein begleitet. Bis Chur sind es wenige Kilometer in der Nachbarschaft einer Autobahn.
[[File:Sinnbild Eisenbahn.svg|15px]] BahntransportUmfahrung Versam] in 24 Minuten:
Eingesparte Höhenmeter: Ilanz–Reichenau: 300{{nnbsp}}m ↔ Reichenau–Ilanz: 390{{nnbsp}}m.
==== '''3. Etappe: Chur – Buchs (SG) (49 km)''' ====
Orte: {{Marker | name = Chur | type= town | wikidata = Q69007}} - [[Landquart]] - Maienfeld - [[Bad Ragaz]] - Garschlu - [[Sargans]] - Trübbach - {{Marker | name = Buchs SG | type= town | wikidata = Q68277}}
Höhenmeter: Chur–Buchs (SG): 150 m ↔ Buchs (SG)–Chur: 260 m – [https://map.veloland.ch/?lang=de&etappe=2.03 Karte auf Veloland.ch]
Große Teile des Radweges verlaufen in der Nähe der Autobahn.
Ein Wechsel auf die rechte Rheinseite über das Fürstentum [[Liechtenstein]] und Österreich ist ab Trübbach empfehlenswert. Dort kann man auf einem asphaltierten Damm bis zur Mündung in den Bodensee weiterfahren, oder auf der [https://www.schweizmobil.ch/de/veloland/routen/route-035.html Regionalroute 35: Liechtensteiner Rheintalroute Sargans–Altstätten] ([https://map.veloland.ch/?lang=de&etappe=35.01 Karte]) über die Hauptstadt [[Vaduz]] fahren.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.postauto.ch/de/ausflugstipps/churfirsten-linie Aufstieg mit Postauto (Churfürstenlinie): Buchs–Wildhaus] und auf dem regionalen [https://www.schweizmobil.ch/de/veloland/routen/route-095.html Radwanderweg 95: Thur-Route] ([https://map.veloland.ch/?lang=de&etappe=95.01 Karte]) mit dem Fahrrad weiterfahren nach [[Wattwil]] (Alpenpanorama-Route) oder weiter nach [[Wil SG|Wil]] (Mittelland-Route). Voranmeldung erforderlich:
Tel: 071 375 6891. Eingesparte Höhenmeter: ca. 650{{nnbsp}}m.
==== '''4. Etappe: Buchs (SG) – St. Margrethen (47 km)''' ====
Höhenmeter: Buchs (SG)–St. Margrethen: 80 m ↔ St. Margrethen–Buchs (SG): 120 m – [https://map.veloland.ch/?lang=de&etappe=2.04 Karte auf Veloland.ch]
Dieser Abschnitt verläuft als Veloroute 9 der Schweiz fast immer weit entfernt vom Rhein.
Verlauf Veloroute 9:
* Buchs (SG)
* [[Altstätten]]
* {{Marker | name = St. Margrethen | type= village | wikidata = Q66243}}
Die Eurovelo-Route "Rhein-Radweg" EV15 geht dafür direkt am Rheindeich entlang. Die Strecke ist kürzer, aber man fährt ab Sennwald direkt längere Zeit entlang der Autobahn. '''Tipp:''' Ab {{Marker | name = Rheinbrücke bei Bangs |type= waypoint |group = gold | lat = 47.27390| long = 9.53463 }} auf die östliche Flussseite wechseln. Auf den dortigen Uferwegen fährt man mit mindestens 200 m Abstand zur Autobahn.
[[File:AB-AZ.svg|15px]] Anschluss-Empfehlung: [https://www.appenzell.ch/de/sommer/velo-e-bike-mountainbike/velowagen-altstaetten-gais.html Bahn mit Velowagen Altstätten Stadt–Gais] Verbindung zwischen Rhein-Route 2 und [[Seen-Route]] 9 mit [[Alpenpanorama-Route]] 4, Eingesparte Höhenmeter: ca. 430 m
==== '''5. Etappe: Bodensee: St. Margrethen – [[Konstanz]] (63 km)''' ====
Höhenmeter: St. Margrethen–Kreuzlingen: 70 m ↔ Kreuzlingen–St. Margrethen: 80 m – [https://map.veloland.ch/?lang=de&etappe=2.05 Karte auf Veloland.ch]
Da die Route fast durchwegs dem Seeufer folgt, weist sie praktisch keine Steigungen auf und eignet sich deshalb auch für weniger trainierte Fahrradtouristen.
* [[File:AB-AZ.svg|15px]] '''Fußach''' (A): Radfernweg-Anschluss: [[Bodensee-Radweg]]
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rheineck]]''' - Zahnradbahn nach Walzenhausen stündlich in 6 min zur [https://www.schweizmobil.ch/de/veloland/routen/route-042.html Appenzeller Rad-Route 42] · Höhendifferenz: 279 m · Fahrpreis: 4,60 CHF, Tageskarte 9,20
* [[File:Sinnbild Eisenbahn.svg|15px]] '''[[Rorschach]]''' - Zahnradbahn nach [[Heiden]] stündlich in 19 min zur Rad-Route 4 u. 42 · Höhendifferenz: 390 m · Fahrpreis: 6,80 CHF, Tageskarte 13,60 · Velo-Reservation unter Tel.: 071 788 5050 ab 10 Personen
* '''[[Arbon]]'''
* [[File:Ferry.svg|15px]] '''[[Romanshorn]]''' - [https://www.bsb.de/de/bodensee-faehre Bodensee-'''Fähre''']: Romanshorn – Friedrichshafen ↔ Friedrichshafen – Romanshorn·
* '''[[Kreuzlingen]]''' (CH), Nähe '''[[Konstanz]]''' (D)
==== → Bodensee-Variante Nordseite ====
: Der Rhein durchfließt den [[Bodensee]] und von [[Konstanz]] / [[Kreuzlingen]] den [[Untersee]]. Ab [[Stein am Rhein]] wird der Rhein dann als [[Hochrhein]] weiter geführt.
: Auf dem '''[[Bodensee-Radweg|Bodensee-Radweg]]''' können die Seeteile auch auf der Nordseite entlang gefahren werden. Von Fußach (A) im Rheindelta geht es über [[Bregenz]], [[Lindau]], [[Friedrichshafen]] nach [[Meersburg]]. Die Autofähre von Meersburg nach Konstanz kürzt den Weg über den [[Überlinger See]] ab. In Konstanz berührt der Bodenseeradweg die Schweizer Rheinroute und macht dann einen großen Bogen über [[Radolfzell]], um in Stein am Rhein wieder auf die Rheinroute zu stoßen.
=== Hochrhein: Konstanz – Basel (etwa 173 km) ===
{{Mapframe|47.6228 |8.3421 |zoom=8 |height=220 |width=350 |name=Karte vom Abschnitt „Hochrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Hochrhein.map}}
Auf Schweizer Seite heißt der Rhein-Radweg weiterhin '''[[Rhein-Route|Rhein-Route]]''' ([http://map.veloland.ch/?lang=de&route=2 Karte]). Auf der Baden-Württembergischen Seite beginnt in Konstanz der '''Rhein-Radweg''', der bis [[Stein am Rhein]] mit dem Bodensee-Radweg gleich läuft. Hier beginnt der Hochrhein, wo beidseitig ausgeschilderte Radwege vorhanden sind. Ein Wechsel macht des öfteren Sinn, weil auf beiden Seiten Radweg-Abschnitte sich vom Rhein entfernen oder vom Autolärm beeinträchtigt werden. Viel Zeit braucht man, um die einmaligen Städte und Sehenswürdigkeiten zu genießen.
[[Image:Rheinfall panorama.jpg|thumb|Der Rheinfall bei Schaffhausen]]
Der Höhepunkt des Hochrheins ist der [[Rheinfall]] bei Schaffhausen.
==== '''6. Etappe: Konstanz - Schaffhausen (48 km)''' ====
[[Datei:Rhein-Radweg vor Stein.jpg|mini|Rhein-Radweg vor Stein]]
Höhenmeter: Kreuzlingen–Schaffhausen: 170 m, Schaffhausen–Kreuzlingen: 180 m, [http://map.veloland.ch/?lang=de&etappe=2.06 Karte]
'''Abschnitt [[Kreuzlingen]]''' (gegenüber [[Konstanz|Konstanz (D)]]) '''- [[Stein am Rhein]]'''
Auf der Schweizer Seite des Untersees, dicht am See entlang.
* {{Marker | name = Konstanz | type= town | wikidata = Q3834}}
* '''[[Steckborn]]''' - Altstadt, Altes Rathaus (1498), Turmhof (1282), Pulverturm (1497)
* [[Mammern]] - barocke Schlosskapelle von 1750, Ruine Neuburg
* {{Marker | name = Stein am Rhein | type= town | wikidata = Q11939}}
→ Auf der deutschen Seite führt der Bodenseeradweg im großen Bogen über [[Radolfzell]] und Gaienhofen nach Stein am Rhein (CH).
'''Abschnitt Stein am Rhein - [[Schaffhausen]]'''
Wechsel auf die rechtsrheinische Seite mit Durchfahrt in Deutschland
* '''[[Gailingen]]''' am Hochrhein (D)
* → '''[[Diessenhofen]]''' (CH) sehenswerter Ort, über die Rheinbrücke
* {{Marker | name = Schaffhausen | type= town | wikidata = Q9009}}
Ein regionaler Radweg führt auch auf der linken Seite am Rhein, ist aber verkehrsbelastet.
==== '''7. Etappe Schaffhausen – Walshut-Tiengen / Bad Zurach (etwa 50 {{nnbsp}}km)''' ====
Auf der Schweizer Rheinroute gibt es einen Aufstieg von ca. 100 m hinter der Rheinschlaufe Rheinau.
===== Linksrheinisch: [[Schaffhausen]] - [[Bad Zurzach]] (52 km) =====
Höhenmeter: Schaffhausen–Zurzach: 280 m, Zurzach–Schaffhausen: 360 m
* In [[Laufen-Uhwiesen|Laufen]] erlebt man den Höhepunkt der Radtour, den '''[[Rheinfall|Rheinfall bei Schaffhausen]]'''. Der Rheinfall bei Schaffhausen ist der mächtigste Wasserfall Mitteleuropas. Der Rhein stürzt hier etwa 23 m tief bei einer Breite von 150 m über eine Jurakalkschwelle.
* '''[[Rheinau ZH]]''' mit dem Benediktinerkloster Rheinau in der Rheinschleife, sehenswert.
: Hinter Rheinau (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab hat man nur noch leichte Steigungen.
* → '''[[Eglisau]]''' (CH) (187 m) − Abstecher über die Brücke
* Rheinsfelden − Die Rheinroute entfernt sich vom Rhein und führt an der stark befahrenen Nationalstraße 7 entlang. Empfehlung: Die Rheinseite wechseln.
* → [[Hohentengen am Hochrhein]] (D) − am Kraftwerk Eglisau bei Rheinsfelden über den Rhein, dann durch den Ort Herdern (D) zum Rheintalweg nach Hohentengen. Hinter Hohentengen über die Brücke nach Kaiserstuhl (CH).
* '''[[Kaiserstuhl AG]]''' (367 m)
* {{Marker | name = Bad Zurzach | type= village | wikidata =Q64186}} (341m)
===== Rechtsrheinisch: Schaffhausen - Waldshut (etwa 50{{nnbsp}}km) =====
Die D8-Route Rhein-Radweg bzw. Rheintalweg führt abseits des Rheins über die hügelige Landschaft. Sie ist zwar kürzer als auf Schweizer Seite, die Höhenmeter bleiben einem trotzdem nicht erspart.
Höhenmeter: Schaffhausen–Waldshut: 210 hm, Waldshut–Schaffhausen: 280 m
*'''Schaffhausen''' (CH)
* [[Neuhausen am Rheinfall]] (CH) - mit dem [[Rheinfall|Rheinfall bei Schaffhausen]]
* → Ab Altenburg gelangt man auf der Rheinfall-Rheinau-Route zur Westseite der Rheinschleife über eine Brücke zur Halbinsel Rheinau.
* Jestetten
* Hohentengen am Hochrhein
* → '''[[Waldshut-Tiengen|Tiengen]]''' − gräfliches Schloss, Reste der alten Stadtmauer mit dem Storchenturm, Kirche St. Marien mit schönen Barockaltären
* {{Marker | name = [[Waldshut-Tiengen|Waldshut]] | type= town | wikidata = Q47501200}} - Altstadt direkt an der Route
==== '''8. Etappe: Walshut-Tiengen / Bad Zurzach - Basel (etwa 65 bis70{{nnbsp}}km)''' ====
===== linkssrheinisch: Bad Zurzach – Basel =====
Höhenmeter: Zurzach–Basel: 310{{nnbsp}}m, Basel–Zurzach: 330{{nnbsp}}m, [http://map.veloland.ch/?lang=de&etappe=2.08 Karte]
* [[Koblenz AG]] am Aarezufluss
* → Abstecher oder Schleife nach [[Waldshut-Tiengen]] (D)
* → Abstecher nach [[Klingnau]] am Aarestausee
* '''[[Laufenburg AG]]'''
* → '''[[Laufenburg (Baden)]]'''
* → [[Murg]] (D)
* → '''[[Bad Säckingen]]''' (D)
* [[Stein AG]]
* '''[[Rheinfelden AG]]'''
* → [[Rheinfelden (Baden)]]
* → [[Grenzach-Wyhlen]] (D) - Am Ende von Grenzach gelangen sie wieder an den Rhein.
* → Stadtgrenze von Basel (Kleinseite) - 2 km hinter der Grenze kann man über das Wasserkraftwerk auf die linke Rheinseite herüberfahren. Durch die Grünanlagen, der Überquerung der Birs, der Unterführung der Eisen- und Autobahn fahren und dann rechts am Ufer entlang bis St. Alban. Leicht links führt die Straße hoch ins historische Zentrum von {{Marker | name = Basel | type= city | wikidata = Q78}}.
[[Bild:Radwegweiser Basel Kuntmuseum 20210-dz.jpg|thumb|EuroVelo 6, Rhein-Route 2, Nord-Süd-Route 3]]
===== rechtsrheinisch: Walshut - Basel (etwa 65{{nnbsp}}km) =====
Die Route auf deutscher Seite wurde früher unter dem Namen Hochrhein-Hotzenwald-Weg vermarktet, später wurde sie Teil des [[Rheintal-Weg|Rheintal-Wegs]] und mittlerweile ist sie mit den Schildern des D-Route D8 Rhein-Radweg versehen. Da Schaffhausen und Basel zur Schweiz gehören, wird der Radweg auch als schweizerische Regionalroute 98 [[Rheintal-Weg#Schaffhausen - Basel (CH)|Rheintal-Radweg]] geführt. [http://map.veloland.ch/?lang=de&route=98 Karte]
Man folgt dem Rhein zwischen den beeindruckenden Höhen des Badischen Hotzenwaldes und des Schweizer Tafeljura bis ins mittelalterliche Laufenburg. In der Trompeterstadt [[Bad Säckingen]] begegnet man der längsten gedeckten Holzbrücke Europas.
Höhenmeter: Walshut–Basel: -55{{nnbsp}}hm ↔ Basel–Schaffhausen: 150{{nnbsp}}hm
*'''[[Waldshut-Tiengen|Waldshut]]''' − Altstadt mit Kaiserstraße, schöne Bürgerhäuser aus dem 16. bis 18. Jh. mit typisch vorgebauten Holzgiebeln
*'''Laufenburg''' (Baden)
*'''[[Bad Säckingen]]''' - Trompeterstadt, die 400 Jahre alte Holzbrücke ist mit 204 m die längste gedeckte Holzbrücke Europas, Münster St. Fridolin - prachtvoller im 17. und 18. Jahrhundert im Barockstil erneuerter Kirchenbau, Trompetenmuseums mit etwa hundert Instrumenten aus vier Jahrhunderten,
*'''Rheinfelden''' (Baden)
*'''Grenzach'''
*'''[[Basel|Kleinbasel]]''' (CH) − das nördliche Zentrum Basels
=== Oberrhein: Basel – Mainz (etwa 400 km) ===
{{Mapframe|48.825 |7.947 |zoom=7 |height=400 |width=220 |name=Karte vom Abschnitt „Oberrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Oberrhein (rechts).map |from2 = Rhein-Radweg Oberrhein (links).map
}}
Ab Basel weitet sich das Rheintal zur [[Oberrheinische Tiefebene|Oberrheinischen Tiefebene]]. Die Berge treten zurück und weite Feldfluren bestimmen das Bild. Die Oberrheinische Tiefebene ist teilweise sehr dicht besiedelt. So finden sich einige größere Städte an der Route. Die Etappen wurden so gelegt, das möglichst in interessanten historischen Städten übernachtet werden kann.
'''Hintergrund zum Fluss:'''
Zwischen Basel und [[Breisach am Rhein]] führt der Rhein außer bei Hochwasser nur ein Zehntel seines Wassers im alten Bett, da der Hauptstrom über den Rheinseitenkanal (Grand Canal d' Alsace) zur Wasserkraftnutzung umgeleitet wird. Auf der badischen Seite fährt man also an einem fast ausgetrockneten Fluss entlang, auf der französischen Seite auf einem Damm neben einem Beton-Kanal. Auch nördlich von Breisach ist der Rhein aufgestaut. Bis Straßburg wechseln Kanalbett mit Schleusen und Kraftwerk und der Hauptrhein ab. Nördlich davon gibt es noch zwei Staustufen, wo der Rhein zwischen Dämmen hochgelegt ist. Vom natürlichen Strom ist so gut wie nichts übrig geblieben. Wer diesen künstlichen Rheinteilen entfliehen will, sollte auf einen der etwas weiter weg, aber parallel zum Oberrhein verlaufenden Wege wie den [[Badischer Weinradweg|Badischen Weinradweg]] oder auf das elsässische Kanalsystem ausweichen. Von Basel aus führt der [[w:Canal_de_Huningue|Canal du Hunigue]] in Richtung Mulhouse und trifft dort den [[w:Rhein-Rhône-Kanal|Rhein-Rhône-Kanal]], welcher schnurgerade durch's Elsass führt. [[Colmar]], der [[Kaiserstuhl (Deutschland)|Kaiserstuhl]] und [[Freiburg im Breisgau]] sind lohnende Zwischenstationen.
==== '''9. Etappe: Basel – Neuf-Brisach / Breisach (etwa 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Basel - Breisach: 67 km =====
* {{Marker | name = Basel | type= town | wikidata = Q78 | show = copy}}
* [[Weil am Rhein]] (D)
* [[Bad Bellingen]]
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei [[Neuenburg am Rhein]] nach Bantzenheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Hartheim nach Fessenheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = [[Breisach am Rhein|Breisach]] | type= town | wikidata = Q489911}} - Brücke nach Neuf-Brisach, kein separater Radweg vorhanden.
===== linksrheinisch: Basel - Neuf-Brisach: 69 km =====
Bis auf die ersten Kilometer bekommt man den Rhein auf der französischen Seite bis Straßburg nicht zu sehen. Eine Mischung aus Treidelweg und Landstraßen unterschiedlicher Ordnung bietet begrenzte Abwechslung bei kleinen Orten. Proviant sollte, wie immer in Frankreich, mitgeführt werden. Zu kaufen gibt es wenig.
* Huningue (F)
* Kembs
* [[File:AB-AZ.svg|15px]] Anschluss an EuroVelo 6: Atlantik-Schwarzes Meer
* Hombourg
* Ottmarsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Bantzenheim nach Neuenburg am Rhein - separater Radweg vorhanden
* Blodelsheim
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Fessenheim nach Hartheim
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Neuf-Brisach | type= town | wikidata = Q150039}} (F) - Brücke nach Breisach, kein separater Radweg vorhanden
==== '''10. Etappe: Neuf-Brisach / Breisach – Straßburg (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Breisach - Kehl: 80 km =====
[[Bild:Passerelle des Deux Rives-msu-3247.jpg|thumb|right|Zwischen [[Kehl]] und [[Straßburg]] gibt es gleich zwei Brücken für Radfahrer - Hier die „Passerelle des Deux Rives“]]
* → Abstecher zum '''[[Kaiserstuhl (Deutschland)|Kaiserstuhl]]'''
* [[File:AB-AZ.svg|15px]] Anschluss an '''[[Badischer Weinradweg|Badischen Weinradweg]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Sasbach am Kaiserstuhl nach Marckolsheim - kein separater Radweg vorhanden
* '''[[w:Naturschutzgebiet Taubergießen|Naturschutzgebiet Taubergießen]]''' - '''[[Europa-Park]]'''
* [[File:Ferry.svg|15px]] Rheinfähre bei Kappel-Grafenhausen nach Rhinau
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Goldscheuer nach Illkirch - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Kehl | type= town | wikidata = Q15979}} - Fahrradbrücken nach [[Straßburg]]
===== linksrheinisch: Neuf-Brisach - Straßburg: 77 km =====
[[Datei:02f-Eurovelo 15 (NgnL)-04064.jpg|mini|EV15 Südlich Artzenheim im Elsass. Im Hintergrund die Kirche von Artzenheim. Am Horizont die Vogesen. Aufgrund des trockenen Klimas müssen hier Felder im Sommer bewässert werden.]]
[[Datei:02f-Eurovelo 15 (NgnL)-00792.jpg|mini|EV15 am reizvollen Rhein-Rhone-Kanal. Der historische Kanal führt direkt nach Strassburg.]]
Hier verläuft der Rhein-Radweg als EV15 in großen Teilen der Etappem auf dem reizvollen Treidelweg des Rhein-Rhone-Kanals.
* → Abstecher nach [[Colmar]]: 18 km
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Marckolsheim nach Sasbach am Kaiserstuhl - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Rhinau nach Kappel-Grafenhausen
* [[File:AB-Brücke.svg|15px]] Pierre-Pfimlin-Brücke bei Illkirch nach Goldscheuer - separater Radweg vorhanden
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] [[File:AB-AZ.svg|15px]] {{Marker | name = Straßburg | type= town | wikidata = Q6602}} / (Strasbourg) (F) - Fahrradbrücken nach Kehl, Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Paris]] und EuroVelo 5: '''[[Via Romea Francigena (EV5)|Via Romea Francigena]]''' nach [[Canterbury]]/[[Brindisi]]
==== '''11. Etappe: Straßburg – Karlsruhe (etwa 80{{nnbsp}}km)''' ====
===== rechtsrheinisch: Kehl - Karlsruhe: 84,5 km =====
[[Bild:Fahrradweg_am_Rhein.jpg|mini|„Radweg“ am aufgestauten Oberrhein bei Rheinau]]
[[Bild:02f-Eurovelo 15 (NgnL)-00798.jpg|mini|Rheinradweg westlich von Greffern. Am Horizont in der [[Nordschwarzwald]] zu sehen.]]
Zwischen Kehl und Iffezheim führt der Weg fast nur über Schotterwege auf dem Damm des aufgestauten Rheins oder die Straße hinter dem Damm. Es ist daher zu empfehlen, in Kehl die Rheinseite zu wechseln oder Alternativrouten über das lokale Radnetz im Rheinhinterland zu suchen. Eine Alternative wäre zum Beispiel über Auenheim, Diersheim, Freistett, Helmlingen, Lichtenau und Schwarzach.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau (Baden)|Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre bei Greffern nach Drusenheim
* [[Rheinmünster]] (romanisches Münster Schwarzach)
* [[File:AB-AZ.svg|15px]] Anschluss an den '''[[Paneuropa-Radweg]]''' nach [[Prag]]
* '''Staustufe Iffezheim''' - Ende des aufgestauten Rheins, Überfahrt für Fahrräder verboten
: → Abstecher nach '''[[Rastatt]]'''
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] Rheinfähre Plittersdorf (nach Seltz)
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Karlsruhe | type= town | wikidata = Q1040}} - Brücke nach Wörth, separater Radweg vorhanden - Am Hafensperrtor muss man sein Fahrrad über eine Treppe schieben. Es ist auch eine Umfahrung ausgeschildert.
===== linksrheinisch: Straßburg - Wörth: 81,5 km =====
* ''Schloss "Château de Pourtalès"''
: → auf dem Hochwasserdamm bis
* '''La Wantzenau'''
* '''Sessenheim:''' · Gedenkstätte Goethe - Protestantische Kirche: ·Als Goethe Jura in Straßburg studierte (1770-1771), hatte er sich in die Pastorentochter Frédérique Brion verliebt. Andenken und Dokumente, die an Goethes Aufenthalt im Elsass und seine Beziehungen mit der französischen Kultur erinnern.
: → Weiterfahrt durch die nordelsässischen Dörfer wo man gut Flammkuchen essen kann.
* [[File:AB-Brücke.svg|15px]] '''Staustufe Gambsheim/[[Rheinau]]''' - separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Drusenheim''' - Rheinfähre nach [[Rheinmünster]]
* '''Staustufe Iffezheim''' - Ende des kanalisierten Rhein, letzte Staustufe, Überfahrt für Fahrräder verboten
: → Weiterfahrt am Hochwasserdeich.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke Wintersdorf - kein separater Radweg vorhanden
* [[File:Ferry.svg|15px]] '''Seltz''' - Rheinfähre nach Plittersdorf
* [[File:AB-AZ.svg|15px]] '''[[Lauterbourg]]''' (F): Anschluss an den '''Pamina-Radweg''' nach [[Wissembourg]].
* [[File:Ferry.svg|15px]] Rheinfähre Neuburg
* [[File:AB-Brücke.svg|15px]] {{Marker | name = Wörth am Rhein | type= town | wikidata = Q522165}} (D) - Brücke nach Karlsruhe, separater Radweg vorhanden
==== '''12. Etappe: Karlsruhe – Speyer (etwa 50 bis 55{{nnbsp}}km)''' ====
[[Bild:SpeyerDomAu01.jpg|thumb|right|upright|Front des Kaiserdoms Speyer]]
Kürzere Etappe, so nachmittags Zeit Speyer zu erkunden.
===== rechtsrheinisch Karlsruhe - Speyer =====
Zwischen Karlsruhe und Rußheim ist der rechtsrheinische Rhein-Radweg kurz unterbrochen. Mit einer guten Karte bzw. dem Radnavi kann man den Weg aber auch ohne Beschilderung befahren.
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Rheinsheim nach Germersheim - separater Radweg vorhanden
* [[File:AB-Brücke.svg|15px]] Rheinbrücke bei Speyer - separater Radweg vorhanden
===== linksrheinisch: Wörth - Speyer =====
* Leimersheim
* Dettenheim: ab hier geht es direkt am Rhein entlang
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] '''[[Germersheim]]''' · km: 28,1 · weiter geht es erst durchs Industriegebiet und dann am Altrheinarm entlang. · Brücke nach Rheinsheim, separater Radweg vorhanden
* Naherholungsgebiet mit Badeweiher
* Naturschutzgebiet Mechtersheimer Tongruben
* [[File:Sinnbild Innerorts.svg|15px]] [[File:AB-Brücke.svg|15px]] {{Marker | name = Speyer | type= town | wikidata = Q6829}} - mit seinem berühmten Dom, Historisches Museum der Pfalz Speyer, Dreifaltigkeitskirche, Judenhof, Altpörtel, Sea Life, Technikmuseum Speyer. Rheinbrücke mit separatem Radweg
==== '''13. Etappe: Speyer – Worms (etwa 50 bis 55{{nnbsp}}km)''' ====
===== rechtsrheinisch Speyer – Mannheim – Worms =====
Rechtsrheinisch wird die Stadt Mannheim durchquert.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Brühl und Otterstadt (montags und dienstags kein Fährbetrieb)
* [[Ketsch]] - Gedeckte Holzbrücke zur Altrheininsel
: → Abstecher nach [[Schwetzingen]] mit Schloss und Park möglich.
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Neckarau und Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Mannheim]]''' - Größte Stadt in der [[Kurpflaz]], Wahrzeichen ist der Wasserturm in der Innenstadt, Schloss (heute von der Uni genutzt), [Luisenpark], Anschluss an den [[Neckartal-Radweg]] Richtung [[Heidelberg]].
* '''[[Lampertheim]]''' ([[Hessen]]) - Naturschutzgebiet Biedensand (Auengebiet mit einem Altrheinarm).
* '''Rheinbrücken Worms''' bei Rosengarten. Bitte sich hier an die Einbahnregleung der Radweg halten.
{{Panorama|bild=Rheinradweg_suedlich_lampertheim_04_2009.jpg|unterschrift=Weit reicht der Blick ins Land auf der Veloroute Rhein zwischen Mannheim und Lampertheim: links liegt der Rhein, rechts ist in der Ferne der Odenwald zu sehen|breite=1850px}}
===== Linksrheinisch Speyer – Worms =====
Linksrheinisch umgeht die D8 bze. EV15 großräumig Ludwigshafen.
* [[File:Ferry.svg|15px]] Kollerfähre zwischen Otterstadt und Brühl (montags und dienstags kein Fährbetrieb)
* Otterstadt · km: 58,0
* [[File:Ferry.svg|15px]] Rheinfähre zwischen Altrip und Neckarau
: → '''Alternative''': hier geht es links direkt am Rhein entlang und dann mit der Autofähre auf die Mannheimer Seite, zunächst durch Industriegebiet, dann aber durch Parklandschaft. Vom Mannheimer Verkehrsknoten geht es dann über die Rheinbrücke. Ludwigshafen Rheinbrücke:
* Altrip
* [[File:Sinnbild Innerorts.svg|15px]] '''[[Ludwigshafen am Rhein]]''' - Durchfahrt möglich, D8 bze. EV15 umgeht Ludwigshafen, da viel Industrie und wenig sehenswertes.
* {{Marker | name = Worms | type= town | wikidata = Q3852}}
==== '''14. Etappe: Worms - Mainz (etwa 50 bis 70{{nnbsp}}km)''' ====
===== rechtsrheinisch: Worms - Mainz-Kastel: 75 km =====
[[Image:Kuehkopf.jpg|thumb|[[Naturschutzgebiet Kühkopf-Knoblochsaue|Naturschutzgebiet Kühkopf]]]]
[[Image:Kühkopf Forsthaus 325-h.jpg|thumb|Einkehr im Forsthaus Kühkopf]]
Durch das '''[[Hessisches Ried|Hessische Ried]]''' zum Main.
* '''[[Biblis]]''' - Die Strecke führt nicht durch den Ort, sondern direkt am ehemaligen Atomkraftwerk am Rhein vorbei (kein Infozentrum mehr).
* '''[[Gernsheim]]''' - {{Marker | name = Rheinfähre Gernsheim | type= go |group = | lat = 49.75307| long = 8.47481| wikidata = | url = https://www.faehre-gernsheim.de}}, der Fähranleger am Hafen ist ein gern besuchtes Ausflugsziel (mit Gastronomie). Im Strom stehen hier die Reste der alten Rheinbrücke, die von der deutschen Wehrmacht vor den heranrückenden alliierten Streitkräften Ende des Zweiten Weltkriegs gesprengt wurde.
* '''[[Stockstadt]]''' - Die Route führt über die Altrheinbrücke auf die Insel Kühkopf im '''[[Naturschutzgebiet Kühkopf-Knoblochsaue]]'''. {{Marker | name = Hofgut Guntershausen mit Infozentrum | type= museum | lat = 49.816001| long = 8.459387 | url = http://www.kuehkopf.hessen.de/irj/Kuehkopf_Internet?cid=bc0961c7d433e9605b02f28eb2eedb30}} Hier kann man sich Sa., So. und Feiertags über das Schutzgebiet informieren, der Eintritt kostenlos. Außerhalb der öffnungzeiten kann per App ein 2{{nnbsp}}km langer Auenerlebnispfad erkundet werden. Ferner findet sich hier auch Ausflugsgastronomie. Ab der nächsten Altrheinbrücke geht es auf dem Deich weiter und alsbald in die bewaldete Knoblochsaue. Einen Abstecher zur Schwedensäule und rechts weiter zum Zufluss des Altrheins und Durchstich des Rheins sollte man sich gönnen. Zurück geht der Rheinradweg später wieder auf den Deich.
*''' → {{Marker | name = Fähre Kornsand | type= ferry | lat = 49.866825 | long = 8.355553| url = http://www.faehre-nierstein.de/html/fahrplan.html}}''' nach [[Nierstein]] (Imbiss am östlichen Fähranleger). <br> Der Rheinradweg ist zwar hier nicht beschildert, führt aber auf dem Hochwasserdamm, von wo man in das Auengebiet und die weite Fläche des [[Hessisches Ried|Hessischen Ried]] blicken kann. Am Fuße der Innenseite des Dammes verläuft zusätzlich ein guter Betonweg.
* bei Gut Hohenau: → Abzweig: · Alternative am Rhein auf der '''Insel Nonnenau''' zum Gut Langenau mit Gartenwirtschaft. Weiterfahrt zur [http://www.hofgut-nonnenau.de/Faehre Fähre nach Ginsheim (Di.-So.)] ist bei trockenem Wetter empfehlenswert.
[[Image:Ginsheim Altrhein 152-h.jpg|thumb|Altrheinarm bei Ginsheim mit Fähre zur Nonnenau]]
* '''[[Ginsheim-Gustavsburg|Ginsheim]]''' am Altrheinarm · Personen-Fähre von der Nonnenau nach Ginsheim, Ginsheimer Kiesbagger am Altrhein.
* '''[[Mainz-Gustavsburg]]''' - hinter der Schranke geht es gleich links zum S-Bahnhof (Strecke S8 Frankfurt − Mainz Hbf)
: Burgpark und Torturm Gustavsburg, Symbol für die ehemalige Festung Gustavsburg links der Straße <br> → '''Mainspitzdreieck''' mit herrlichem Blick nach Mainz bis in den [[Rheingau]] <br> → Radweg auf der Eisenbahnbrücke über den Rhein nach Mainz. <br> Rechts vom Kreisel ist ein Supermarkt; das Picknick kann man dann im Burgpark machen, geradeaus geht es zur Brücke über den Main.
* '''Mainz-Kostheim (Mainbrücke)''' · Zugang des: [[Main-Radweg|Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3: → Kinzigtal → Fulda → Röhn]]. <br> Abgang des: [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: → Edersee → Waldecker Land]] <br> Hinter der Mainbrücke rechts runter zum Mainufer, die Fahrt geht dann direkt am Mainufer und kurz darauf am Rheinufer weiter.
* '''Mainz-Kastel''' · Verteidigungsanlage Reduit von 1833. · Am Rhein: Gasthaus mit Gartenbetrieb und Liegestuhl-Strand. · Brücke nach Mainz. Mainz-Kastel ist seit 1945 ein Stadtteil von [[Wiesbaden]]. · S-Bahn S1, S9 und '''S'''tadt-'''E'''xpress nach Wiesbaden und Frankfurt.
===== linksrheinisch: Worms - Mainz: 55 km =====
[[Bild:Oppenheim_katharinenkirche_von_ruine_landskrone_ds_2003.jpg|thumb|[[Oppenheim]] - Blick aus dem Bereich der Burgruine Landskrone auf die Oberrheinische Tiefebene. In der Bildmitte die Katharinenkirche, die man sich bei einem Stop in Oppenheim unbedingt ansehen sollte. Am Horizont ist der Odenwald mit [[Bergstraße]] zu erkennen.]]
[[Bild:rhein_radweg_zwischen_nierstein_und_nackenheim_08_2008.jpg|thumb|Linker Rhein-Radweg an der Rheinterrasse in den Weinbergen zwischen Nierstein und Nackenheim.]]
* '''[[Worms]]''' · Dom und Nibelungensage
: Die Veloroute Rhein folgt dem Rhein weiter in einer weiten Schleife nach Osten. Auf dieser Strecke fährt man weitgehend abseits der Besiedelung und des Verkehrslärms im Bereich des Rheindeichs.
: → Alternativstrecke: „[[Rheinterrassenroute|Rheinterrassen-Route]]“ - Die direkte Route führt entlang der Rheinterrasse durch die Winzerorte über Herrnsheim mit prächtigem Schloss und Schlossgarten, Osthofen, Alsheim und Guntersblum nach [[Oppenheim]]. Die Strecke quert kilometerlang die Rebflächen mit vielen reizvollen Winzerhöfen in den Ortschaften.
* [https://www.faehre-gernsheim.de Auto-Fähre] nach [[Gernsheim]]
* '''Eicher See''' − Wochenendsiedlung mit Bootsanleger und Aussichten zum Rhein und See, kleinere Gartenlokale.
*''' → Altrheinsee''' und weitere Baggerseen mit Bademöglichkeiten.
* Die Personenfähre zur Altrheininsel Kühkopf im [[Naturschutzgebiet Kühkopf-Knoblochsaue]] wurde eingestellt.
* '''[[Oppenheim]]''' · Altstadt mit vielen Fachwerkhäusern, gemütlichem Marktplatz, vielen Straußwirtschaften und Gutsschänken (Weinlokale), Deutsches Weinbaumuseum, Burgruine mit schönem Blick in die Rheinebene.
* '''[[Nierstein]]''' · Kleinstadt im [[Rheinhessen|rheinhessischen Weinland]]
: Die Bundesstraße 9 nach Mainz ist für Radfahrer gesperrt. Man muss im Ort rechtzeitig links in den Ortskern hineinfahren. <br> Zwischen Nierstein und Nackenheim führt der Weg dann landschaftlich sehr reizvoll durch die Weinberge an der Rheinterrasse. Der Verkehrslärm der nahen Bundesstraße trübt hier leider etwas die Idylle.
* '''[[Nackenheim]]'''
: Ab Nackenheim geht die Veloroute wieder direkt am Rhein entlang und erreicht hinter Mainz-Laubenheim die Industriegebiete, führt aber weiterhin direkt am Fluss entlang über asphaltierte, ungestörte Wege bis ins Zentrum.
: → Die [[Rheinterrassenroute|Rheinterrassen-Route]] bietet ab hier wieder eine Alternative durch die Weinberge über Bodenheim bis Mainz-Laubenheim.
* → '''Mainz-Laubenheim''' − nette Gastronomie im Ort <br> Über die Eisenbahnbrücke hinter Mainz-Weisenau kann auf die andere Rheinseite gewechselt werden, links ist die Mainspitze, wo der Main in den Rhein fließt.
* {{Marker | name = Mainz | type= city | wikidata = Q1720}} - Hier lädt die Altstadt mit Dom und Museen zur Erkundung ein. Wer einen Abstecher in die Stadtmitte von {{Marker | name = Wiesbaden | type= city | wikidata = Q1721}} einlegen möchte (u. a. Neroberg mit Standseilbahn, Kurpark), sollte in Mainz einen Aufenthaltstag einlegen.
=== Mittelrhein: Mainz / Wiesbaden – Bonn (etwa 120 km) ===
'''Wichtig: Detailinformationen siehe Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]]'''
{{Mapframe|50.3612 |7.4200 |zoom=8 |height=300 |width=380 |name=Karte vom Geografischen Abschnitt des „Mittelrhein“ - rechtsrheinisch in blau, linksrheinisch in rot. Tourentechnisch wird der Abschnitt Mainz - Bingen hier dem "Mittelrhein" zugeordnet. Dies ergibt von der Anreise her Sinn. |from = Rhein-Radweg Mittelrhein.map}}
{{Scroll Gallery
|title = Oberes Mittelrheintal
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: [[Loreley]] mit Raddampfer „Gothe“
|Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem Koblenzer Zentrum
|Image:Deutsches Eck abends.jpg|Koblenz: Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
Bis Rüdesheim und Bingen sind die Radwege am Rhein auf beiden Seiten gut befahrbar mit fantastischen Aussichten, wenn man am Rhein bleibt. Ab hier zwängt sich der Rhein durch ein enges Tal, sodass große Teile des Radweges direkt neben oder auf stark befahrenen Straßen geführt werden.
Ab der Nordrhein-Westfälischen Landesgrenze vor Bonn wird der Rheinradweg bis Duisburg als Erlebnisweg Rheinschiene weitergeführt. Die Mittelrhein-Radtour sollte dennoch im urbanen Zentrum [[Bonn]] begonnen oder abgeschlossen werden.
==== 15. Etappe: Mainz – Rüdesheim / Bingen (etwa 30 bis 40 km) ====
Auf der kurzen Etappe fährt man je nach Variante fährt rechtsrheinisch im [[Rheingau]] oder linksrheinisch in [[Rheinhessen]].
Nachmittags bietet sich, sofern man hier nicht eh übernachtet, ein Besuch in Rüdesheim mit Drosselgasse und Seilbahn zum Niederwalddenkmal an.
==== 16. Etappe: Bingen / Rüdesheim - Koblenz (etwa 65{{nnbsp}}km) ====
Die einmalige Kulturlandschaft im Welterbe Oberes [[Mittelrheintal]] mit ihren vielen Burgen, Schlössern, schmucken Städtchen und der Weinbaulandschaft ist weltbekannt. Das obere Mittelrheintal wurde im Jahre 2002 als UNESCO-Welterbestätte anerkannt.
Die Etappe zwischen {{Marker | name = Rüdesheim | type= town | wikidata = Q628118}} / {{Marker | name = Bingen | type= town | wikidata = Q285879}} - {{Marker | name = Koblenz | type= town | wikidata = Q3104}} ist zwar nicht lang, aber es gibt viel zu sehen. Je nach Interesse lohnt evt. hier noch ein eine Übernachtung auf halber Strecke in {{Marker | name = St. Goar | type= village | wikidata = Q186037}}. So bleibt Zeit für eine Burgenbesichtigung oder auch eine Erkundung der weltbekannten {{Marker | name = Loreley | type= landscape | wikidata = Q4168}}.
Im romantischen '''oberen [[Mittelrhein|Mittelrheintal]]''' wird zwischen [[Lorch]] und [[Koblenz]] unbedingt empfohlen die linke Rheinseite zu nutzen, da die rechtsrheinische Route bis voraussichtlich zur Bundesgartenschau 2029 noch ''große Lücken'' aufweist.
Wer die Sehenswürdigkeiten am rechten Rheinufer, wie die [[Loreley]] besichtigen möchte, setzt am besten passend mit der Fähre über oder fährt die Teilstrecke mit der Bahn.
{{Panorama|bild=Oberwesel_tal_total_wv_ds_06_2008.jpg|unterschrift=Blick auf Oberwesel|breite=1000px}}
==== 17. Etappe: Koblenz – Bonn im unteren Mittelrheintal (etwa 60 bis 65{{nnbsp}}km) ====
Nach Querung des dicht besiedelten [[w:Neuwieder Becken|Neuwieder Becken]] durchfließt der Rhein ab Andernach noch einmal ein engeres Tal. Links findet sich die [[Eifel]], rechts liegt der [[Westerwald]].
Vor Bonn weites sich das Tal. Die Berges des [[w:Siebengebirge|Siebengebirges]] bestimmen rechtsheinisch die Landschaft. Die Bundesstadt {{Marker | name = Bonn | type= city | wikidata = Q586}} bietet einige Sehenswürdigkeiten.
=== Deutscher Niederrhein: Bonn – Kleve (etwa 250 km) ===
{{Mapframe|51.3272 |6.5554 |zoom=8 |height=400 |width=270 |name=Karte vom Abschnitt „Deutscher Niederrhein“ - rechtsrheinisch in blau, linksrheinisch in rot |from = Rhein-Radweg Niederrhein.map}}
[[Image:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|90px|Elebnisweg Rheinschiene Logo]]
[[Image:Erlebnisweg Rheinschiene Köln 339-z.jpg|thumb|upright|Erlebnisweg Rheinschiene Infotafel in Köln]]
Ab Bonn weites sich in der [[Kölner Bucht]] die Landschaft. Die Berge treten zurück und der Rhein ist hier bei guter Füllung ein mächtiger Strom. Auf diesem wieder sehr dicht besiedeltem Flussabschnitt finden sich bekannte Städte wie Köln, Düsseldorf oder Duisburg.
Von Bonn über Köln und Düsseldorf nach Duisburg wird der Rhein-Radweg beidseitig auch als '''Erlebnisweg Rheinschiene''' vermarktet. Die Deutschlandroute D8 ist nur einseitig beschildert und weicht im Niederrhein vom Rheinradweg ab, da sie durch die Städte führt.
==== 18. Etappe: Bonn – Köln (etwa 40{{nnbsp}}km) ====
'''rechtsrheinisch:'''
[[Image:Köln Rheinpark 026-028 1b-fv.jpg|thumb|530px|Rheinpark in Köln in den letzten Tagen im Oktober vor dem Sonnenuntergang.]]
*'''[[Königswinter]]''' − Burgruine Drachenfels, Schloss Drachenburg, Zahnradbahn, Gästehaus Petersberg
*'''[[Bonn/Beuel|Bonn-Beuel]]'''
*'''[[Niederkassel]]'''
*'''[[Köln/Porz#Sehenswürdigkeiten|Porz]]'''
*'''[[Köln|Köln-Deutz]]''' − großflächiger Rheinpark
* {{Marker | name = Köln | type= city | wikidata = Q365}} - Zentrum mit dem weltbekannten Dom
[[Image:Schoko-Museum 476-khz.jpg|thumb|Schokoladenmuseum im Rheinauhafen]]
'''linksrheinisch:'''
Der Radweg verläuft unmittelbar am Flussufer bis Köln-Niehl
*'''[[Bonn/Bad Godesberg|Bonn-Bad Godesberg]]''' − südlicher Stadtbezirk von Bonn gegenüber dem Siebengebirge
*'''[[Bonn]]''' − Beethovenstadt, Altes Regierungsviertel/Bundestag, Rheinauenpark, Alter Zoll
*'''Wesseling''' − katholische Kirche St. Germanus, Naherholungsgebiet Entenfang <br> über die Industriestraße und Mühlenhof (Bahnbrücke) zurück zum Rhein.
*'''[[Köln]]''' − Kölner Dom und Kölschbraukunst
*'''[[Köln/Rodenkirchen|Köln-Rodenkirchen]]''' − Ehemaliges Fischerdorf mit dem Gasthaus „Zum Treppchen“, Finkens Garten, [[Köln/Rodenkirchen#Parks|Forstbotanischer Garten]], Friedenswald.
* Südbrucke − Eisenbahnbrücke, hier beginnt Kölns neue Rheinpromenade.
* Köln Altstadt Süd
** Bayenturm − Die südöstliche Eckbastion (um 1220) der Stadtbefestigung war Symbol der Bürgerfreiheit nach dem Sieg der Kölner über den Erzbischof.
** Rheinauhafen − Kölns neues Viertel zwischen Rhein und Hafenbecken, Schokoladenmuseum, Deutsches Sport- und Olympiamuseum.
** → Overstolzenhaus
* Köln Altstadt Nord − wo sich die Touristen tummeln und im Zentrum eingekauft wird.
** Rheingarten − Parkanlage über dem Rheinufertunnel
** Altstadthäuser am Fischmarkt
** → Groß St. Martin, Rathaus
==== 19. Etappe Köln – Düsseldorf (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Leverkusen]]'''
*'''[[Monheim am Rhein|Monheim]]'''
* {{Marker | name = Düsseldorf | type= town | wikidata = Q1718}} − Landeshauptstadt NRW
'''linksrheinisch:'''
** Kölner Dom. Hauptbahnhof, Hohenzollernbrücke, Museum Ludwig, Römisch Germanisches Museum
* Köln-Riehl − Skulpturenpark, Flora (Botanischer Garten, Zoo, Rheinseilbahn über die Zoobrücke
*Zwischen Köln-Niehl und Köln-Merkenich durch die Fordwerke. Über den Ivenshofweg, der Merkenicher Hauptstraße und Kasselberger Weg zurück zum Rhein.
*'''[[Dormagen]]''' − im 14. Jahrhundert gegründete Zollstadt im Stadtteil Zons
* Zollfeste Zons − gut erhaltene mittelalterliche Mauern und Türme, gemütlicher Altstadtkern mit mächtigen Rheinturm.
*'''[[Neuss]]''' − empfohlener Wechsel auf die rechte Rheinseite nach Düsseldorf.
*'''Düsseldorf-Oberkassel''' − Über die Oberkasseler Brück kann die Stadmtitte mit Altstadt von Düsseldorf erreicht werden.
==== 20. Etappe Düsseldorf – Wesel (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
* Düsseldorf-Kaiserswerth − Barbarossa-Pfalz Kaiserswerth
* Duisburg-Mündelheim − Brücke nach [[Krefeld]]
*'''[[Duisburg]]''' − Ende des „Erlebnisweg Rheinschiene“, Ausschilderung wieder als Rheinradweg.
*'''[[Dinslaken]]''' Ortsteil Eppinghoven
*'''[[Voerde]]''' Ortsteile Möllen, Götterswickerhamm, Mehrum und Spellen
* {{Marker | name = Wesel | type= town | wikidata = Q4011}}
'''linksrheinisch:'''
*'''[[Meerbusch]]''', Ortsteil '''Langst-Kierst''' − ab hier entfernt sich der Radweg vom Rheinufer, Fähre nach Düsseldorf-Kaiserwerth.
*'''Krefeld-Uerdingen''' → nach '''[[Krefeld]]-Zentrum''' sind es 7,7 km − „Samt- und Seidenstadt“ des 18. u. 19. Jahrh.
*'''Duisburg-Homberg''' → nach '''[[Duisburg]]-Zentrum''' sind es 6 km, nach '''[[Moers]]''' ca. 8{{nnbsp}}km.
* Alter Hebeturm
*'''Rheinberg-Orsoy''' − Ende des „Erlebnisweg Rheinschiene“. Ab hier ist wieder der „Rheinradweg - Veloroute Rhein“ mit dem Routenlogo „Euroradler“ ausgeschildert.
*'''[[Rheinberg]]''' − die ehemalige Zoll- und Festungsstadt Rheinberg hat einen sehenswerten historischen Ortskern.
*'''Niederrheinbrücke Wesel''' - Anschluss an die Stadtmitte von [[Wesel]]
==== 21. Etappe Wesel – Kleve (etwa 50{{nnbsp}}km) ====
'''rechtsrheinisch:'''
*'''[[Rees]]'''
*'''[[Emmerich am Rhein]]''' − Ende des rechtsrheinischen Rheinradwegs, lokale Wegführung in die Niederlande.
'''linksrheinisch:'''
*'''[[Xanten]]''' – 2000 Jahre alte Römerstadt „Colonia Ulpia Traiana“, Archäologischen Park, Dom St. Viktor, Klever Tor, Kriemhildmühle
*'''[[Kalkar]]''' − „Freizeitpark Wunderland Kalkar“, dem ehemaligen Schnellen Brüter,
*'''[[Kleve]]''' − Zentrum am Niederrhein mit gemütlicher Stadtmitte
=== Rijnfietsroute: Rheinradweg in den Niederlanden (etwa 270{{nnbsp}}km) ===
{{Mapframe|51.8777 |5.0244 |zoom=8 |height=220 |width=420 |name=Karte der EV15 in den Niederlanden |from = Rhein-Radweg Niederlande.map}}
[[Datei:LF17.JPG|mini|Beschilderung in den Niederlanden]]
In den Niederlanden teilt sich der Rhein und fügt sich mit dem FLuss Maas zusammen. Die Eurovelo-Route EV15 verläuft hier auf der '''Rijnfietsroute''' (früher Rijndeltaroute genannt). Die Route besitzt zwischen Millingen aan de Rijn und Gorinchem zwei Äste. Denn in Millingen aan de Rijn teilt sich auch der Rhein das erste Mal.
Die Niederländische Wegweisung arbeitet mit Knotenpunkten, an denen weiterführende Tafeln stehen. Die Nummer führt zum nächsten Knotenpunkt. [http://www.fietsplatform.nl/deutsch/ Video zum Radfahren mit Knotenpunkten], [https://www.nederlandfietsland.nl/fietsrouteplanner/ Niederländischer Routenplaner]
Wer möchte kann sich im Knotenpunktnetz auch individuell seine Strecke durch das Delta zur Nordsee suchen. Radrouter im Netz werfen für die direkte Strecke Varianten zwischen 170 bis 180{{nnbsp}}km aus.
Im folgenden allerdings die Etappen für die Variante auf der EV 15:
==== 22. Etappe: Kleve - Arnheim (etwa 40{{nnbsp}}km) ====
Kurze Etappe, in Arnhem gibt es einiges zu Entdecken. So liegt nördlich der Stadt das Freilichtmuseum der Niederlande und es gibt einen großen Zoo.
*{{Marker | name = Kleve | type= town | wikidata = Q6842}}
*{{Marker | name = Millingen am Rhein | type= village | wikidata = Q533164}} - Fähre (verkehrt April bis September, [https://kievitsveerdiensten.com/index.php/nl/millingen-aan-de-rijn-pannerden/ Infos])
*{{Marker | name = Arnheim | type= town | wikidata = Q1310}}
====23. Etappe: Arnheim - Wijk bij Duurstede (etwa 60{{nnbsp}}km) ====
Die Route schlängelt sich nördlich des Rheinarms "Nederrijn" durch die Städte und Dörfer. Vom Rhein bekommt man auf längeren Abschnitten wenig mit. Etappenstadt in {{Marker | name = Wijk bij Duurstede | type= town | wikidata = Q10053}}.
====24. Etappe: Wijk bij Duurstede - Gorinchem (etwa 50{{nnbsp}}km) ====
Ab Wijk bij Duurstede gibt es eine Fährfahrt über den Nederrijn. Der Radweg schlängelt dann sich durch die Polderlandschaft des Rheindeltas. {{Marker | name = Gorinchem | type= town | wikidata = Q244327}} besitzt eine Altstadt.
====25. Etappe: Gorinchem - Dordrecht (etwa 60{{nnbsp}}km) ====
Der Radwanderweg schlänget sich südlich von Gorinchem im Delta nach {{Marker | name = Dordrecht | type= town | wikidata = Q26421}}. Ab Gorinchem eine Fährfahrt über die Waal, dem Hauptmündungsarm des Rheins.
==== 26. Etappe: Dordrecht - Hoek van Holland (etwa 60{{nnbsp}}km) ====
[[Datei:Hoek van Holland.jpg|120px|mini|Hoek van Holland Entfernungsbaum]]
Die Etappe führt durch den Ballungsraum bei Rotterdam. In Hoek van Holland endet der Rhein-Radweg EV15 am Strand.
*{{Marker | name = Dordrecht | type= town | wikidata = Q26421| show = copy}}
*{{Marker | name = Rotterdam | type= town | wikidata = Q34370}}
*{{Marker | name = Hoek van Holland | type= town | wikidata = Q990130}}
==== Alternatives Ziel: [[Amsterdam]] ====
In Wijk bij Duurstede zweigt der Amsterdam-Rhein-Kanal ab.
Im Radreise-Wiki sind Daten zur Strecke '''[https://www.radreise-wiki.de/Emmerich_-_Amsterdam Emmerich–Amsterdam]''' (140 km) zu finden. Von [[Amsterdam]] ist es nicht mehr weit bis zur [[Nordsee]].
==== Alternative Route: [[Emmerich am Rhein]] - [[Deventer]] - [[Zwolle]] - [[Urk]] ====
Dem Verlauf des Mündungsarmes '''IJssel''' folgen bis zur Ostseite des IJsselmeer.
== Weiter geht's ==
[[Datei:Cadzand-Bad 100 01.jpg|mini|LF Kustroute]: Wegweisung im Knotenpunktnetz der Niederlande mit extra Hinweis zur Kustroute]]
* Wer Lust hat, kann die Tour auf der '''[[LF Kustroute]]''' fortsetzen. Es handelt sich hier um den niederländischen Abschnitt des internationalen [[North Sea Cycle Route|Nordseeküsten-Radweg]] (North Sea Cycle Route).
== GPX-Daten ==
* Streckenverlauf Rhein-Radweg (Eurovelo EV15) als GPX-Track von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=2171555&type=relation&map=6.0/49.7572/9.4453 GPX- und KML-Datei auf waymarkedtrails.org]. Es kann die Richtung der GPX-Daten gewählt werden. Ferner kann hier auch ein Höhenprofil eingesehen werden. Die Daten zeigen auf langen Streckenbereichen beide Alternativen auf (also sowohl links- wie rechtsrheinisch).
* Routenprofil mit GPX-Daten und Google Earth KMZ-Datei im '''[https://radreise-wiki.de/Rhein#GPS_Tracks Radreise-Wiki]''' (Andermatt - Emmerich)
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Radreiseführer '''Rhein-Radweg Band 1 - 3'''
**'''Band 1''': ''Von Andermatt nach Basel'', 2022, {{ISBN|978-3711100634}}
**'''Band 2''': ''Von Basel nach Mainz'', 2023, {{ISBN|978-3711101884}}
**'''Band 3''': ''Von Mainz nach Duisburg'', 2022, {{ISBN|978-3711100900}}
**'''Band 4''': ''Von Köln nach Hoek van Holland'', 2023, {{ISBN|978-3711101631}}
== Weblinks ==
*'''Eurovelo''': [https://de.eurovelo.com/ev15 offizielle Infos zum Rheinradweg EV15] - in Französisch, Englisch, Deutsch und Niederländisch
''Hier bitte nur frei zugängliche Routenplaner (ohne Zugangsgebühr) listen.''
{{IstIn|Radreisen in Europa}}
[[Kategorie:Rhein]]
[[Kategorie:Radwege in der Schweiz]]
[[Kategorie:Radwege in Österreich]]
[[Kategorie:Radwege in Baden-Württemberg]]
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radwege in Frankreich]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radwege in den Niederlanden]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
5zapq1o6vz6k2dcdmlm6ab09pe7ras1
Westerwald
0
7498
1769174
1761135
2026-04-17T08:39:14Z
~2026-23774-69
58168
/* Rheinland-Pfalz */
1769174
wikitext
text/x-wiki
{{quickbar Region}}
[[File:Fuchskaute.JPG|mini|Die Fuchskaute und Willingen im Hohen Westerwald]]
Der '''Westerwald''' ist ein Mittelgebirge, das am Dreiländereck von [[Hessen]], [[Rheinland-Pfalz]] und [[Nordrhein-Westfalen]] liegt.
== Regionen ==
[[File:Westerwald - Deutsche Mittelgebirge, Serie A-de.png|mini|hochkant=1.5|Übersichtskarte Westerwald (zum Vergrößern klicken)]]
Der höchstgelegene Teil des Westerwalds ist der '''Hohe Westerwald''', direkt am Dreiländereck von Hessen, NRW und Rheinland-Pfalz, dessen höchste Spitze die 657 Meter hohe Fuchskaute ist. Weitere Bergketten sind der '''Oberwesterwald''', '''Niederwesterwald''' und '''[[Montabaur]]er Westerwald'''. Im Zentrum der Region liegt die '''Westerwälder Seenplatte'''. In touristischen Kontexten wird die Region auch in '''nördlichen''' und '''südlichen Westerwald''' eingeteilt (die Trennung verläuft etwa entlang der Linie [[Linz am Rhein|Linz]]–[[Puderbach]]–[[Westerburg]]).
An den Rändern des Westerwalds liegen das Siegtal (Norden), [[Mittelrheintal]] (Westen), [[Lahntal]] (Süden; Grenze zum [[Taunus]]) und Dilltal (Osten; Grenze zum [[Lahn-Dill-Bergland|Gladenbacher Bergland]]). Die nordwestlichen Ausläufer des Westerwalds bilden das [[Siebengebirge]].
== Orte ==
=== Rheinland-Pfalz ===
;nördlicher Westerwald
* [[Alpenrod]]
* [[Altenkirchen (Westerwald)|Altenkirchen]]
* [[Marienthal (Westerwald)|Kloster und Wallfahrtsort Marienthal bei Altenkirchen]]
* [[Asbach (Westerwald)]]
* [[Bad Ems]]
* [[Betzdorf]]
* [[Daaden]]
* [[Hachenburg]]
* [[Hamm (Sieg)]]
* [[Herdorf]]
* [[Kirchen (Sieg)]]
* [[Mudersbach]]
* [[Bad Marienberg]]
* [[Rennerod]]
* [[Westerburg]]
* [[Abtei Marienstatt|Abtei Marientatt in Streithausen]]
* [[Nentershausen (Westerwald)|Nentershausen]]
* [[Ailertchen]]
* Bellingen
* [[Berzhahn]]
* [[Brandscheid]]
* [[Mogendorf]]
* [[Enspel]]
* [[Gemünden (Westerwald)]]
* [[Girkenroth]]
* [[Guckheim]]
* [[Halbs]]
* [[Härtlingen]]
* [[Hergenroth]]
* [[Höhn]]
* [[Kaden]]
* [[Kölbingen]]
* [[Langenhahn]]
* [[Pottum]]
* [[Rotenhain]]
* [[Rothenbach]]
* [[Stahlhofen am Wiesensee]]
* [[Stockum-Püschen]]
* [[Weltersburg]]
* [[Willmenrod]]
* [[Winnen (Westerwald)]]
* [[Wissen]]
[[Unkel]] liegt im Mittelrheintal am Westrand des Westerwalds.
[[File:Schloss montabaur1.jpg|mini|Schloss Montabaur]]
;südlicher Westerwald
* [[Dierdorf]]
* [[Höhr-Grenzhausen]]
* [[Montabaur]]
* [[Ransbach-Baumbach]]
* [[Rengsdorf]]
* [[Selters (Westerwald)]]
* [[Wirges]]
[[Koblenz]], [[Neuwied]], [[Bad Hönningen]] und [[Linz am Rhein]] liegen im Mittelrheintal am Westrand des Westerwalds; [[Diez]], [[Nassau (Lahn)|Nassau]] und [[Bad Ems]] im Lahntal an seinem Südrand.
=== Hessen ===
;nördlicher Westerwald
* [[Breitscheid]]
* [[Driedorf]]
* [[Greifenstein]]
* [[Haiger]]
;südlicher Westerwald
* [[Dornburg]]
* [[Hadamar]]
* [[Mengerskirchen]]
* [[Waldbrunn (Westerwald)|Waldbrunn]]
[[Limburg an der Lahn]], [[Runkel]], [[Weilburg]], [[Wetzlar]], [[Herborn]] und [[Dillenburg]] liegen am Rand des Westerwalds.
=== Nordrhein-Westfalen ===
[[Eitorf]] und [[Windeck]] liegen an der Sieg am Nordrand des Westerwalds.
[[Burbach (Siegerland)]] und [[Wilnsdorf]] im südlichen Siegerland gehören auch noch zum Westerwald.
== Weitere Ziele ==
== Hintergrund ==
== Sprache ==
Im Westerwald wird Deutsch gesprochen. Die einheimischen Bewohner des Westerwaldes sprechen untereinander meistens noch als Dialekt das [https://de.wiktionary.org/wiki/Verzeichnis:Deutsch/W%C3%A4ller_Platt '''Wäller Platt'''].
== Anreise ==
=== Flughäfen ===
Die Flughäfen {{marker|name=Flughafen Köln Bonn|wikidata=Q157741|type= airport|show=none}} (55{{nnbsp}}km nordwestlich von Altenkirchen) und {{marker|type = airport|name = [[Flughafen Frankfurt am Main|Flughafen Frankfurt]] |wikidata = Q46033 |show = none}} (85{{nnbsp}}km südöstlich von Montabaur) sind zur Anreise geeignet. Vom Flughafen Frankfurt fahren ICEs in 17 Minuten nach Limburg-Süd und in unter einer halben Stunde direkt nach Montabaur. Nach Westerburg braucht man via Limburg knapp 1½ Stunden, nach Haiger mit Umsteigen in Frankfurt Hbf ca. 1:45 Std. Von Köln/Bonn kommt man mit der S-Bahn in einer knappen Stunde nach Au (Sieg) am Nordrand des Westerwalds, nach Altenkirchen sind es mit einmal Umsteigen knapp 1½ Stunden.
In [[Burbach (Siegerland)]] befindet sich der [https://www.siegerland-airport.de/ Siegerlandflughafen], er eignet sich für "Selbstflieger", auch werden Charterflüge angeboten.
=== Mit der Bahn ===
Nahe gelegene Anschlüsse an den Eisenbahnfernverkehr bestehen an den Bahnhöfen Montabaur und Limburg-Süd an der Schnellfahrstrecke Köln–Rhein/Main sowie am Hauptbahnhof Koblenz an der linken Rheinstrecke.
Im Westerwald verkehren folgende Regionalbahnlinien:
* {{Bahnlinie|RE|9}}, Rhein-Sieg-Express: Aachen – Düren – Köln – Siegburg/Bonn – Au(Sieg) – Wissen(Sieg) – Betzdorf(Sieg) – Siegen
* {{Bahnlinie|RE|25}}, Lahntal-Express: Koblenz – Niederlahnstein – Bad Ems – Diez – Limburg(Lahn) – Weilburg – Wetzlar – Gießen
* {{Bahnlinie|RE|99}}, Main-Sieg-Express: Frankfurt am Main – Gießen – Wetzlar – Haiger – Siegen
* {{Bahnlinie|RB|29}}, Unterwesterwaldbahn: Limburg(Lahn) – Diez Ost – Montabaur – Wirges – Siershahn
* {{Bahnlinie|RB|23}}, Lahn-Eifel-Bahn: Limburg(Lahn) – Diez – Bad Ems – Niederlahnstein – Koblenz – Andernach – Mayen
* {{Bahnlinie|RB|25}}, Lahntalbahn: Limburg(Lahn) – Weilburg – Wetzlar – Gießen – Alsfeld – Fulda
* {{Bahnlinie|RB|90}}, [[Oberwesterwaldbahn]] / Westerwald-Sieg-Bahn: Limburg(Lahn) – Diez Ost – Westerburg – Nistertal/Bad Marienberg – Hachenburg – Altenkirchen – Au(Sieg) – Wissen – Siegen
* {{Bahnlinie|RB|95}}, Sieg-Dill-Bahn: Siegen – Haiger – Dillenburg
* {{Bahnlinie|RB|96}}, Hellertalbahn: Betzdorf(Sieg) – Herdorf – Neunkirchen – Haiger – Dillenburg
* {{Bahnlinie|RB|97}}, Daadetalbahn: Betzdorf(Sieg) – Daaden
Die Linien RE9, RB23 und RE25 werden durch die [[DB Regio]] betrieben, die Linien RB29, RB90, RB95 und RB96 durch den Betriebszweig [[Dreiländerbahn]] der Hessischen Landesbahn, die Linie RB97 wird durch die [[Westerwaldbahn]] betrieben, die Linien RB25 und RE99 durch die [http://www.hessenbahn.de Hessische Landesbahn HLB].
=== Mit Regional- und Fernbussen ===
*An den Busbahnhöfen '''Bahnhof Montabaur/FOM''' und '''Konrad-Adenauer-Platz Montabaur''' bestehen Regionalbusverbindungen in Richtung Hachenburg, Rennerod, Bad Marienberg, Koblenz, Limburg(Lahn) und Westerburg.
Seit dem 01. Januar 2017 gilt für Bus- und Zugfahrscheine im Westerwaldkreis der Gemeinschaftstarif des [http://www.vrminfo.de Verkehrsverbund Rhein-Mosel (VRM)].
*Am Busbahnhof '''Bahnhof Montabaur/FOM''' verkehren zudem [[Fernbusse in Deutschland|Fernbusse]] der Firmen Univers und [https://www.flixbus.de Flixbus] in Richtung Köln, Düsseldorf, Aachen, Frankfurt am Main, Mainz und Wiesbaden.
* [http://www.busliniensuche.de Busliniensuche.de]
== Mobilität ==
Regelmäßige Bahn- und Busverbindungen sind hier zu entnehmen:
=== Verkehrsunternehmen ===
* [[DB Regio|Deutsche Bahn AG]], [http://www.bahn.de/p/view/index.shtml '''www.bahn.de''']
* Rhein-Mosel-Bus [http://www.rmv-bus.de/ '''www.rmv-bus.de'''] · Busgesellschaft der Deutschen Bahn AG
* [http://www.ulrichbeul.de/ '''Omnibus- Linien- und Reiseverkehr KG'''], Ulrich Beul/Westerwald
* Martin-Becker-Bus GmbH [http://www.mb-bus.de/ '''www.mb-bus.de''']
* [[Westerwaldbahn|Westerwaldbahn GmbH (WEBA)]], [https://www.westerwaldbahn.de/ '''www.westerwaldbahn.de''']
* [[Dreiländerbahn]], [https://www.dreilaenderbahn.de '''www.dreilaenderbahn.de''']
* Hessische Landesbahn (HLB), [https://www.hlb-online.de '''www.hlb-online.de''']
Oldtimer-Busfahrten für Gruppen mit [https://www.schwyzer-poschti.de Schwyzer Poschti - Oldtimer-Busfahrten im Rheinland]
=== Verkehrsverbünde ===
* '''[[Verkehrsverbund Rhein-Mosel]]''' [http://www.vrminfo.de/ www.vrminfo.de] · Verbindungsauskunft und Tarifsystem für den Westerwaldkreis, den Landkreis Altenkirchen, den Rhein-Lahn-Kreis, Landkreis Neuwied und die Stadt Koblenz.
* '''[[Verkehrsverbund Rhein-Sieg]]''' VRS [https://www.vrsinfo.de/ '''www.vrsinfo.de'''] · Verbindungsauskunft und Tarifsystem (Übergangstarif) für den Landkreis Altenkirchen und den Landkreis Neuwied, aus dem VRS Gebiet kommend.
* '''[[Rhein-Main-Verkehrsverbund]]''' [http://www.rmv.de/ www.rmv.de] · Verbindungsauskunft und Tarifsystem für den [[Hessen|Hessischen]] Teil des Westerwaldes (Landkreis Limburg-Weilburg, Lahn-Dill-Kreis.
=== Rheinland-Pfalz-Takt ===
* Zweckverband Schienenpersonennahverkehr Rheinland-Pfalz-Nord [https://www.spnv-nord.de/ '''www.spnv-nord.de'''] Organisation des SPNV im nördlichen Rheinland-Pfalz.
* Rheinland-Pfalz-Takt [http://www.der-takt.de/ '''www.der-takt.de'''] Link zum Rheinland-Pfalz-Takt.
== Sehenswürdigkeiten ==
=== Berggipfel und Aussichtspunkte ===
* '''Beulskopf''' - Der [http://www.heupelzen.de/html/raiffeisenturm.html '''Raiffeisenturm'''] in 388 m Höhe gelegen ist 35 m hoch.
* '''Bismarckturm''' - bei [[Altenkirchen (Westerwald)|Altenkirchen]] [https://www.bismarckturm-ak.de/ gelegen], 14 m hoch.
* '''Fuchskaute''' - Sie ist mit 657 m die höchste Erhebung des Westerwaldes (kein Aussichtsturm). Im Bereich des Berges gibt es "[http://fuchskaute.de Gipfelgastronomie]".
* '''[[Alpenrod#Gräbersberg mit Aussichtsturm|Gräbersberg]]''' - 513 m mit ''Aussichtsturm'' bei [[Alpenrod]]
* '''Ottoturm''' - 450 m hoch, mit [http://www.ottoturm-kirchen.de/index.php?ottoturm Aussichtsturm].
* '''Stegskopf''' - 654 m hoch, kein Aussichtsturm (Truppenübungsgelände)
=== Seen und Gewässer ===
[[File:Protected landscape area Westerwaelder Seenplatte Maxsain 6.jpg|mini|Am Saynbach im Landschaftsschutzgebiet Westerwälder Seenplatte (bei Maxsain)]]
* [http://www.westerwald.info/wandern/weiherweg.htm '''Westerwälder Seenplatte'''] - Die Teichlandschaft liegt ca. 23 km nördlich von [[Montabaur]].
** [http://www.driedorf.de/de/tourismus/krombachtalsperre/ '''Der Krombachtalsperre'''] ca. 6 km östlich von [[Rennerod]] bietet diverse Sportmöglichkeiten und Erholung pur.
** In [http://www.dreifelden.de/ '''Dreifelden'''] ca. 10 km südlich von [[Hachenburg]] lässt sich auch wunderbar [http://www.dreifelder-weiher.de/ "campen"].
** Der '''[[Wiesensee]]''' ca. 4 km nördlich von [[Westerburg]] zeigt sich besonders im Sommer am schönsten. Der See wird umgeben von Wälder, die gerne auch zum Wandern verführen.
=== Burgen, Schlösser und Klöster ===
[[File:Abtei Marienstatt no.jpg|mini|Abtei Marienstatt]]
[[File:Greifenstein - Burg - gesamt.jpg|mini|Burg Greifenstein]]
* {{vCard |type=monastery |name=Abtei Marienstatt |wikidata=Q61914073 |url=http://www.abtei-marienstatt.de/start.php?aktiv=aktuelles&sub=anfahrt |description=bei [[Hachenburg]]
}}
* {{vCard |type=castle |name=Burg Greifenstein |url=https://www.burg-greifenstein.net |description=mit dem [https://www.glockenmuseum.de '''Deutschen Glockenmuseum''']. Die Burg liegt ca. 8 km südlich von [[Herborn]]
}}
* {{vCard |type=castle |name=Burg Runkel |wikidata=Q874886 |url=http://www.burg-runkel.de/ |description=Die Burg befindet sich ca. 11 km östlich von [[Limburg an der Lahn]]
}}
* {{vCard |type=fort |name=[[Koblenz#vCard Q50712|Festung Ehrenbreitstein]] |wikidata=Q50712 |description=in [[Koblenz]]
}}
* {{vCard |type=monastery |name=Kloster Marienthal |wikidata=Q1775638 |url=http://www.kloster-marienthal.eu/ |description=in [[Marienthal (Westerwald)|Seelbach-Marienthal]] bei [[Altenkirchen (Westerwald)|Altenkirchen]]
}}
* {{vCard |type=château |name=[[Montabaur#vCard Q2242458|Schloss Montabaur]] |wikidata=Q2242458 |description=in [[Montabaur]]
}}
* {{vCard |type=castle |name=[[Westerburg#vCard Q2244100|Schloss Westerburg]] |wikidata=Q2244100 |description=in [[Westerburg]], ca. 20 km nordöstlich von [[Montabaur]]
}}
=== Museen ===
Bedeutende Museen im Westerwald:
* {{vCard |type=museum |name=Eisenbahntechnisches Museum |url=http://www.wef44508.de/ |description=in [[Westerburg]] (ca. 22 km nordöstlich von [[Montabaur]] an der L 300)
}}
* {{vCard |type=museum |name=[[Höhr-Grenzhausen#vCard Q1739170|Keramikmuseum Westerwald]] |wikidata=Q1739170 |description=in [[Höhr-Grenzhausen]] (ca. 12 km nordöstlich von [[Koblenz]] an der A 48)
}}
* {{vCard |type=museum |name=Landschaftsmuseum Westerwald |wikidata=Q1803782 |url=http://www.landschaftsmuseum-ww.de/lsmww/site/user/ |description=in [[Hachenburg]] (ca. 36 km nördlich von [[Montabaur]] an der K 24)
}}
* {{vCard |type=museum |name=Tonbergbaumuseum |wikidata=Q2441502 |url=https://www.tonbergbaumuseum.de |description=in [[Siershahn (Westerwald)]] (ca. 6 km nordwestlich von [[Montabaur]] an der A 3)
}}
* {{vCard |type=museum |name=Trachtenmuseum |url=http://www.quetschegass.de/ |description=in [[Westerburg]] (ca. 22 km nordöstlich von [[Montabaur]] gelegen)
}}
=== Höhlen und Schaubergwerke ===
* {{vCard |type=cave |name=Schauhöhle Herbstlabyrinth |description=Die im Mai 2009 neu eröffnete Schauhöhle bei [[Breitscheid]] ist Deutschlands modernste Schauhöhle. Eine sparsame LED-Beleuchtung erleuchtet einen prachtvollen Höhlensaal mit Tropfsteinen. Aufgrund der großen Nachfrage müssen die Eintrittkarten 1 - 2 Wochen vorher reserviert werden ([http://www.schauhöhle-breitscheid.de www.schauhöhle-breitscheid.de] u. a. Infos mit Öffnungszeiten und Buchungsinfos). Interessant: [http://www.schauhöhle-breitscheid.de/HoehleundLichttechnik Infos zur Höhle].
}}
* {{vCard |type=mining museum |name=Besucherbergwerk mit Feld- und Grubenbahnmuseum Fortuna |url=http://www.foerderverein-grube-fortuna.de/index2.php |description=in [[Oberbiel]] bei [[Solms]]}}
=== Sonstiges ===
* Naturerlebnis [https://www.der-schoene-tag.de/holzbachschlucht-bei-gemuenden/ '''"Die Holzbachschlucht"'''] bei [[Gemünden (Westerwald)]] (ca. 24 km nordöstlich von [[Montabaur]])
* {{vCard |type=theme park |name=Tertiär- und Industrie-Erlebnispark Stöffel |url=https://stoeffelpark.de/ |wikidata=Q2405898 |description=in [[Enspel (Westerwald)]] (ca. 26 km nördlich von [[Montabaur]])
}}
* Wie der Westerwald geologisch entstand, zu sehen in der [http://www.lvermgeo.rlp.de/freizeit/sehenswuerdigkeiten/basaltpark.html '''Basaltpark'''] bei [[Bad Marienberg (Westerwald)]], (ca. 31 km nördlich von [[Montabaur]])
* {{vCard |type=zoo |name=[[Bad Marienberg (Westerwald)#vCard Q2570784|Wildpark Bad Marienberg]] |wikidata=Q2570784 |description=nahe [[Bad Marienberg (Westerwald)]]
}}
* {{vCard |type=zoo |name=Wild- und Freizeitpark Westerwald |url=http://www.isfb.de/freizeitpark/der_park.html |description=bei [[Gackenbach (Westerwald)]] (ca. 10 km südlich von [[Montabaur]])
}}
== Aktivitäten ==
=== Wandern ===
* Wandern - zum Beispiel auf dem 235 km langen [http://www.westerwaldsteig.de '''Westerwaldsteig''']
* Wandern, Fahrradfahren, Inlineskating auf dem Fahrradweg zwischen [[Westerburg]] und [[Wallmerod]], die Strecke ist 25 km lang
=== Wassersport ===
* Segeln, Surfen, Schwimmen und Sonnenbaden
**[http://www.driedorf.de/de/tourismus/krombachtalsperre/ Der Krombachtalsperre] bei [[Mademühlen]]
**'''[[Dreifelden]]''' - ca. 10 km südlich von [[Hachenburg]]
**[https://www.scwp.de/ '''Segel-Club „Wällerwind“ Pottum e.V.'''] Segeln am Wiesensee
=== Floßfahrt ===
* [https://www.flossfahrt-lahn.de/ '''Floßfahrten auf der Lahn''']
* '''Floßfahrt am [[Wiesensee]]''' - unmittelbar bei [[Stahlhofen am Wiesensee]] befindlich
=== Flugsport ===
* Von Segelflug bis Modellflug bei der [https://www.fsv-ailertchen.de/ Flugsportverein "Glück Auf!" Ailertchen e.V.] nahe [[Ailertchen]], 24 km nördlich von [[Montabaur]]
=== Golfsport ===
* [http://www.golfclub-wiesensee.de/ '''Erlebniswelt Golf am Wiesensee'''] bei [[Stahlhofen am Wiesensee]] ca. 4 km nördlich von [[Westerburg]] gelegen
* [https://www.gc-westerwald.de/ '''Golf-Club Westerwald e.V.'''] bei [[Dreifelden]] 10 km südlich von [[Hachenburg]]
=== Inlineskating ===
* oder Wandern und Fahrradfahren auf dem Fahrradweg zwischen [[Westerburg]] und [[Wallmerod]] auf eine Strecke von 25 km Länge, siehe auch [http://www.skater-land.de/index.html?http://www.skater-land.de/routen/route_3.htm '''Route Westerburg/Wallmerod''']
=== Luftsport ===
* Fallschirmspringen mit der [http://www.fallschirmsport-ailertchen.de/ Skydive Ailertchen e.V.] in [[Ailertchen]], 24 km nördlich von [[Montabaur]]
=== Wintersport ===
* '''Schlittschuhlaufen am [[Wiesensee]]'''
:(falls das Wetter mitspielt und sich Eis auf dem See bildet) bei [[Stahlhofen am Wiesensee]]
=== Sonstiges ===
* [http://www.motorrad-gottesdienst.de/index.html '''Westerwälder Motorrad Gottesdienst'''] bei [[Rennerod]]
* Kultur und Geschichte der Stadt [http://www.hachenburg.de/pages/stadtfuehrer.htm '''Hachenburg'''] erleben.
== Küche ==
Bodenständig: Wild, Fisch, Weidevieh, Gemüse, Kartoffeln in all ihren Variationen [https://www.westerwald.info/genuss/rezepte.html '''"Westerwälder Küche"''']
'''Trinken:'''
* [http://www.hachenburger.de/index2.html '''Hachenburger'''] - Bierbrauerei in [[Hachenburg]]
* [https://www.brennerei-struthof.de '''Struthof'''] - Brennerei in [[Unnau]]
== Nachtleben ==
== Sicherheit ==
* '''Die Notrufnummern'''
** Giftzentrale Mainz: (0 61 31) 23 24 66
* '''Krankenhäuser'''
** DRK-Krankenhaus in [[Altenkirchen (Westerwald)|Altenkirchen]], Telefon (02681) 880, Leuzbacher Weg 21
** DRK-Krankenhaus in [[Hachenburg]], Telefon: (0 26 62) 8 50
** Herz-Jesu-Krankenhaus in [[Dernbach (Westerwald)]], Telefon: (0 26 02) 68 40
** Krankenhaus der Barmherzigen Brüder in [[Montabaur]], Telefon: (0 26 02) 12 20
** St. Anna Krankenhaus in [[Hadamar (Westerwald)]], Telefon: (0 64 33) 8 70
** Technisches Hilfswerk in [[Montabaur]], Telefon: (0 26 02) 1 65 77
Die Notfallversorgung des Westerwaldes ist sichergestellt. Der Westerwald ist praktisch sicher. Bei öffentlichen Veranstaltungen oder Benutzung von öffentlichen Verkehrsmitteln ist auf eigene Privatsachen gegen Taschendiebe zu achten.
== Klima ==
== Literatur ==
* [http://www2.genealogy.net/vereine/ArGeWe/buecher/ww-bl.htm ''Bücher über den Westerwald oder Orte im Westerwald'']
* {{Buch |Titel=Deutsche Landkreise im Portrait: Westerwaldkreis |Verlag=Kommunikation und Wirtschaft |ISBN=978-3-88363-287-2}}
* {{Buch |Titel=Entdeckungsreise durch das Kultur- und Wanderland Westerwald |Verlag=Ziethen-Panorama Verlag GmbH |ISBN=3929932547}}
* ''Westerwaldsteig - Schöneres Wandern Pocket. Tourenkarten, Höhenprofile, GPS-Daten und sep. Faltkarte.17 Tagesetappen von Herborn nach Bad Hönningen. Einkehr- und Übernachtungstipps'', Verlag: ideemedia, {{ISBN|978-3934342255}}
== Weblinks ==
* [http://www.westerwald-kreis.de/index.php '''Westerwaldkreis - offiziell''']
* [https://westerwald.info '''Westerwald Touristik - offiziell''']
{{class-2}}
{{GeoData| lat= | long= | radius= }}
{{IstInKat|Deutschland||Rheinland-Pfalz||Mittelhessen||Südwestfalen}}
7jrid16kbjdpsb714fuxiq5nn89o025
1769181
1769174
2026-04-17T09:12:21Z
~2026-23774-69
58168
/* Rheinland-Pfalz */
1769181
wikitext
text/x-wiki
{{quickbar Region}}
[[File:Fuchskaute.JPG|mini|Die Fuchskaute und Willingen im Hohen Westerwald]]
Der '''Westerwald''' ist ein Mittelgebirge, das am Dreiländereck von [[Hessen]], [[Rheinland-Pfalz]] und [[Nordrhein-Westfalen]] liegt.
== Regionen ==
[[File:Westerwald - Deutsche Mittelgebirge, Serie A-de.png|mini|hochkant=1.5|Übersichtskarte Westerwald (zum Vergrößern klicken)]]
Der höchstgelegene Teil des Westerwalds ist der '''Hohe Westerwald''', direkt am Dreiländereck von Hessen, NRW und Rheinland-Pfalz, dessen höchste Spitze die 657 Meter hohe Fuchskaute ist. Weitere Bergketten sind der '''Oberwesterwald''', '''Niederwesterwald''' und '''[[Montabaur]]er Westerwald'''. Im Zentrum der Region liegt die '''Westerwälder Seenplatte'''. In touristischen Kontexten wird die Region auch in '''nördlichen''' und '''südlichen Westerwald''' eingeteilt (die Trennung verläuft etwa entlang der Linie [[Linz am Rhein|Linz]]–[[Puderbach]]–[[Westerburg]]).
An den Rändern des Westerwalds liegen das Siegtal (Norden), [[Mittelrheintal]] (Westen), [[Lahntal]] (Süden; Grenze zum [[Taunus]]) und Dilltal (Osten; Grenze zum [[Lahn-Dill-Bergland|Gladenbacher Bergland]]). Die nordwestlichen Ausläufer des Westerwalds bilden das [[Siebengebirge]].
== Orte ==
=== Rheinland-Pfalz ===
;nördlicher Westerwald
* [[Koblenz]] (Stadtteile [[Koblenz-Arenberg|Arenberg]], Arzheim, Asterstein, Ehrenbreitstein, Immendorf und Pfaffen Dorf)
* [[Alpenrod]]
* [[Altenkirchen (Westerwald)|Altenkirchen]]
* [[Marienthal (Westerwald)|Kloster und Wallfahrtsort Marienthal bei Altenkirchen]]
* [[Asbach (Westerwald)]]
* [[Bad Ems]]
* [[Betzdorf]]
* [[Daaden]]
* [[Hachenburg]]
* [[Hamm (Sieg)]]
* [[Herdorf]]
* [[Kirchen (Sieg)]]
* [[Mudersbach]]
* [[Bad Marienberg]]
* [[Rennerod]]
* [[Westerburg]]
* [[Abtei Marienstatt|Abtei Marientatt in Streithausen]]
* [[Nentershausen (Westerwald)|Nentershausen]]
* [[Ailertchen]]
* Bellingen
* [[Berzhahn]]
* [[Brandscheid]]
* [[Mogendorf]]
* [[Enspel]]
* [[Gemünden (Westerwald)]]
* [[Girkenroth]]
* [[Guckheim]]
* [[Halbs]]
* [[Härtlingen]]
* [[Hergenroth]]
* [[Höhn]]
* [[Kaden]]
* [[Kölbingen]]
* [[Langenhahn]]
* [[Pottum]]
* [[Rotenhain]]
* [[Rothenbach]]
* [[Stahlhofen am Wiesensee]]
* [[Stockum-Püschen]]
* [[Weltersburg]]
* [[Willmenrod]]
* [[Winnen (Westerwald)]]
* [[Wissen]]
[[Unkel]] liegt im Mittelrheintal am Westrand des Westerwalds.
[[File:Schloss montabaur1.jpg|mini|Schloss Montabaur]]
;südlicher Westerwald
* [[Dierdorf]]
* [[Höhr-Grenzhausen]]
* [[Montabaur]]
* [[Ransbach-Baumbach]]
* [[Rengsdorf]]
* [[Selters (Westerwald)]]
* [[Wirges]]
[[Koblenz]], [[Neuwied]], [[Bad Hönningen]] und [[Linz am Rhein]] liegen im Mittelrheintal am Westrand des Westerwalds; [[Diez]], [[Nassau (Lahn)|Nassau]] und [[Bad Ems]] im Lahntal an seinem Südrand.
=== Hessen ===
;nördlicher Westerwald
* [[Breitscheid]]
* [[Driedorf]]
* [[Greifenstein]]
* [[Haiger]]
;südlicher Westerwald
* [[Dornburg]]
* [[Hadamar]]
* [[Mengerskirchen]]
* [[Waldbrunn (Westerwald)|Waldbrunn]]
[[Limburg an der Lahn]], [[Runkel]], [[Weilburg]], [[Wetzlar]], [[Herborn]] und [[Dillenburg]] liegen am Rand des Westerwalds.
=== Nordrhein-Westfalen ===
[[Eitorf]] und [[Windeck]] liegen an der Sieg am Nordrand des Westerwalds.
[[Burbach (Siegerland)]] und [[Wilnsdorf]] im südlichen Siegerland gehören auch noch zum Westerwald.
== Weitere Ziele ==
== Hintergrund ==
== Sprache ==
Im Westerwald wird Deutsch gesprochen. Die einheimischen Bewohner des Westerwaldes sprechen untereinander meistens noch als Dialekt das [https://de.wiktionary.org/wiki/Verzeichnis:Deutsch/W%C3%A4ller_Platt '''Wäller Platt'''].
== Anreise ==
=== Flughäfen ===
Die Flughäfen {{marker|name=Flughafen Köln Bonn|wikidata=Q157741|type= airport|show=none}} (55{{nnbsp}}km nordwestlich von Altenkirchen) und {{marker|type = airport|name = [[Flughafen Frankfurt am Main|Flughafen Frankfurt]] |wikidata = Q46033 |show = none}} (85{{nnbsp}}km südöstlich von Montabaur) sind zur Anreise geeignet. Vom Flughafen Frankfurt fahren ICEs in 17 Minuten nach Limburg-Süd und in unter einer halben Stunde direkt nach Montabaur. Nach Westerburg braucht man via Limburg knapp 1½ Stunden, nach Haiger mit Umsteigen in Frankfurt Hbf ca. 1:45 Std. Von Köln/Bonn kommt man mit der S-Bahn in einer knappen Stunde nach Au (Sieg) am Nordrand des Westerwalds, nach Altenkirchen sind es mit einmal Umsteigen knapp 1½ Stunden.
In [[Burbach (Siegerland)]] befindet sich der [https://www.siegerland-airport.de/ Siegerlandflughafen], er eignet sich für "Selbstflieger", auch werden Charterflüge angeboten.
=== Mit der Bahn ===
Nahe gelegene Anschlüsse an den Eisenbahnfernverkehr bestehen an den Bahnhöfen Montabaur und Limburg-Süd an der Schnellfahrstrecke Köln–Rhein/Main sowie am Hauptbahnhof Koblenz an der linken Rheinstrecke.
Im Westerwald verkehren folgende Regionalbahnlinien:
* {{Bahnlinie|RE|9}}, Rhein-Sieg-Express: Aachen – Düren – Köln – Siegburg/Bonn – Au(Sieg) – Wissen(Sieg) – Betzdorf(Sieg) – Siegen
* {{Bahnlinie|RE|25}}, Lahntal-Express: Koblenz – Niederlahnstein – Bad Ems – Diez – Limburg(Lahn) – Weilburg – Wetzlar – Gießen
* {{Bahnlinie|RE|99}}, Main-Sieg-Express: Frankfurt am Main – Gießen – Wetzlar – Haiger – Siegen
* {{Bahnlinie|RB|29}}, Unterwesterwaldbahn: Limburg(Lahn) – Diez Ost – Montabaur – Wirges – Siershahn
* {{Bahnlinie|RB|23}}, Lahn-Eifel-Bahn: Limburg(Lahn) – Diez – Bad Ems – Niederlahnstein – Koblenz – Andernach – Mayen
* {{Bahnlinie|RB|25}}, Lahntalbahn: Limburg(Lahn) – Weilburg – Wetzlar – Gießen – Alsfeld – Fulda
* {{Bahnlinie|RB|90}}, [[Oberwesterwaldbahn]] / Westerwald-Sieg-Bahn: Limburg(Lahn) – Diez Ost – Westerburg – Nistertal/Bad Marienberg – Hachenburg – Altenkirchen – Au(Sieg) – Wissen – Siegen
* {{Bahnlinie|RB|95}}, Sieg-Dill-Bahn: Siegen – Haiger – Dillenburg
* {{Bahnlinie|RB|96}}, Hellertalbahn: Betzdorf(Sieg) – Herdorf – Neunkirchen – Haiger – Dillenburg
* {{Bahnlinie|RB|97}}, Daadetalbahn: Betzdorf(Sieg) – Daaden
Die Linien RE9, RB23 und RE25 werden durch die [[DB Regio]] betrieben, die Linien RB29, RB90, RB95 und RB96 durch den Betriebszweig [[Dreiländerbahn]] der Hessischen Landesbahn, die Linie RB97 wird durch die [[Westerwaldbahn]] betrieben, die Linien RB25 und RE99 durch die [http://www.hessenbahn.de Hessische Landesbahn HLB].
=== Mit Regional- und Fernbussen ===
*An den Busbahnhöfen '''Bahnhof Montabaur/FOM''' und '''Konrad-Adenauer-Platz Montabaur''' bestehen Regionalbusverbindungen in Richtung Hachenburg, Rennerod, Bad Marienberg, Koblenz, Limburg(Lahn) und Westerburg.
Seit dem 01. Januar 2017 gilt für Bus- und Zugfahrscheine im Westerwaldkreis der Gemeinschaftstarif des [http://www.vrminfo.de Verkehrsverbund Rhein-Mosel (VRM)].
*Am Busbahnhof '''Bahnhof Montabaur/FOM''' verkehren zudem [[Fernbusse in Deutschland|Fernbusse]] der Firmen Univers und [https://www.flixbus.de Flixbus] in Richtung Köln, Düsseldorf, Aachen, Frankfurt am Main, Mainz und Wiesbaden.
* [http://www.busliniensuche.de Busliniensuche.de]
== Mobilität ==
Regelmäßige Bahn- und Busverbindungen sind hier zu entnehmen:
=== Verkehrsunternehmen ===
* [[DB Regio|Deutsche Bahn AG]], [http://www.bahn.de/p/view/index.shtml '''www.bahn.de''']
* Rhein-Mosel-Bus [http://www.rmv-bus.de/ '''www.rmv-bus.de'''] · Busgesellschaft der Deutschen Bahn AG
* [http://www.ulrichbeul.de/ '''Omnibus- Linien- und Reiseverkehr KG'''], Ulrich Beul/Westerwald
* Martin-Becker-Bus GmbH [http://www.mb-bus.de/ '''www.mb-bus.de''']
* [[Westerwaldbahn|Westerwaldbahn GmbH (WEBA)]], [https://www.westerwaldbahn.de/ '''www.westerwaldbahn.de''']
* [[Dreiländerbahn]], [https://www.dreilaenderbahn.de '''www.dreilaenderbahn.de''']
* Hessische Landesbahn (HLB), [https://www.hlb-online.de '''www.hlb-online.de''']
Oldtimer-Busfahrten für Gruppen mit [https://www.schwyzer-poschti.de Schwyzer Poschti - Oldtimer-Busfahrten im Rheinland]
=== Verkehrsverbünde ===
* '''[[Verkehrsverbund Rhein-Mosel]]''' [http://www.vrminfo.de/ www.vrminfo.de] · Verbindungsauskunft und Tarifsystem für den Westerwaldkreis, den Landkreis Altenkirchen, den Rhein-Lahn-Kreis, Landkreis Neuwied und die Stadt Koblenz.
* '''[[Verkehrsverbund Rhein-Sieg]]''' VRS [https://www.vrsinfo.de/ '''www.vrsinfo.de'''] · Verbindungsauskunft und Tarifsystem (Übergangstarif) für den Landkreis Altenkirchen und den Landkreis Neuwied, aus dem VRS Gebiet kommend.
* '''[[Rhein-Main-Verkehrsverbund]]''' [http://www.rmv.de/ www.rmv.de] · Verbindungsauskunft und Tarifsystem für den [[Hessen|Hessischen]] Teil des Westerwaldes (Landkreis Limburg-Weilburg, Lahn-Dill-Kreis.
=== Rheinland-Pfalz-Takt ===
* Zweckverband Schienenpersonennahverkehr Rheinland-Pfalz-Nord [https://www.spnv-nord.de/ '''www.spnv-nord.de'''] Organisation des SPNV im nördlichen Rheinland-Pfalz.
* Rheinland-Pfalz-Takt [http://www.der-takt.de/ '''www.der-takt.de'''] Link zum Rheinland-Pfalz-Takt.
== Sehenswürdigkeiten ==
=== Berggipfel und Aussichtspunkte ===
* '''Beulskopf''' - Der [http://www.heupelzen.de/html/raiffeisenturm.html '''Raiffeisenturm'''] in 388 m Höhe gelegen ist 35 m hoch.
* '''Bismarckturm''' - bei [[Altenkirchen (Westerwald)|Altenkirchen]] [https://www.bismarckturm-ak.de/ gelegen], 14 m hoch.
* '''Fuchskaute''' - Sie ist mit 657 m die höchste Erhebung des Westerwaldes (kein Aussichtsturm). Im Bereich des Berges gibt es "[http://fuchskaute.de Gipfelgastronomie]".
* '''[[Alpenrod#Gräbersberg mit Aussichtsturm|Gräbersberg]]''' - 513 m mit ''Aussichtsturm'' bei [[Alpenrod]]
* '''Ottoturm''' - 450 m hoch, mit [http://www.ottoturm-kirchen.de/index.php?ottoturm Aussichtsturm].
* '''Stegskopf''' - 654 m hoch, kein Aussichtsturm (Truppenübungsgelände)
=== Seen und Gewässer ===
[[File:Protected landscape area Westerwaelder Seenplatte Maxsain 6.jpg|mini|Am Saynbach im Landschaftsschutzgebiet Westerwälder Seenplatte (bei Maxsain)]]
* [http://www.westerwald.info/wandern/weiherweg.htm '''Westerwälder Seenplatte'''] - Die Teichlandschaft liegt ca. 23 km nördlich von [[Montabaur]].
** [http://www.driedorf.de/de/tourismus/krombachtalsperre/ '''Der Krombachtalsperre'''] ca. 6 km östlich von [[Rennerod]] bietet diverse Sportmöglichkeiten und Erholung pur.
** In [http://www.dreifelden.de/ '''Dreifelden'''] ca. 10 km südlich von [[Hachenburg]] lässt sich auch wunderbar [http://www.dreifelder-weiher.de/ "campen"].
** Der '''[[Wiesensee]]''' ca. 4 km nördlich von [[Westerburg]] zeigt sich besonders im Sommer am schönsten. Der See wird umgeben von Wälder, die gerne auch zum Wandern verführen.
=== Burgen, Schlösser und Klöster ===
[[File:Abtei Marienstatt no.jpg|mini|Abtei Marienstatt]]
[[File:Greifenstein - Burg - gesamt.jpg|mini|Burg Greifenstein]]
* {{vCard |type=monastery |name=Abtei Marienstatt |wikidata=Q61914073 |url=http://www.abtei-marienstatt.de/start.php?aktiv=aktuelles&sub=anfahrt |description=bei [[Hachenburg]]
}}
* {{vCard |type=castle |name=Burg Greifenstein |url=https://www.burg-greifenstein.net |description=mit dem [https://www.glockenmuseum.de '''Deutschen Glockenmuseum''']. Die Burg liegt ca. 8 km südlich von [[Herborn]]
}}
* {{vCard |type=castle |name=Burg Runkel |wikidata=Q874886 |url=http://www.burg-runkel.de/ |description=Die Burg befindet sich ca. 11 km östlich von [[Limburg an der Lahn]]
}}
* {{vCard |type=fort |name=[[Koblenz#vCard Q50712|Festung Ehrenbreitstein]] |wikidata=Q50712 |description=in [[Koblenz]]
}}
* {{vCard |type=monastery |name=Kloster Marienthal |wikidata=Q1775638 |url=http://www.kloster-marienthal.eu/ |description=in [[Marienthal (Westerwald)|Seelbach-Marienthal]] bei [[Altenkirchen (Westerwald)|Altenkirchen]]
}}
* {{vCard |type=château |name=[[Montabaur#vCard Q2242458|Schloss Montabaur]] |wikidata=Q2242458 |description=in [[Montabaur]]
}}
* {{vCard |type=castle |name=[[Westerburg#vCard Q2244100|Schloss Westerburg]] |wikidata=Q2244100 |description=in [[Westerburg]], ca. 20 km nordöstlich von [[Montabaur]]
}}
=== Museen ===
Bedeutende Museen im Westerwald:
* {{vCard |type=museum |name=Eisenbahntechnisches Museum |url=http://www.wef44508.de/ |description=in [[Westerburg]] (ca. 22 km nordöstlich von [[Montabaur]] an der L 300)
}}
* {{vCard |type=museum |name=[[Höhr-Grenzhausen#vCard Q1739170|Keramikmuseum Westerwald]] |wikidata=Q1739170 |description=in [[Höhr-Grenzhausen]] (ca. 12 km nordöstlich von [[Koblenz]] an der A 48)
}}
* {{vCard |type=museum |name=Landschaftsmuseum Westerwald |wikidata=Q1803782 |url=http://www.landschaftsmuseum-ww.de/lsmww/site/user/ |description=in [[Hachenburg]] (ca. 36 km nördlich von [[Montabaur]] an der K 24)
}}
* {{vCard |type=museum |name=Tonbergbaumuseum |wikidata=Q2441502 |url=https://www.tonbergbaumuseum.de |description=in [[Siershahn (Westerwald)]] (ca. 6 km nordwestlich von [[Montabaur]] an der A 3)
}}
* {{vCard |type=museum |name=Trachtenmuseum |url=http://www.quetschegass.de/ |description=in [[Westerburg]] (ca. 22 km nordöstlich von [[Montabaur]] gelegen)
}}
=== Höhlen und Schaubergwerke ===
* {{vCard |type=cave |name=Schauhöhle Herbstlabyrinth |description=Die im Mai 2009 neu eröffnete Schauhöhle bei [[Breitscheid]] ist Deutschlands modernste Schauhöhle. Eine sparsame LED-Beleuchtung erleuchtet einen prachtvollen Höhlensaal mit Tropfsteinen. Aufgrund der großen Nachfrage müssen die Eintrittkarten 1 - 2 Wochen vorher reserviert werden ([http://www.schauhöhle-breitscheid.de www.schauhöhle-breitscheid.de] u. a. Infos mit Öffnungszeiten und Buchungsinfos). Interessant: [http://www.schauhöhle-breitscheid.de/HoehleundLichttechnik Infos zur Höhle].
}}
* {{vCard |type=mining museum |name=Besucherbergwerk mit Feld- und Grubenbahnmuseum Fortuna |url=http://www.foerderverein-grube-fortuna.de/index2.php |description=in [[Oberbiel]] bei [[Solms]]}}
=== Sonstiges ===
* Naturerlebnis [https://www.der-schoene-tag.de/holzbachschlucht-bei-gemuenden/ '''"Die Holzbachschlucht"'''] bei [[Gemünden (Westerwald)]] (ca. 24 km nordöstlich von [[Montabaur]])
* {{vCard |type=theme park |name=Tertiär- und Industrie-Erlebnispark Stöffel |url=https://stoeffelpark.de/ |wikidata=Q2405898 |description=in [[Enspel (Westerwald)]] (ca. 26 km nördlich von [[Montabaur]])
}}
* Wie der Westerwald geologisch entstand, zu sehen in der [http://www.lvermgeo.rlp.de/freizeit/sehenswuerdigkeiten/basaltpark.html '''Basaltpark'''] bei [[Bad Marienberg (Westerwald)]], (ca. 31 km nördlich von [[Montabaur]])
* {{vCard |type=zoo |name=[[Bad Marienberg (Westerwald)#vCard Q2570784|Wildpark Bad Marienberg]] |wikidata=Q2570784 |description=nahe [[Bad Marienberg (Westerwald)]]
}}
* {{vCard |type=zoo |name=Wild- und Freizeitpark Westerwald |url=http://www.isfb.de/freizeitpark/der_park.html |description=bei [[Gackenbach (Westerwald)]] (ca. 10 km südlich von [[Montabaur]])
}}
== Aktivitäten ==
=== Wandern ===
* Wandern - zum Beispiel auf dem 235 km langen [http://www.westerwaldsteig.de '''Westerwaldsteig''']
* Wandern, Fahrradfahren, Inlineskating auf dem Fahrradweg zwischen [[Westerburg]] und [[Wallmerod]], die Strecke ist 25 km lang
=== Wassersport ===
* Segeln, Surfen, Schwimmen und Sonnenbaden
**[http://www.driedorf.de/de/tourismus/krombachtalsperre/ Der Krombachtalsperre] bei [[Mademühlen]]
**'''[[Dreifelden]]''' - ca. 10 km südlich von [[Hachenburg]]
**[https://www.scwp.de/ '''Segel-Club „Wällerwind“ Pottum e.V.'''] Segeln am Wiesensee
=== Floßfahrt ===
* [https://www.flossfahrt-lahn.de/ '''Floßfahrten auf der Lahn''']
* '''Floßfahrt am [[Wiesensee]]''' - unmittelbar bei [[Stahlhofen am Wiesensee]] befindlich
=== Flugsport ===
* Von Segelflug bis Modellflug bei der [https://www.fsv-ailertchen.de/ Flugsportverein "Glück Auf!" Ailertchen e.V.] nahe [[Ailertchen]], 24 km nördlich von [[Montabaur]]
=== Golfsport ===
* [http://www.golfclub-wiesensee.de/ '''Erlebniswelt Golf am Wiesensee'''] bei [[Stahlhofen am Wiesensee]] ca. 4 km nördlich von [[Westerburg]] gelegen
* [https://www.gc-westerwald.de/ '''Golf-Club Westerwald e.V.'''] bei [[Dreifelden]] 10 km südlich von [[Hachenburg]]
=== Inlineskating ===
* oder Wandern und Fahrradfahren auf dem Fahrradweg zwischen [[Westerburg]] und [[Wallmerod]] auf eine Strecke von 25 km Länge, siehe auch [http://www.skater-land.de/index.html?http://www.skater-land.de/routen/route_3.htm '''Route Westerburg/Wallmerod''']
=== Luftsport ===
* Fallschirmspringen mit der [http://www.fallschirmsport-ailertchen.de/ Skydive Ailertchen e.V.] in [[Ailertchen]], 24 km nördlich von [[Montabaur]]
=== Wintersport ===
* '''Schlittschuhlaufen am [[Wiesensee]]'''
:(falls das Wetter mitspielt und sich Eis auf dem See bildet) bei [[Stahlhofen am Wiesensee]]
=== Sonstiges ===
* [http://www.motorrad-gottesdienst.de/index.html '''Westerwälder Motorrad Gottesdienst'''] bei [[Rennerod]]
* Kultur und Geschichte der Stadt [http://www.hachenburg.de/pages/stadtfuehrer.htm '''Hachenburg'''] erleben.
== Küche ==
Bodenständig: Wild, Fisch, Weidevieh, Gemüse, Kartoffeln in all ihren Variationen [https://www.westerwald.info/genuss/rezepte.html '''"Westerwälder Küche"''']
'''Trinken:'''
* [http://www.hachenburger.de/index2.html '''Hachenburger'''] - Bierbrauerei in [[Hachenburg]]
* [https://www.brennerei-struthof.de '''Struthof'''] - Brennerei in [[Unnau]]
== Nachtleben ==
== Sicherheit ==
* '''Die Notrufnummern'''
** Giftzentrale Mainz: (0 61 31) 23 24 66
* '''Krankenhäuser'''
** DRK-Krankenhaus in [[Altenkirchen (Westerwald)|Altenkirchen]], Telefon (02681) 880, Leuzbacher Weg 21
** DRK-Krankenhaus in [[Hachenburg]], Telefon: (0 26 62) 8 50
** Herz-Jesu-Krankenhaus in [[Dernbach (Westerwald)]], Telefon: (0 26 02) 68 40
** Krankenhaus der Barmherzigen Brüder in [[Montabaur]], Telefon: (0 26 02) 12 20
** St. Anna Krankenhaus in [[Hadamar (Westerwald)]], Telefon: (0 64 33) 8 70
** Technisches Hilfswerk in [[Montabaur]], Telefon: (0 26 02) 1 65 77
Die Notfallversorgung des Westerwaldes ist sichergestellt. Der Westerwald ist praktisch sicher. Bei öffentlichen Veranstaltungen oder Benutzung von öffentlichen Verkehrsmitteln ist auf eigene Privatsachen gegen Taschendiebe zu achten.
== Klima ==
== Literatur ==
* [http://www2.genealogy.net/vereine/ArGeWe/buecher/ww-bl.htm ''Bücher über den Westerwald oder Orte im Westerwald'']
* {{Buch |Titel=Deutsche Landkreise im Portrait: Westerwaldkreis |Verlag=Kommunikation und Wirtschaft |ISBN=978-3-88363-287-2}}
* {{Buch |Titel=Entdeckungsreise durch das Kultur- und Wanderland Westerwald |Verlag=Ziethen-Panorama Verlag GmbH |ISBN=3929932547}}
* ''Westerwaldsteig - Schöneres Wandern Pocket. Tourenkarten, Höhenprofile, GPS-Daten und sep. Faltkarte.17 Tagesetappen von Herborn nach Bad Hönningen. Einkehr- und Übernachtungstipps'', Verlag: ideemedia, {{ISBN|978-3934342255}}
== Weblinks ==
* [http://www.westerwald-kreis.de/index.php '''Westerwaldkreis - offiziell''']
* [https://westerwald.info '''Westerwald Touristik - offiziell''']
{{class-2}}
{{GeoData| lat= | long= | radius= }}
{{IstInKat|Deutschland||Rheinland-Pfalz||Mittelhessen||Südwestfalen}}
n14rc2so764cjjv40yltezz4vsx9v44
1769186
1769181
2026-04-17T09:17:30Z
~2026-23774-69
58168
/* Rheinland-Pfalz */Bereits erwähnt
1769186
wikitext
text/x-wiki
{{quickbar Region}}
[[File:Fuchskaute.JPG|mini|Die Fuchskaute und Willingen im Hohen Westerwald]]
Der '''Westerwald''' ist ein Mittelgebirge, das am Dreiländereck von [[Hessen]], [[Rheinland-Pfalz]] und [[Nordrhein-Westfalen]] liegt.
== Regionen ==
[[File:Westerwald - Deutsche Mittelgebirge, Serie A-de.png|mini|hochkant=1.5|Übersichtskarte Westerwald (zum Vergrößern klicken)]]
Der höchstgelegene Teil des Westerwalds ist der '''Hohe Westerwald''', direkt am Dreiländereck von Hessen, NRW und Rheinland-Pfalz, dessen höchste Spitze die 657 Meter hohe Fuchskaute ist. Weitere Bergketten sind der '''Oberwesterwald''', '''Niederwesterwald''' und '''[[Montabaur]]er Westerwald'''. Im Zentrum der Region liegt die '''Westerwälder Seenplatte'''. In touristischen Kontexten wird die Region auch in '''nördlichen''' und '''südlichen Westerwald''' eingeteilt (die Trennung verläuft etwa entlang der Linie [[Linz am Rhein|Linz]]–[[Puderbach]]–[[Westerburg]]).
An den Rändern des Westerwalds liegen das Siegtal (Norden), [[Mittelrheintal]] (Westen), [[Lahntal]] (Süden; Grenze zum [[Taunus]]) und Dilltal (Osten; Grenze zum [[Lahn-Dill-Bergland|Gladenbacher Bergland]]). Die nordwestlichen Ausläufer des Westerwalds bilden das [[Siebengebirge]].
== Orte ==
=== Rheinland-Pfalz ===
;nördlicher Westerwald
* [[Koblenz]] (Stadtteile [[Koblenz-Arenberg|Arenberg]], Arzheim, Asterstein, Ehrenbreitstein, Immendorf und Pfaffen Dorf)
* [[Alpenrod]]
* [[Altenkirchen (Westerwald)|Altenkirchen]]
* [[Marienthal (Westerwald)|Kloster und Wallfahrtsort Marienthal bei Altenkirchen]]
* [[Asbach (Westerwald)]]
* [[Bad Ems]]
* [[Betzdorf]]
* [[Daaden]]
* [[Hachenburg]]
* [[Hamm (Sieg)]]
* [[Herdorf]]
* [[Kirchen (Sieg)]]
* [[Mudersbach]]
* [[Bad Marienberg]]
* [[Rennerod]]
* [[Westerburg]]
* [[Abtei Marienstatt|Abtei Marientatt in Streithausen]]
* [[Nentershausen (Westerwald)|Nentershausen]]
* [[Ailertchen]]
* Bellingen
* [[Berzhahn]]
* [[Brandscheid]]
* [[Mogendorf]]
* [[Enspel]]
* [[Gemünden (Westerwald)]]
* [[Girkenroth]]
* [[Guckheim]]
* [[Halbs]]
* [[Härtlingen]]
* [[Hergenroth]]
* [[Höhn]]
* [[Kaden]]
* [[Kölbingen]]
* [[Langenhahn]]
* [[Pottum]]
* [[Rotenhain]]
* [[Rothenbach]]
* [[Stahlhofen am Wiesensee]]
* [[Stockum-Püschen]]
* [[Weltersburg]]
* [[Willmenrod]]
* [[Winnen (Westerwald)]]
* [[Wissen]]
[[Unkel]] liegt im Mittelrheintal am Westrand des Westerwalds.
[[File:Schloss montabaur1.jpg|mini|Schloss Montabaur]]
;südlicher Westerwald
* [[Dierdorf]]
* [[Höhr-Grenzhausen]]
* [[Montabaur]]
* [[Ransbach-Baumbach]]
* [[Rengsdorf]]
* [[Selters (Westerwald)]]
* [[Wirges]]
[[Neuwied]], [[Bad Hönningen]] und [[Linz am Rhein]] liegen im Mittelrheintal am Westrand des Westerwalds; [[Diez]], [[Nassau (Lahn)|Nassau]] und [[Bad Ems]] im Lahntal an seinem Südrand.
=== Hessen ===
;nördlicher Westerwald
* [[Breitscheid]]
* [[Driedorf]]
* [[Greifenstein]]
* [[Haiger]]
;südlicher Westerwald
* [[Dornburg]]
* [[Hadamar]]
* [[Mengerskirchen]]
* [[Waldbrunn (Westerwald)|Waldbrunn]]
[[Limburg an der Lahn]], [[Runkel]], [[Weilburg]], [[Wetzlar]], [[Herborn]] und [[Dillenburg]] liegen am Rand des Westerwalds.
=== Nordrhein-Westfalen ===
[[Eitorf]] und [[Windeck]] liegen an der Sieg am Nordrand des Westerwalds.
[[Burbach (Siegerland)]] und [[Wilnsdorf]] im südlichen Siegerland gehören auch noch zum Westerwald.
== Weitere Ziele ==
== Hintergrund ==
== Sprache ==
Im Westerwald wird Deutsch gesprochen. Die einheimischen Bewohner des Westerwaldes sprechen untereinander meistens noch als Dialekt das [https://de.wiktionary.org/wiki/Verzeichnis:Deutsch/W%C3%A4ller_Platt '''Wäller Platt'''].
== Anreise ==
=== Flughäfen ===
Die Flughäfen {{marker|name=Flughafen Köln Bonn|wikidata=Q157741|type= airport|show=none}} (55{{nnbsp}}km nordwestlich von Altenkirchen) und {{marker|type = airport|name = [[Flughafen Frankfurt am Main|Flughafen Frankfurt]] |wikidata = Q46033 |show = none}} (85{{nnbsp}}km südöstlich von Montabaur) sind zur Anreise geeignet. Vom Flughafen Frankfurt fahren ICEs in 17 Minuten nach Limburg-Süd und in unter einer halben Stunde direkt nach Montabaur. Nach Westerburg braucht man via Limburg knapp 1½ Stunden, nach Haiger mit Umsteigen in Frankfurt Hbf ca. 1:45 Std. Von Köln/Bonn kommt man mit der S-Bahn in einer knappen Stunde nach Au (Sieg) am Nordrand des Westerwalds, nach Altenkirchen sind es mit einmal Umsteigen knapp 1½ Stunden.
In [[Burbach (Siegerland)]] befindet sich der [https://www.siegerland-airport.de/ Siegerlandflughafen], er eignet sich für "Selbstflieger", auch werden Charterflüge angeboten.
=== Mit der Bahn ===
Nahe gelegene Anschlüsse an den Eisenbahnfernverkehr bestehen an den Bahnhöfen Montabaur und Limburg-Süd an der Schnellfahrstrecke Köln–Rhein/Main sowie am Hauptbahnhof Koblenz an der linken Rheinstrecke.
Im Westerwald verkehren folgende Regionalbahnlinien:
* {{Bahnlinie|RE|9}}, Rhein-Sieg-Express: Aachen – Düren – Köln – Siegburg/Bonn – Au(Sieg) – Wissen(Sieg) – Betzdorf(Sieg) – Siegen
* {{Bahnlinie|RE|25}}, Lahntal-Express: Koblenz – Niederlahnstein – Bad Ems – Diez – Limburg(Lahn) – Weilburg – Wetzlar – Gießen
* {{Bahnlinie|RE|99}}, Main-Sieg-Express: Frankfurt am Main – Gießen – Wetzlar – Haiger – Siegen
* {{Bahnlinie|RB|29}}, Unterwesterwaldbahn: Limburg(Lahn) – Diez Ost – Montabaur – Wirges – Siershahn
* {{Bahnlinie|RB|23}}, Lahn-Eifel-Bahn: Limburg(Lahn) – Diez – Bad Ems – Niederlahnstein – Koblenz – Andernach – Mayen
* {{Bahnlinie|RB|25}}, Lahntalbahn: Limburg(Lahn) – Weilburg – Wetzlar – Gießen – Alsfeld – Fulda
* {{Bahnlinie|RB|90}}, [[Oberwesterwaldbahn]] / Westerwald-Sieg-Bahn: Limburg(Lahn) – Diez Ost – Westerburg – Nistertal/Bad Marienberg – Hachenburg – Altenkirchen – Au(Sieg) – Wissen – Siegen
* {{Bahnlinie|RB|95}}, Sieg-Dill-Bahn: Siegen – Haiger – Dillenburg
* {{Bahnlinie|RB|96}}, Hellertalbahn: Betzdorf(Sieg) – Herdorf – Neunkirchen – Haiger – Dillenburg
* {{Bahnlinie|RB|97}}, Daadetalbahn: Betzdorf(Sieg) – Daaden
Die Linien RE9, RB23 und RE25 werden durch die [[DB Regio]] betrieben, die Linien RB29, RB90, RB95 und RB96 durch den Betriebszweig [[Dreiländerbahn]] der Hessischen Landesbahn, die Linie RB97 wird durch die [[Westerwaldbahn]] betrieben, die Linien RB25 und RE99 durch die [http://www.hessenbahn.de Hessische Landesbahn HLB].
=== Mit Regional- und Fernbussen ===
*An den Busbahnhöfen '''Bahnhof Montabaur/FOM''' und '''Konrad-Adenauer-Platz Montabaur''' bestehen Regionalbusverbindungen in Richtung Hachenburg, Rennerod, Bad Marienberg, Koblenz, Limburg(Lahn) und Westerburg.
Seit dem 01. Januar 2017 gilt für Bus- und Zugfahrscheine im Westerwaldkreis der Gemeinschaftstarif des [http://www.vrminfo.de Verkehrsverbund Rhein-Mosel (VRM)].
*Am Busbahnhof '''Bahnhof Montabaur/FOM''' verkehren zudem [[Fernbusse in Deutschland|Fernbusse]] der Firmen Univers und [https://www.flixbus.de Flixbus] in Richtung Köln, Düsseldorf, Aachen, Frankfurt am Main, Mainz und Wiesbaden.
* [http://www.busliniensuche.de Busliniensuche.de]
== Mobilität ==
Regelmäßige Bahn- und Busverbindungen sind hier zu entnehmen:
=== Verkehrsunternehmen ===
* [[DB Regio|Deutsche Bahn AG]], [http://www.bahn.de/p/view/index.shtml '''www.bahn.de''']
* Rhein-Mosel-Bus [http://www.rmv-bus.de/ '''www.rmv-bus.de'''] · Busgesellschaft der Deutschen Bahn AG
* [http://www.ulrichbeul.de/ '''Omnibus- Linien- und Reiseverkehr KG'''], Ulrich Beul/Westerwald
* Martin-Becker-Bus GmbH [http://www.mb-bus.de/ '''www.mb-bus.de''']
* [[Westerwaldbahn|Westerwaldbahn GmbH (WEBA)]], [https://www.westerwaldbahn.de/ '''www.westerwaldbahn.de''']
* [[Dreiländerbahn]], [https://www.dreilaenderbahn.de '''www.dreilaenderbahn.de''']
* Hessische Landesbahn (HLB), [https://www.hlb-online.de '''www.hlb-online.de''']
Oldtimer-Busfahrten für Gruppen mit [https://www.schwyzer-poschti.de Schwyzer Poschti - Oldtimer-Busfahrten im Rheinland]
=== Verkehrsverbünde ===
* '''[[Verkehrsverbund Rhein-Mosel]]''' [http://www.vrminfo.de/ www.vrminfo.de] · Verbindungsauskunft und Tarifsystem für den Westerwaldkreis, den Landkreis Altenkirchen, den Rhein-Lahn-Kreis, Landkreis Neuwied und die Stadt Koblenz.
* '''[[Verkehrsverbund Rhein-Sieg]]''' VRS [https://www.vrsinfo.de/ '''www.vrsinfo.de'''] · Verbindungsauskunft und Tarifsystem (Übergangstarif) für den Landkreis Altenkirchen und den Landkreis Neuwied, aus dem VRS Gebiet kommend.
* '''[[Rhein-Main-Verkehrsverbund]]''' [http://www.rmv.de/ www.rmv.de] · Verbindungsauskunft und Tarifsystem für den [[Hessen|Hessischen]] Teil des Westerwaldes (Landkreis Limburg-Weilburg, Lahn-Dill-Kreis.
=== Rheinland-Pfalz-Takt ===
* Zweckverband Schienenpersonennahverkehr Rheinland-Pfalz-Nord [https://www.spnv-nord.de/ '''www.spnv-nord.de'''] Organisation des SPNV im nördlichen Rheinland-Pfalz.
* Rheinland-Pfalz-Takt [http://www.der-takt.de/ '''www.der-takt.de'''] Link zum Rheinland-Pfalz-Takt.
== Sehenswürdigkeiten ==
=== Berggipfel und Aussichtspunkte ===
* '''Beulskopf''' - Der [http://www.heupelzen.de/html/raiffeisenturm.html '''Raiffeisenturm'''] in 388 m Höhe gelegen ist 35 m hoch.
* '''Bismarckturm''' - bei [[Altenkirchen (Westerwald)|Altenkirchen]] [https://www.bismarckturm-ak.de/ gelegen], 14 m hoch.
* '''Fuchskaute''' - Sie ist mit 657 m die höchste Erhebung des Westerwaldes (kein Aussichtsturm). Im Bereich des Berges gibt es "[http://fuchskaute.de Gipfelgastronomie]".
* '''[[Alpenrod#Gräbersberg mit Aussichtsturm|Gräbersberg]]''' - 513 m mit ''Aussichtsturm'' bei [[Alpenrod]]
* '''Ottoturm''' - 450 m hoch, mit [http://www.ottoturm-kirchen.de/index.php?ottoturm Aussichtsturm].
* '''Stegskopf''' - 654 m hoch, kein Aussichtsturm (Truppenübungsgelände)
=== Seen und Gewässer ===
[[File:Protected landscape area Westerwaelder Seenplatte Maxsain 6.jpg|mini|Am Saynbach im Landschaftsschutzgebiet Westerwälder Seenplatte (bei Maxsain)]]
* [http://www.westerwald.info/wandern/weiherweg.htm '''Westerwälder Seenplatte'''] - Die Teichlandschaft liegt ca. 23 km nördlich von [[Montabaur]].
** [http://www.driedorf.de/de/tourismus/krombachtalsperre/ '''Der Krombachtalsperre'''] ca. 6 km östlich von [[Rennerod]] bietet diverse Sportmöglichkeiten und Erholung pur.
** In [http://www.dreifelden.de/ '''Dreifelden'''] ca. 10 km südlich von [[Hachenburg]] lässt sich auch wunderbar [http://www.dreifelder-weiher.de/ "campen"].
** Der '''[[Wiesensee]]''' ca. 4 km nördlich von [[Westerburg]] zeigt sich besonders im Sommer am schönsten. Der See wird umgeben von Wälder, die gerne auch zum Wandern verführen.
=== Burgen, Schlösser und Klöster ===
[[File:Abtei Marienstatt no.jpg|mini|Abtei Marienstatt]]
[[File:Greifenstein - Burg - gesamt.jpg|mini|Burg Greifenstein]]
* {{vCard |type=monastery |name=Abtei Marienstatt |wikidata=Q61914073 |url=http://www.abtei-marienstatt.de/start.php?aktiv=aktuelles&sub=anfahrt |description=bei [[Hachenburg]]
}}
* {{vCard |type=castle |name=Burg Greifenstein |url=https://www.burg-greifenstein.net |description=mit dem [https://www.glockenmuseum.de '''Deutschen Glockenmuseum''']. Die Burg liegt ca. 8 km südlich von [[Herborn]]
}}
* {{vCard |type=castle |name=Burg Runkel |wikidata=Q874886 |url=http://www.burg-runkel.de/ |description=Die Burg befindet sich ca. 11 km östlich von [[Limburg an der Lahn]]
}}
* {{vCard |type=fort |name=[[Koblenz#vCard Q50712|Festung Ehrenbreitstein]] |wikidata=Q50712 |description=in [[Koblenz]]
}}
* {{vCard |type=monastery |name=Kloster Marienthal |wikidata=Q1775638 |url=http://www.kloster-marienthal.eu/ |description=in [[Marienthal (Westerwald)|Seelbach-Marienthal]] bei [[Altenkirchen (Westerwald)|Altenkirchen]]
}}
* {{vCard |type=château |name=[[Montabaur#vCard Q2242458|Schloss Montabaur]] |wikidata=Q2242458 |description=in [[Montabaur]]
}}
* {{vCard |type=castle |name=[[Westerburg#vCard Q2244100|Schloss Westerburg]] |wikidata=Q2244100 |description=in [[Westerburg]], ca. 20 km nordöstlich von [[Montabaur]]
}}
=== Museen ===
Bedeutende Museen im Westerwald:
* {{vCard |type=museum |name=Eisenbahntechnisches Museum |url=http://www.wef44508.de/ |description=in [[Westerburg]] (ca. 22 km nordöstlich von [[Montabaur]] an der L 300)
}}
* {{vCard |type=museum |name=[[Höhr-Grenzhausen#vCard Q1739170|Keramikmuseum Westerwald]] |wikidata=Q1739170 |description=in [[Höhr-Grenzhausen]] (ca. 12 km nordöstlich von [[Koblenz]] an der A 48)
}}
* {{vCard |type=museum |name=Landschaftsmuseum Westerwald |wikidata=Q1803782 |url=http://www.landschaftsmuseum-ww.de/lsmww/site/user/ |description=in [[Hachenburg]] (ca. 36 km nördlich von [[Montabaur]] an der K 24)
}}
* {{vCard |type=museum |name=Tonbergbaumuseum |wikidata=Q2441502 |url=https://www.tonbergbaumuseum.de |description=in [[Siershahn (Westerwald)]] (ca. 6 km nordwestlich von [[Montabaur]] an der A 3)
}}
* {{vCard |type=museum |name=Trachtenmuseum |url=http://www.quetschegass.de/ |description=in [[Westerburg]] (ca. 22 km nordöstlich von [[Montabaur]] gelegen)
}}
=== Höhlen und Schaubergwerke ===
* {{vCard |type=cave |name=Schauhöhle Herbstlabyrinth |description=Die im Mai 2009 neu eröffnete Schauhöhle bei [[Breitscheid]] ist Deutschlands modernste Schauhöhle. Eine sparsame LED-Beleuchtung erleuchtet einen prachtvollen Höhlensaal mit Tropfsteinen. Aufgrund der großen Nachfrage müssen die Eintrittkarten 1 - 2 Wochen vorher reserviert werden ([http://www.schauhöhle-breitscheid.de www.schauhöhle-breitscheid.de] u. a. Infos mit Öffnungszeiten und Buchungsinfos). Interessant: [http://www.schauhöhle-breitscheid.de/HoehleundLichttechnik Infos zur Höhle].
}}
* {{vCard |type=mining museum |name=Besucherbergwerk mit Feld- und Grubenbahnmuseum Fortuna |url=http://www.foerderverein-grube-fortuna.de/index2.php |description=in [[Oberbiel]] bei [[Solms]]}}
=== Sonstiges ===
* Naturerlebnis [https://www.der-schoene-tag.de/holzbachschlucht-bei-gemuenden/ '''"Die Holzbachschlucht"'''] bei [[Gemünden (Westerwald)]] (ca. 24 km nordöstlich von [[Montabaur]])
* {{vCard |type=theme park |name=Tertiär- und Industrie-Erlebnispark Stöffel |url=https://stoeffelpark.de/ |wikidata=Q2405898 |description=in [[Enspel (Westerwald)]] (ca. 26 km nördlich von [[Montabaur]])
}}
* Wie der Westerwald geologisch entstand, zu sehen in der [http://www.lvermgeo.rlp.de/freizeit/sehenswuerdigkeiten/basaltpark.html '''Basaltpark'''] bei [[Bad Marienberg (Westerwald)]], (ca. 31 km nördlich von [[Montabaur]])
* {{vCard |type=zoo |name=[[Bad Marienberg (Westerwald)#vCard Q2570784|Wildpark Bad Marienberg]] |wikidata=Q2570784 |description=nahe [[Bad Marienberg (Westerwald)]]
}}
* {{vCard |type=zoo |name=Wild- und Freizeitpark Westerwald |url=http://www.isfb.de/freizeitpark/der_park.html |description=bei [[Gackenbach (Westerwald)]] (ca. 10 km südlich von [[Montabaur]])
}}
== Aktivitäten ==
=== Wandern ===
* Wandern - zum Beispiel auf dem 235 km langen [http://www.westerwaldsteig.de '''Westerwaldsteig''']
* Wandern, Fahrradfahren, Inlineskating auf dem Fahrradweg zwischen [[Westerburg]] und [[Wallmerod]], die Strecke ist 25 km lang
=== Wassersport ===
* Segeln, Surfen, Schwimmen und Sonnenbaden
**[http://www.driedorf.de/de/tourismus/krombachtalsperre/ Der Krombachtalsperre] bei [[Mademühlen]]
**'''[[Dreifelden]]''' - ca. 10 km südlich von [[Hachenburg]]
**[https://www.scwp.de/ '''Segel-Club „Wällerwind“ Pottum e.V.'''] Segeln am Wiesensee
=== Floßfahrt ===
* [https://www.flossfahrt-lahn.de/ '''Floßfahrten auf der Lahn''']
* '''Floßfahrt am [[Wiesensee]]''' - unmittelbar bei [[Stahlhofen am Wiesensee]] befindlich
=== Flugsport ===
* Von Segelflug bis Modellflug bei der [https://www.fsv-ailertchen.de/ Flugsportverein "Glück Auf!" Ailertchen e.V.] nahe [[Ailertchen]], 24 km nördlich von [[Montabaur]]
=== Golfsport ===
* [http://www.golfclub-wiesensee.de/ '''Erlebniswelt Golf am Wiesensee'''] bei [[Stahlhofen am Wiesensee]] ca. 4 km nördlich von [[Westerburg]] gelegen
* [https://www.gc-westerwald.de/ '''Golf-Club Westerwald e.V.'''] bei [[Dreifelden]] 10 km südlich von [[Hachenburg]]
=== Inlineskating ===
* oder Wandern und Fahrradfahren auf dem Fahrradweg zwischen [[Westerburg]] und [[Wallmerod]] auf eine Strecke von 25 km Länge, siehe auch [http://www.skater-land.de/index.html?http://www.skater-land.de/routen/route_3.htm '''Route Westerburg/Wallmerod''']
=== Luftsport ===
* Fallschirmspringen mit der [http://www.fallschirmsport-ailertchen.de/ Skydive Ailertchen e.V.] in [[Ailertchen]], 24 km nördlich von [[Montabaur]]
=== Wintersport ===
* '''Schlittschuhlaufen am [[Wiesensee]]'''
:(falls das Wetter mitspielt und sich Eis auf dem See bildet) bei [[Stahlhofen am Wiesensee]]
=== Sonstiges ===
* [http://www.motorrad-gottesdienst.de/index.html '''Westerwälder Motorrad Gottesdienst'''] bei [[Rennerod]]
* Kultur und Geschichte der Stadt [http://www.hachenburg.de/pages/stadtfuehrer.htm '''Hachenburg'''] erleben.
== Küche ==
Bodenständig: Wild, Fisch, Weidevieh, Gemüse, Kartoffeln in all ihren Variationen [https://www.westerwald.info/genuss/rezepte.html '''"Westerwälder Küche"''']
'''Trinken:'''
* [http://www.hachenburger.de/index2.html '''Hachenburger'''] - Bierbrauerei in [[Hachenburg]]
* [https://www.brennerei-struthof.de '''Struthof'''] - Brennerei in [[Unnau]]
== Nachtleben ==
== Sicherheit ==
* '''Die Notrufnummern'''
** Giftzentrale Mainz: (0 61 31) 23 24 66
* '''Krankenhäuser'''
** DRK-Krankenhaus in [[Altenkirchen (Westerwald)|Altenkirchen]], Telefon (02681) 880, Leuzbacher Weg 21
** DRK-Krankenhaus in [[Hachenburg]], Telefon: (0 26 62) 8 50
** Herz-Jesu-Krankenhaus in [[Dernbach (Westerwald)]], Telefon: (0 26 02) 68 40
** Krankenhaus der Barmherzigen Brüder in [[Montabaur]], Telefon: (0 26 02) 12 20
** St. Anna Krankenhaus in [[Hadamar (Westerwald)]], Telefon: (0 64 33) 8 70
** Technisches Hilfswerk in [[Montabaur]], Telefon: (0 26 02) 1 65 77
Die Notfallversorgung des Westerwaldes ist sichergestellt. Der Westerwald ist praktisch sicher. Bei öffentlichen Veranstaltungen oder Benutzung von öffentlichen Verkehrsmitteln ist auf eigene Privatsachen gegen Taschendiebe zu achten.
== Klima ==
== Literatur ==
* [http://www2.genealogy.net/vereine/ArGeWe/buecher/ww-bl.htm ''Bücher über den Westerwald oder Orte im Westerwald'']
* {{Buch |Titel=Deutsche Landkreise im Portrait: Westerwaldkreis |Verlag=Kommunikation und Wirtschaft |ISBN=978-3-88363-287-2}}
* {{Buch |Titel=Entdeckungsreise durch das Kultur- und Wanderland Westerwald |Verlag=Ziethen-Panorama Verlag GmbH |ISBN=3929932547}}
* ''Westerwaldsteig - Schöneres Wandern Pocket. Tourenkarten, Höhenprofile, GPS-Daten und sep. Faltkarte.17 Tagesetappen von Herborn nach Bad Hönningen. Einkehr- und Übernachtungstipps'', Verlag: ideemedia, {{ISBN|978-3934342255}}
== Weblinks ==
* [http://www.westerwald-kreis.de/index.php '''Westerwaldkreis - offiziell''']
* [https://westerwald.info '''Westerwald Touristik - offiziell''']
{{class-2}}
{{GeoData| lat= | long= | radius= }}
{{IstInKat|Deutschland||Rheinland-Pfalz||Mittelhessen||Südwestfalen}}
t2g0d3tdclg4owsaeql7n0nb0fx5fuu
Koblenz
0
8246
1769188
1766852
2026-04-17T09:21:13Z
~2026-23774-69
58168
/* Stadtteile */
1769188
wikitext
text/x-wiki
{{AndereOrte|Einleitung=no|Als anderer Ort gleichen Namens existiert noch die Ortschaft [[Koblenz_AG|Koblenz (AG)]] in der Schweiz, am linken Rheinufer gegenüber von [[Waldshut]].}}
{{quickbar Ort
|Bild=[[File:German_corner_Koblenz_08_2007_d_schmidt.jpg|300px|Moselmündung am Deutschen Eck ]]
| TouriInfoWeb =
| TouriInfoTel =
}}
'''Koblenz''' ist eine Stadt im Norden von [[Rheinland-Pfalz]] an der Mündung der [[Moseltal|Mosel]] in den [[Rhein]]. Sie liegt im [[Mittelrheintal]] und am Ende des Moseltals. '''Koblenz''' ist die bedeutendste Stadt im Mittelrheintal. Der Name Koblenz leitet sich von ''Confluentes'' ab, Latein für „Zusammenfluss“. Koblenz markiert die Grenze zwischen oberem und unterem Mittelrhein. Nur wenige Kilometer südlich befindet sich außerdem die Mündung der [[Lahntal|Lahn]]. Koblenz liegt somit genau in der Mitte zwischen den vier Teilen des Rheinischen Schiefergebirges: [[Eifel]] (linksrheinisch, nördlich der Mosel), [[Westerwald]] (rechtsrheinisch, nördlich der Lahn), [[Hunsrück]] (linksrheinisch, südlich der Mosel) und [[Taunus]] (rechtsrheinisch, südlich der Lahn).
== Stadtteile ==
{{mapframe|50.357|7.598|zoom= 14|type=geoline}}
Das Rheintal südlich der Moselmündung ist vergleichsweise eng mit steilen Hängen zum Hunsrück bzw. Westerwald; nur das kompakte Stadtzentrum und die Altstadt liegen in flachem Gelände. Nördlich der Moselmündung weitet sich linksrheinisch das Rheintal, rechtsrheinisch reichen die Hänge des Westerwalds weiter bis an den Fluss. Für die Stadtentwicklung bedeutete dies, dass die Stadt seit der Industrialisierung sich vor allem linksrheinisch in Richtung Nordwesten (Stadtteil Lützel) ausdehnte.
Die historische '''Altstadt''' wie auch die südlich angrenzende '''südliche Vorstadt''' und, auf einer ehemaligen Rheininsel gelegen, '''Oberwerth''' liegen rheinaufwärts im Rheintal, '''Rauental''', '''Goldgrube''' und '''Moselweiß''' moselaufwärts im Tal in dem Zwickel zwischen den Flüssen. Dazwischen liegt ein Ausläufer des Hunsrücks mit dem, einst eine Festung, Stadtteil Karthause.
Rechtsrheinisch liegen '''Ehrenbreitstein''' und '''Pfaffendorf''' im schmalen Streifen zwischen Rhein und Hang, den sie sich noch mit Bahn und Bundesstraße teilen müssen, östlich anschließend auf der Höhe '''[[Koblenz-Arenberg|Arenberg]]''', Arzheim, '''Asterstein''' und '''Pfaffendorfer Höhe'''.
Linksrheinisch und nördlich der Mosel liegen in der Ebene des Neuwieder Becken '''Lützel''', '''Metternich''', '''Neuendorf''' und weitere, stark gewerblich geprägte Stadtteile.
Für Besucher sind vor allem die Altstadt und Ehrenbreitstein von Interesse. Beide sind kompakt und fußläufig zu erschließen, in Ehrenbreitstein allerdings mit Steigungen.
== Hintergrund ==
'''Koblenz''' ist die bedeutendste Stadt im Mittelrheintal. Es liegt unmittelbar an der Mündung der [[Moseltal|Mosel]] in den Rhein, die man das Deutsche Eck nennt. Der Name Koblenz leitet sich von ''Confluentes'' ab, Latein für „Zusammenfluss“. Koblenz markiert die Grenze zwischen oberem und unterem Mittelrhein. Nur wenige Kilometer südlich befindet sich außerdem die Mündung der [[Lahntal|Lahn]]. Koblenz liegt somit genau in der Mitte zwischen den vier Teilen des Rheinischen Schiefergebirges: [[Eifel]] (linksrheinisch, nördlich der Mosel), [[Westerwald]] (rechtsrheinisch, nördlich der Lahn), [[Hunsrück]] (linksrheinisch, südlich der Mosel) und [[Taunus]] (rechtsrheinisch, südlich der Lahn).
Die strategisch wichtige Lage machte Koblenz seit der Antike zu einer stark von Befestigungsanlagen geprägten Stadt. Auch heute dominiert die rechtsrheinisch gelegene Festung Ehrenbreitstein das Panorama; der Hauptbahnhof wird vom Fort Konstantin überragt. Diese sind aber nur eine Auswahl von einem Dutzend Festungen im Stadtgebiet, die aus verschiedenen Jahrhunderten stammen.
{{Panorama|bild=Koblenz_pano_ehrenbreitstein_neuwieder_becken_ds_wv_06_2007.jpg|unterschrift=Blick von der Festung Ehrenbreitstein auf Koblenz, das Deutsche Eck an der Moselmündung und das Neuwieder Becken. Hier weitet sich auf etwa 20 km das Mittelrheintal zu einem weiten Talkessel. Im dicht besiedelten Talboden leben etwa 300.000 Menschen, wobei Koblenz mit 115.000 Einwohnern die größte Stadt ist.|breite=1100px}}
== Anreise ==
=== Mit dem Flugzeug ===
Die nächstgelegenen Flughäfen sind
* {{marker|type = airport|name = Flughafen Köln-Bonn |wikidata = Q157741}}
* {{marker|type = airport|name = Flughafen Düsseldorf|wikidata = Q58226}}
* {{marker|type = airport|name = Flughafen Frankfurt am Main|wikidata = Q46033}}
* {{marker|type = airport|name = Flughafen Frankfurt-Hahn |wikidata = Q158211}}
Die ersten drei sind umsteigefrei mit dem Zug, letzterer ist mit dem Bus erreichbar. Die Fahrtzeit beträgt jeweils etwas mehr als eine Stunde.
=== Mit der Bahn ===
{{vCard|name=Hauptbahnhof Koblenz| wikidata = Q469682| description = Der Hauptbahnhof liegt am Südwestrand der Innenstadt. Es halten ICE, IC, EN, RE und RB-Züge. Von Mainz und Köln benötigt man jeweils ca. 1 Stunde. Fernverkehrszüge verbinden Koblenz u. a. mit Hamburg, dem Ruhrgebiet, Köln, Mainz, Frankfurt a. M., Stuttgart und Trier. Der Bahnhof liegt an der linken Rheinstrecke mit Abzweig an die rechte Rheinstrecke, die Moselstrecke in Richtung Luxembourg sowie die [[Lahntalbahn]].
}}
Am Hauptbahnhof Koblenz halten folgende Nahverkehrslinien:
==== Regionalexpress ====
* {{Bahnlinie|RE|1}} {{Bahnlinie|RE|11}} Mannheim Hbf/Luxembourg Gare - Trier Hbf - '''Koblenz Hbf'''
* {{Bahnlinie|RE|2}} Frankfurt(M)Hbf - Frankfurt(M)Flughafen - Mainz Hbf - '''Koblenz Hbf'''
* {{Bahnlinie|RE|5}} '''Koblenz Hbf''' - '''Koblenz Stadtmitte''' - Bonn Hbf - Köln Hbf - Düsseldorf Hbf - Düsseldorf Flughafen - Wesel
* {{Bahnlinie|RE|8}} '''Koblenz Hbf''' - '''Koblenz Stadtmitte''' - '''Koblenz-Lützel''' - Neuwied - Köln Messe/Deutz - Köln Hbf - Mönchengladbach
* {{Bahnlinie|RE|17}} '''Koblenz Hbf''' - Oberwesel - Bad Kreuznach - Kaiserslautern Hbf
* {{Bahnlinie|RE|25}} Gießen - Limburg(Lahn) - Bad Ems - '''Koblenz Hbf'''
==== Regionalbahn ====
* {{Bahnlinie|RB|10}} Frankfurt(M)Hbf - Wiesbaden Hbf - St.Goarshausen - '''Koblenz Hbf''' - '''Koblenz Stadtmitte''' - Neuwied
* {{Bahnlinie|RB|23}} Limburg(Lahn) - Niederlahnstein - '''Koblenz Hbf''' - '''Koblenz Stadtmitte''' - Andernach - Mayen Ost
* {{Bahnlinie|RB|26}} Mainz Hbf - Bingen Hbf - '''Koblenz Hbf''' - '''Koblenz Stadtmitte''' - '''Koblenz-Lützel''' - Bonn Hbf - Köln Hbf - Köln Messe/Deutz
* {{Bahnlinie|RB|27}} '''Koblenz Hbf''' - '''Koblenz-Ehrenbreitstein''' - Neuwied - Flughafen Köln/Bonn - Köln Messe/Deutz - Köln Hbf - Mönchengladbach
* {{Bahnlinie|RB|81}} '''Koblenz Hbf''' - '''Koblenz-Moselweiß''' - '''Koblenz-Güls''' - Cochem(Mosel) - Trier Hbf
Am zentral gelegenen {{marker|name=Haltepunkt Koblenz Stadtmitte |wikidata = Q1572372}}, direkt am Löhr-Einkaufszentrum, halten Regionalbahn und Regionalexpresszüge. Zudem befindet sich im Stadtgebiet Koblenz der {{marker|name=Bahnhof Koblenz-Lützel|wikidata = Q801023}} an der linken Rheinstrecke nördlich der Mosel. Der {{marker|type=train|name=Bahnhof Koblenz-Ehrenbreitstein| wikidata = Q801022}} liegt an der rechtsrheinischen Bahnstrecke, hier hält die RB27 von/nach Mönchengladbach. An der Moselstrecke von/nach Trier liegen der {{marker|type=train|name=Bahnhof Koblenz-Moselweiß|wikidata=Q116017440}} und der {{marker|type=train|name=Bahnhof Koblenz Güls|wikidata=Q116017224}}.
[[File:Deutsches Eck abends.jpg|thumb|Deutsches Eck von Ehrenbreitstein am Abend. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.]]
=== Auf der Straße ===
Autobahnen: Koblenz wird durch die {{RSIGN|DE|A|48}} von Trier bis Dreieck Dernbach (20 km nordöstlich von Koblenz) erschlossen, die am Dernbacher Dreieck an die {{RSIGN|DE|A|3}} von Frankfurt nach Köln angebunden ist. Wichtigste Abfahrt ist die autobahnähnlich ausgebaute Abfahrt 10 ''Koblenz-Nord'', von der man über die {{RSIGN|DE|B|9}} nach ca. 5 Kilometern Koblenz von Norden erreicht. Zum Erreichen der rechtsrheinisch gelegenen Stadtteile kann auch die Abfahrt 11 ''Bendorf/Neuwied'' zweckmässig sein. Die {{RSIGN|DE|A|61}} von Ludwigshafen nach Köln passiert Koblenz westlich mit den Abfahrten 40 ''Koblenz/Waldesch'' mit Anbindung an die {{RSIGN|DE|B|327}} 15 km südlich von Koblenz und den Abfahrten 39 ''Koblenz/Dieblich'' und 38 ''Koblenz-Metternich'', jeweils ca. 10 km westlich.
Bundesstraßen: Die {{RSIGN|DE|B|9}} (linksrheinisch) und {{RSIGN|DE|B|42}} (rechtsrheinisch) verlaufen entlang des Rhein und queren Koblenz in Nord-Süd-Richtung. Südlich von Koblenz mündet die Hunsrückhöhenstraße ({{RSIGN|DE|B|327}}) auf die Südbrücke und setzt sich als {{RSIGN|DE|B|49}} nach Montabaur fort. Entlang der Mosel verläuft die {{RSIGN|DE|B|416}} aus Treis-Karden am linken Koblenzer Moselufer und die {{RSIGN|DE|B|49}} am rechten Moselufer. Die {{RSIGN|DE|B|270}} durch das Lahntal mündet südlich von Koblenz in die {{RSIGN|DE|B|42}}.
Aufgrund der topographischen Lage ist Koblenz, trotz einiger Versuche in Richtung autogerechter Stadt aus den 70er Jahren, nicht wirklich PKW-freundlich. In den engen Tälern und entlang der Flüsse konzentriert sich der Verkehr auf wenige Schneisen, die stauanfällig sind. Oft fehlt der Platz für Parkplätze, die entsprechend knapp sind. Die hohe Zahl von beruflichen Einpendlern tut ein Übriges. Innerhalb von Koblenz sollte man das Auto stehen lassen und sich mit den Öffentlichen Verkehrsmitteln oder zu Fuss fortbewegen.
=== Mit dem Bus ===
* Es bestehen Regionalbus-Verbindungen, z. B. nach [[Mayen]], Simmern im [[Hunsrück]], [[Montabaur]], [[Hachenburg]] und Altenkirchen.
* Einige der EVM-Stadtbuslinien fahren [https://www.vrminfo.de/fahrplan/uebersichtsplaene/park-ride/ Park-and-Ride Anlagen] am Stadtrand an, ab welchen die Innenstadt mit dem Bus zu erreichen ist.
* Am Busbahnhof des Hauptbahnhofes verkehren zudem [[Fernbusse in Deutschland|Fernbuslinien]] von [[Flix]].
=== Mit dem Schiff ===
* Personenschifffahrt auf '''Rhein''' und '''Mosel''' (auf dem Rhein z. B. die [https://www.k-d.com/ Köln-Düsseldorfer]).
* '''[http://www.moselrundfahrten.de Personenschifffahrt Gebr. Kolb]''', Linie Cochem - Treis - Koblenz
=== Mit dem Fahrrad ===
Koblenz ist sehr gut über die Radfernwege entlang der Flüsse erreichbar: '''[[Rhein-Radweg]]''', '''[[Mosel-Radweg]]''' und '''[[Lahntalradweg|Lahntal-Radweg]]'''.
== Mobilität ==
{{Scroll Gallery
|title = Panoramatour hinauf nach Ehrenbreitstein
|Rheinseilbahn Koblenz 05 2011-06-03.jpg|Wer in Koblenz weilt, sollte sich eine Fahrt mit der Rheinseilbahn zur Festung Ehrenbreitstein nicht entgehen lassen. Der Panoramablick hoch über dem Rhein ist einmalig im [[Mittelrheintal]].
|Koblenz 2011-05-21 10-38-49.JPG|Talstation an der Rheinpromenade
|20110507 koblenz128.JPG|Einstieg an der Talstation
|Foto aus BUGA Seilbahn 001.jpg|auf Tuchfühlung mit der Rheinschifffahrt
|Koblenz im Buga-Jahr 2011 - Rheinseilbahn 05.jpg|Blick auf Ehrenbreitstein
|Kabine 17 Glastisch.jpg|Im Detail: Kabine 17 mit zentralem Glastisch
|KoblenzSeilreiter.JPG|Blick hinüber zum Deutschen Eck.
|Rheinseilbahn Bahnhof Koblenz-Ehrenbreitstein 2010.jpg|Bahnhof Koblenz-Ehrenbreitstein
|Bundesgartenschau Koblenz 199.jpg|Man genießt den attraktiven Talblick
|20110507 koblenz119.JPG|Rheinblick stromabwärts mit Koblenz
|Koblenz im Buga-Jahr 2011 - Rheinseilbahn 06.jpg|Gondelblick nahe der Bergstation
|KO Ehrenbreitstein bahn.JPG|Bergstation auf dem Plateau
|Koblenz-deutsches eck06.jpg|Talblick von Ehrenbreitstein auf Rheinseilbahn und Deutsches Eck.
}}
[[File:Koblenz, Fähre Schängel, Bj. 1953 (2015-08-12 83).JPG|thumb|Fähre {{em|Schlängel}} am Anleger Koblenz]]
Koblenz besitzt ein relativ gut ausgebautes öffentliches Verkehrsnetz, obwohl es seit 1967 keine Straßenbahn mehr gibt. Dafür gibt es aber ein Stadtbussystem, das die Stadt mit den Stadtteilen verbindet. An Wochenenden und Feiertagen gibt es Nachtbusse. Im Dezember 2020 wurde der Fahrplan spürbar ergänzt und es fehlt nur eine Feinjustierung der Fahrzeiten um die Anschlüsse regelmäßig zu erreichen. Das Netz wird von der [https://www.evm.de/evm/Homepage/Verkehr/ evm Verkehrs GmbH] betrieben. weitere Infos: [https://www.evm.de/evm/Homepage/Verkehr/Liniennetz%20und%20Umsteigehaltestellen/ Liniennetz und Umsteigehaltestellen in Koblenz]
*'''Regionaler öffentlicher Verkehr''' - Koblenz ist Mitglied im [[Verkehrsverbund Rhein-Mosel|Verkehrsverbund Rhein-Mosel (VRM)]].
[[Image:Altstadt Express.jpg|thumb|150px|left|Der Altstadtexpress]]
*'''[https://www.altstadtexpress.de/ Altstadtexpress]''' - Der Express (technisch eine [[w:Wegebahn|Wegebahn]]) verkehrt ab dem Deutschen Eck durch die Altstadt von Koblenz (Fahrzeit 30 - 35 Minuten). Die Bahn verkehrt zwischen Anfang April und Ende Oktober stündlich zwischen 10 bis 17 Uhr. Fahrpreise 2019: Erwachsene: 6 €, Kinder (bis 10 Jahre): 2 €, Familienkarte: 14 €.
* '''Rheinseilbahn''' - Die spektakuläre 2-Seil-Umlaufbahn zur Burg Ehrenbreitstein wurde zur Bundesgartenschau 2011 errichtet und wird bis 2026{{Zukunft|2026}} fahren. Die 950 m lange Bahn ist mit 7600 Personen/h die leistungsfähigste Seilbahn der Welt. Mit der Seilbahn ist die rechtsrheinische Festung Ehrenbreitstein direkt von der linksrheinischen Rheinpromenade aus erreichbar. Es gab Bedenken, dass sie den Status des Unesco-Weltkulturerbes im Rheintal gefährdet. Ursprünglich sollte sie deshalb 2014 abgebaut werden. <br/> Die Bahn ist im Sommerhalbjahr (April-Oktober ganztags, in den übrigen Monaten an Wochenenden und Feiertagen in Betrieb. Betriebszeiten sind üblicherweise 0930 bis 1830 Uhr. Details auf der [https://www.seilbahn-koblenz.de/ Webseite der Seilbahn Koblenz]. Preise (Stand 2018): Berg- und Talfahrt: Erwachsene 11,- € / Kinder 5,- €, Einzelfahrt: 8 € / 4,50 €, Fahrradmitnahme: 2,50- € (H/R). Die Seilbahn ist barrierefrei (für Kinderwagen und Rollstühle zugänglich).
* Die {{Strong|[https://gilles-personenschifffahrt.de/unsere-faehre/ Rheinfähre]}} {{em|Schlängel}} zwischen Ehrenbreitstein und Koblenz verkehrt von Ostern bis Oktober täglich (außer dienstags) von 9:00 bis 18:30 grundsätzlich nach Bedarf. Sie bietet eine bequeme und regelmäßige Verbindung und wird im Rahmen des Verkehrsverbunds VRM als Fähre eingesetzt.
== Sehenswürdigkeiten ==
=== Altstadt ===
[[File:Koblenz Altstadt 478-h.jpg|thumb|upright|Vier Türme]]
* {{vCard |type=building |name=Vier Türme |wikidata=Q1274808 |description=Erker der barocken Eckhäuser an der Kreuzung Altengraben / Am Plan und Markt-/Löhrstraße.
}}
=== Kirchen ===
[[File:Koblenz Florinskirche 520-h.jpg|thumb|upright|Florinskirche]]
==== In der Altstadt ====
* {{vCard | name = Liebfrauen-Kirche | type = church | wikidata = Q876889
}}
* {{vCard | name = Florinskirche | type = church | wikidata = Q829315
}}
* {{vCard | name = Jesuitenkirche | type = church | wikidata = Q878994
}}
==== Am Deutschen Eck ====
* {{vCard | name = Basilika St. Kastor | type = basilica | wikidata = Q458387 | url = http://www.sankt-kastor-koblenz.de | lat = 50.36220 | long = 7.60452 | description = älteste Kirche in Koblenz
}}
=== Burgen, Schlösser und Paläste === <!--[[Festung Ehrenbreitstein]] ist eine Weiterleitung auf diesen Abschnitt-->
[[File:Festung Ehrenbreitstein Luftbild 080.jpg|miniatur|Wehrhaft: Ehrenbreitstein im Luftbild]]
[[Datei:Ehrenbreitstein mit Festung 2.jpg|mini|Wer nicht mit der Seilbahn fahren möchte, kann den Berg mit der gleichnamigen Festung auch ersteigen]]
* {{vCard | name = Festung Ehrenbreitstein | type = castle | wikidata = Q50712 | description = Die Festung liegt auf einem Felsen über dem rechten Rheinufer und wurde 2010 renoviert. Eine Seilbahn verbindet das Deutsche Eck mit dem Plateau.
}}
* {{vCard | name = Kurfürstliche Stadtburg Koblenz (Alte Burg) | type = castle | wikidata = Q435449 | description = Die Burg von 1185 liegt am Moselufer. Sie beherbergt heute Teile der Stadtbibliothek sowie das Stadtarchiv. Das Treppenhaus ist während der Öffnungszeiten des Stadtarchivs zu besichtigen: Mo–Di, Do–Fr 14:00–17:00.
}}
* {{vCard | name = Kurfürstliches Schloss | type = castle | wikidata = Q461127 | description = Der repräsentative Schlossbau aus der zweiten Hälfte des 18. Jh für den Trierer Erzbischof und Kurfürst Clemens Wenzeslaus von Sachsen ist nach der Zerstörung im Zweiten Weltkrieg komplett wiederaufgebaut worden und beherbergt einige Bundesbehörden. Die Besichtigung ist nur von außen möglich.
}}
* {{vCard | type = castle | name = Schloss Stolzenfels | lat = 50.3031 | long = 7.5921 | wikidata = Q833779 | description = ca. 5 km südlich von Koblenz am Rhein. |directions=Bus-Linie „650 Boppard“ bis zur Haltestelle „Stolzenfels-Schlossweg“
}}
=== Bauwerke ===
* {{vCard|type=bridge|name=Balduinbrücke|lat=50.3632 | long=7.5933|wikidata=Q804831|description=Sie ist die älteste erhaltene Koblenzer Brücke und stammt aus dem 14. Jahrhundert. Allerdings wurden in den 60er Jahren Teile der Brücke abgerissen, um für die Kanalisierung der Mosel Platz für die Schifffahrt zu machen.
}}
=== Denkmäler und Brunnen ===
* {{vCard|type=monument|name=Kaiser-Wilhelm-Denkmal am Deutschen Eck|wikidata=Q115325791|address=|phone=|email=|url=|hours=1. April - 31. Oktober: 8:00–20:00|price=frei |lat=50.3640 | long=7.6055|lastedit=|description=Monumentale Reiterstatue für Kaiser Wilhelm I. Die kostenlos zugängliche Aussichtsplattform auf dem Sockel kann über eine enge Wendeltreppe bestiegen werden. Von hier oben hat man einem attraktiven Blick über das Deutsche Eck sowie über den Rhein zur Festung Ehrenbreitstein.
}}
* Der '''Schängelbrunnen''' am alten Rathaus wurde dem „Maskottchen“ der Stadt Koblenz gewidmet. Das Wort Schängel stammt vom französischen „Jean“ ab und war ursprünglich als Schimpfwort gemeint, wird heute aber als liebevolle Bezeichnung für die Koblenzer Bürger benutzt.
* '''Kaiserin-Augusta-Anlagen''' im südlichen Teil der Rheinanlagen.
=== Museen ===
* {{vCard| name = Rhein-Museum Koblenz |type=museum|wikidata= Q2147480|hours= Di–So 10:00–17:00|price=5,- €, ermäßigt (Studenten, Schüler): 3,- €, Familienkarte: 11,- |directions=Bahnhof Ehrenbreitstein, Rheinfähre, Bus-Linie 9 u. 10 - Haltestelle „Charlottenstraße“. Linie 8 - Haltestelle Bahnhof Ehrenbreitstein, ca. 50 m vom Museum.|description= Kulturhistorisches Museum, auf 1300 Quadratmetern wird das Leben am Rhein gezeigt. Themen sind u. a. Rheinschifffahrt, Rheinromantik, Biologie des Flusses, Rheinlandschaften, Wasserbau und Hochwasser.
}}
* {{vCard | name = Mittelrhein Museum Koblenz | type = museum | wikidata = Q1940336 | url = https://www.mittelrhein-museum.de/ | email = info@mittelrhein-museum.de | phone = +49 (0)261-129 2502 | hours = Di–So 10:00–18:00 | lat = 50.3624 | long = 7.5969 | lastedit = 2020-06-01 | description = im Forum Mittelrhein, Zentralplatz 1, 56068 Koblenz − Gemäldesammlung
}}
* {{vCard |name=Deutsche Bahn Museum Koblenz |wikidata=Q1152064 |type=museum |directions=Bahnhof Koblenz-Lützel + 15 min. Fußweg, Bus 354 Koblenz Hbf – Koblenz-Lützel Haltest. DB Museum |lat= |long= |hours=im Sommer: Sa 10:00–16:00 |description=In einer ehemaligen Lokhalle des BW Koblenz-Lützel sind historische Elektro- und Dampflokomotiven, Reisezugwagen und Salonwagen zu besichtigen. Neben zahlreichen Originalfahrzeugen zeigt das Museum verschiedene Ausstellungen zur Entwicklung der Reisezug- und Salonwagen, der Antriebstechniken bei elektrischen Lokomotiven und der Entwicklung der Zugsicherung. Auch die Fans von Modelleisenbahnen kommen hier auf ihre Kosten: Es gibt Eisenbahnmodelle in drei verschiedenen Größen: von der klassischen H0-Bahn über die Gartenbahn bis zur 5-Zoll-Mitfahreisenbahn. |lastedit=2025-08-10
}}
* {{vCard|type=museum |name=Kunsthalle Koblenz |address=|phone=|email=|url=http://www.kunsthalle-koblenz.de |hours=|price=|lat=50.3595 | long=7.5981|lastedit=|description=
}}
* {{vCard | type = museum | name = Landesmuseum Koblenz | wikidata = Q1502400 | description = auf der Festung Ehrenbreitstein − Technisch-historische Sammlung sowie Ausstellung mit archäologischen Funden aus der langen Kulturgeschichte der Mittelrhein-Region.
}}
* {{vCard | type = museum | name = Ludwig Museum im Deutschherrenhaus | hours = Di. – Sa. von 10:30–17:00, So. u. Feiertags von 11:00–18:00 | price = 5,- €, ermäßigt: 3,- €, Kinder bis 12 J. frei | wikidata = Q18088925 | description = Museum für zeitgenössische Kunst von der Nachkriegszeit bis in die Gegenwart mit dem Schwerpunkt französische Kunst.
}}
* {{vCard | type = museum | name = Museum Schloss Stolzenfels | url = http://www.schloss-stolzenfels.de | lat = 50.3031 | long = 7.5921 | directions = Bus-Linie 650 nach Boppard bis „Stolzenfels-Schlossweg“ | hours = Jan–Nov: Di–So 9:00–17:00 | price = 4,- €, Kinder u. Jugendl.: 2,50 €, Familien: 8,- € | wikidata = Q833779 | show = copy | description = Im 19. Jahrh. aus Ruinen einer Burg des 13. Jahrh. erstandenes Schloss mit zugehörigem Park und Gärten. Es thront über dem Rhein gegenüber [[Lahnstein|Oberlahnstein]] zwischen Rehns und Koblenz.
}}
* {{vCard | name = Mutter-Beethoven-Haus | type = museum | wikidata = Q1955936 | url = https://www.mutter-beethoven-haus.de/ | address = Wambachstraße 204, 56077 Koblenz (Ehrenbreitstein) | phone = +49 (0)261 9730669 | hours = So und feiertags 14:00–18:00 | price = 3 €, ermäßigt 2 € | lastedit = 2020-06-01 | description = Geburtshaus der Maria Magdalena van Beethoven, geb. Kevenich, Mutter von Ludwig van Beethoven, mit Ausstellungen zur Geschichte der Familie und Ehrenbreitsteins
}}
* {{vCard |type=museum |name=Rheinisches Fastnachtsmuseum |wikidata=Q1535025
}}
* {{vCard | name = Wehrtechnische Studiensammlung Koblenz | type = museum | wikidata = Q2205919 | url = https://www.bundeswehr.de/de/organisation/ausruestung-baainbw/organisation/wehrtechnische-studiensammlung | address = Mayener Straße 85-87, 56070 Koblenz | lat = 50.36906 | long = 7.58537 | hours = täglich 9:30-16:30 | price = 3 € | lastedit = 2023-11-07 | description = In der Wehrtechnischen Studiensammlung auf dem Gelände der ehemaligen Langemarck-Kaserne in Koblenz sammelt die Bundeswehr militärtechnisches Gerät aus allen Jahrhunderten der Militärgeschichte, mit einem Fokus auf die jüngere Geschichte des Zweiten Weltkriegs und danach. Die Sammlung steht Zivilisten innerhalb der Öffnungszeiten offen und ist vor allem für militärtechnisch interessierte Personen, die bereits mit der Materie vertraut sind, sehr empfehlenswert; da es sich nicht um ein Museum im engeren Sinne handelt, wird man hier keine Erklärungen o. ä. finden. Es gilt '''Ausweispflicht!''''.
}}
* Hinweis: Das Mittelrheinische Postmuseum wurde geschlossen. Die Ausstellungsstücke wurden an das Postmuseum in Frankfurt am Main „vererbt“.
=== Straßen und Plätze ===
* {{vCard |type=cape |name=Deutsches Eck |wikidata=Q700785 |description=Zusammenfluss von Rhein und Mosel mit Kaiser-Wilhelm-Denkmal und schönem Blick auf die gegenüberliegende Festung Ehrenbreitstein.
}}
* Das „Konrad-Adenauer-Ufer“ ist der nördliche Teil der '''Rheinanlagen'''. Der Blumenhof am Deutschen Eck. Es fand hier und auf der Festung Ehrenbreitstein die Bundesgartenschau 2011 statt.
[[File:Koblenz Münzplatz 488-h.jpg|thumb|Münzplatz: Maatfrau & Schutzmann]]
* {{vCard |type=square |name=Der Plan |description=Zentraler Platz in der Altstadt mit diversen Gastronomie-Angeboten. Ein weiterer beliebter Platz in der Altstadt ist der Jesuitenplatz am Rathaus.
}}
* {{vCard |type=square |name=Görresplatz |description=Mit dem Brunnen und der ca. 10 m hohen Historiensäule in der Mitte des Platzes.
}}
* {{vCard |type=square |name=Münzplatz |wikidata=Q100933505 |description=Erhalten ist heute nur noch das ehemalige Wohnhaus des Münzmeisters, das 1761/63 erbaut wurde.
}}
=== Parks ===
[[File:Koblenz Rheinradweg 599-hh.jpg|thumb|Kaiserin-Augusta-Anlage neben der Rheinlache südlich der Pfaffendorfer Brücke]]
Das linksrheinische Ufer ist vom Deutschen Eck zur Rheinlache in Oberwerth als Grünanlage ausgebaut und wird auch Rheingarten genannt. Zwischen dem Deutschen Eck und der Pfaffendorfer Brücke heißt das Rheinufer „Konrad-Adenauer-Ufer“ und südlich der Brücke ''Kaiserin-Augusta-Anlage''.
<!-- === Verschiedenes ===
* [http://bundesgartenschau.de/buga-iga/bisherige-gartenschauen/buga-koblenz-2011.html Bundesgartenschau Koblenz 2011] · Vom 15. April bis 16. Oktober 2011 fand die Bundesgartenschau in Koblenz statt. -->
== Aktivitäten ==
'''Wandern''' linksrheinisch:
* Der [[Rheinburgenweg]] streift Koblenz nur im Süden, er führt um Koblenz-Karthause zur Mosel, Von der Moselbrücke in Koblenz-Güls geht er dann nach Winningen und kommt erst hinter [[Andernach]] wieder and den Rhein.
* Der Rheinhöhenweg und der Europäische Fernwanderweg 8 führen von der Südbrücke direkt am Rhein bis zum Deutschen Eck, von dort an der Mosel und über die Moselbrücke nach Koblenz-Güls und dann direkt nach [[Andernach]].
* Auf dem Moselsteig. Der Endpunkt liegt am Deutschen Eck.
'''Wandern''' rechtsrheinisch:
* Auf dem [[Rheinsteig]]
=== Regelmäßige Veranstaltungen ===
[[File:Ehrenbreitstein Koblenz Rheinpanorama.jpg|thumb|center|740px|Rheinpanorama Koblenz-Ehrenbreitstein mit der Festung Ehrenbeitstein]]
* {{vCard | name = Altstadtfest Koblenz | type = festival | url = https://www.visit-koblenz.de/de/events/veranstaltungskalender#/veranstaltungen/RPT/2488f015-bdda-427a-bd6e-4377850e7d71/altstadtfest-koblenz | price = Eintritt frei | description =
}}
* {{vCard|type=festival|name= Gauklerfest Koblenz|address= in der Altstadt|phone=|email=|fax=|url=https://www.gauklerfest-koblenz.de/|hours= |price= Tickets|lat=|long=|description= Gaukler- und Kleinkunstfestival
}}
* {{vCard | type = festival | name = Rhein in Flammen | url = https://www.rhein-in-flammen.com | address = zwischen Spay/Braubach und Koblenz | price = Schiffsfahrt ca. 70,- € | wikidata = Q315135 | description = zahlreiche beleuchtete Schiffe sammeln sich vor Spay, ab ca. 21:00 starten die Schiffe in Richtung Koblenz; Ortschaften und Gebäude erstrahlen bei besonderer Beleuchtung; Gebäude werden mit roten Bengalfeuern angeleuchtet; imposante Feuerwerke auf der Strecke, solange sich die Schiffskolonne in deren Nähe befindet; an geeigneten Standorten lassen sich von Land aus die Feuerwerke beobachten, bei guter Tourplanung könnte sogar ein „mitfahren“ mit dem Fahrrad möglich sein (ca. 18 km)
}}
== Einkaufen ==
* {{vCard|name=Löhr-Center |type=mall | wikidata = Q1879707 | description= am Bahnhof Koblenz-Stadtmitte
}}
* Löhr-Straße
* {{vCard|name=Forum Mittelrhein |type=mall |wikidata=Q1439218 | description = auf dem Zentralplatz
}}
== Küche ==
<!--
=== Günstig ===
=== Mittel ===
Lieser‘s, Altstadt
=== Gehoben ===
-->
== Nachtleben ==
Die Altstadt ist dank der vielen Kneipen, Bars und Restaurants recht belebt. In der Altstadt finden sich auch Szene- und Musikkneipen. Überregional bekannt ist der Musik-, Kabarett- und Theaterclub '''[https://www.cafehahn.de/ Café Hahn]''' im Stadteil Güls.
== Unterkunft ==
=== Günstig ===
* {{vCard | name = Jugendherberge Koblenz | type = youth hostel | url = https://www.jugendherberge.de/jugendherbergen/koblenz/ | address = Jugendherberge Festung Ehrenbreitstein, 56077 Koblenz | lat = 50.36427 | long = 7.61345 | phone = +49 (0)261 972870 | email = koblenz@diejugendherbergen.de | hours = ganzjährig (außer Weihnachten) | price = 2024 u. 2025: ab 29,80 €/ÜF, 2026: ab 31,80 €/ÜF | subtype = free wlan, wheelchair, wc, shower | lastedit = 2024-10-21 | description = Die Jugendherberge Festung Ehrenbreitstein gehört wegen ihrer Lage hoch über dem Rhein gegenüber der Moselmündung zu den beliebtesten Jugendherbergen Deutschlands. 2010 renoviert verfügt sie über 157 Betten in Zimmern für 1-, 2-, 4- und Mehrbettbelegung.
}}
* {{vCard | name = KNAUS Campingpark Rhein-Mosel/Koblenz | type = campsite | url = https://www.knauscamp.de/koblenz | address = Schartwiesenweg 6, 56070 Koblenz | lat = 50.37208 | long = 7.60717 | phone = +49 (0)261 82719 | email = koblenz@knauscamp.de | hours = ganzjährig | checkin = ab 12:30 | checkout = bis 12:30 | subtype = free wlan, wheelchair, minigolf, playground, bistro, dogs | lastedit = 2024-10-21 | description = Der Campingplatz liegt verkehrsgünstig an der Moselmündung, gegenüber vom Deutschen Eck. Die Personenfähre „Liesel“ verbindet in den Sommermonaten direkt mit der Innenstadt.
}}
=== Mittel ===
* {{vCard | name = City Partner Hotel Trierer Hof | type = hotel garni | url = https://www.cph-hotels.com/de/cph-hotels/hotel-trierer-hof/ | address = Clemensstraße 1, 56068 Koblenz | lat = 50.35843 | long = 7.59938 | phone = +49 (0)261 1006-0 | fax = +49 (0)261 1006-100 | email = koblenz@citypartnerhotels.com | facebook = 173011109384857 | hours = Täglich, außer vom 22.12.2024 bis einschließlich 02.01.2025 | price = ab 89,00 €/Ü | subtype = 3, parking, wlan, lift, ac | lastedit = 2024-04-06 | description = Hotel mit 34 Zimmern, verteilt auf 3 Ebenen.
}}
=== Gehoben ===
* {{vCard|name=Urlaubs-, Sport- und Aktivhotel Zugbrücke |wikidata=|type=hotel |address=Brexbachstraße 11 – 17, 56203 Höhr-Grenzhausen |phone=+49 02624 1050 |email=info@zugbruecke.de |url=https://www.zugbruecke.de |hours=|price=|lat=50.45181 |long=7.66169 |lastedit=2026-03-08 |description=Etwa 15 km von Koblenz entfernt in Grenzau. Schnell und einfach über die Autobahn zu erreichen.}}
== Lernen ==
* {{vCard| name = Universität Koblenz |type=university|wikidata= Q448590}}
* {{vCard| name = Hochschule Koblenz |type=university|wikidata= Q1622117}}
== Sicherheit ==
Die Koblenzer Stadtteile Neuendorf und Lützel, eine wenig einnehmende Wohngegend direkt nördlich des Deutschen Eck auf der gegenüberliegenden Eifel-Seite, sind für Touristen uninteressant.
Bei Rhein- und/oder Moselhochwasser stehen häufig Gebiete am Rhein- und Moselufer sowie Teile der Altstadt und von Neuendorf unter Wasser. Die Häuser sind dann über Stege oder mit Booten erreichbar.
== Gesundheit ==
Informationen zu diversen Gesundheits-Notdiensten listet die Stadt Koblenz auf ihrer [https://www.koblenz.de/leben-in-koblenz/gesundheit/notdienste/ Website] auf.
* {{vCard | name = Krankenhaus Kemperhof Koblenz | type = hospital | wikidata = Q1774624 | url = https://www.gk.de/krankenhaeuser/kemperhof-koblenz/ueberblick | address = Koblenzer Straße 115-155 56073 Koblenz | phone = +49 0261 499-0 | email = info@gk.de | subtype = emergency, hospital | lastedit = 2026-04-04 | description = Größtes Krankenhaus in Koblenz, Maximalversorgungszentrum der Region.
}}
== Praktische Hinweise ==
== Ausflüge ==
* '''Oberes Mittelrheintal''':
** [https://www.schloss-stolzenfels.de/ Schloss Stolzenfels] − Auf dem Anwesen der 1689 niedergebrannten Festungsanlage baute der Architekt Karl Friedrich Schinkel für den preußischen König Friedrich Wilhelm IV das Schloss Stolzenfels. · Geöffnet Jan. - Febr.: nur Sa/So 9 - 17 Uhr, März: 9 - 17 Uhr, April - Sept.: 9 - 18 h, Okt. - Nov.: 9 - 17 h, Dez. geschlossen. Eintritt: 4,- €, Kinder u. Jugendliche: 2,- €, Familien: 8,- €.
** [[Boppard]]
** [[Lahnstein]]
** [[Braubach]] mit der Marksburg
* '''Unteres Mittelrheintal:''' [[Andernach]], [[Neuwied]]
* '''[[Moseltal]]'''
* '''[[Lahntal]]''': [[Bad Ems]], [[Nassau (Lahn)|Nassau]]
* '''im [[Hunsrück]]: Rundtour & Wanderung zur Ehrbachklamm''' - attraktive Rundtour zu Fuß (17 km mit rund 5 Std. Gehzeit), per Bus, Bahn und evtl. Schiff. Weitere Infos [[Boppard#Rundtour & Wanderung zur Ehrbachklamm|siehe Artikel Boppard]].
== Literatur ==
== Weblinks ==
* {{Offizielle Webseite}}
* [http://koblenz.magazin-next.de/ Stadtportal & Webmagazin über Koblenz und die Region]
=== Webcams ===
* [https://www.bafg.de/php/deutsches-eck-gross.jpg Blick auf das Deutsche Eck von der Festung Ehrenbreitstein]
* [http://rz-home.de/~spkko/spk-koblenz/webcam/bild1/index.html Blick über die Altstadt] - Webcam der Sparkasse Koblenz
{{GeoData| lat= 50.35| long= 7.6| radius= }}
{{IstInKat|Region Koblenz||Mittelrheintal}}
{{class-3}}
n451xn0u6scg175e06lck615k8q97ua
1769200
1769188
2026-04-17T10:21:18Z
DerFussi
6
/* Stadtteile */ Linkfix
1769200
wikitext
text/x-wiki
{{AndereOrte|Einleitung=no|Als anderer Ort gleichen Namens existiert noch die Ortschaft [[Koblenz_AG|Koblenz (AG)]] in der Schweiz, am linken Rheinufer gegenüber von [[Waldshut]].}}
{{quickbar Ort
|Bild=[[File:German_corner_Koblenz_08_2007_d_schmidt.jpg|300px|Moselmündung am Deutschen Eck ]]
| TouriInfoWeb =
| TouriInfoTel =
}}
'''Koblenz''' ist eine Stadt im Norden von [[Rheinland-Pfalz]] an der Mündung der [[Moseltal|Mosel]] in den [[Rhein]]. Sie liegt im [[Mittelrheintal]] und am Ende des Moseltals. '''Koblenz''' ist die bedeutendste Stadt im Mittelrheintal. Der Name Koblenz leitet sich von ''Confluentes'' ab, Latein für „Zusammenfluss“. Koblenz markiert die Grenze zwischen oberem und unterem Mittelrhein. Nur wenige Kilometer südlich befindet sich außerdem die Mündung der [[Lahntal|Lahn]]. Koblenz liegt somit genau in der Mitte zwischen den vier Teilen des Rheinischen Schiefergebirges: [[Eifel]] (linksrheinisch, nördlich der Mosel), [[Westerwald]] (rechtsrheinisch, nördlich der Lahn), [[Hunsrück]] (linksrheinisch, südlich der Mosel) und [[Taunus]] (rechtsrheinisch, südlich der Lahn).
== Stadtteile ==
{{mapframe|50.357|7.598|zoom= 14|type=geoline}}
Das Rheintal südlich der Moselmündung ist vergleichsweise eng mit steilen Hängen zum Hunsrück bzw. Westerwald; nur das kompakte Stadtzentrum und die Altstadt liegen in flachem Gelände. Nördlich der Moselmündung weitet sich linksrheinisch das Rheintal, rechtsrheinisch reichen die Hänge des Westerwalds weiter bis an den Fluss. Für die Stadtentwicklung bedeutete dies, dass die Stadt seit der Industrialisierung sich vor allem linksrheinisch in Richtung Nordwesten (Stadtteil Lützel) ausdehnte.
Die historische '''Altstadt''' wie auch die südlich angrenzende '''südliche Vorstadt''' und, auf einer ehemaligen Rheininsel gelegen, '''Oberwerth''' liegen rheinaufwärts im Rheintal, '''Rauental''', '''Goldgrube''' und '''Moselweiß''' moselaufwärts im Tal in dem Zwickel zwischen den Flüssen. Dazwischen liegt ein Ausläufer des Hunsrücks mit dem, einst eine Festung, Stadtteil Karthause.
Rechtsrheinisch liegen '''Ehrenbreitstein''' und '''Pfaffendorf''' im schmalen Streifen zwischen Rhein und Hang, den sie sich noch mit Bahn und Bundesstraße teilen müssen, östlich anschließend auf der Höhe '''[[Koblenz/Arenberg|Arenberg]]''', Arzheim, '''Asterstein''' und '''Pfaffendorfer Höhe'''.
Linksrheinisch und nördlich der Mosel liegen in der Ebene des Neuwieder Becken '''Lützel''', '''Metternich''', '''Neuendorf''' und weitere, stark gewerblich geprägte Stadtteile.
Für Besucher sind vor allem die Altstadt und Ehrenbreitstein von Interesse. Beide sind kompakt und fußläufig zu erschließen, in Ehrenbreitstein allerdings mit Steigungen.
== Hintergrund ==
'''Koblenz''' ist die bedeutendste Stadt im Mittelrheintal. Es liegt unmittelbar an der Mündung der [[Moseltal|Mosel]] in den Rhein, die man das Deutsche Eck nennt. Der Name Koblenz leitet sich von ''Confluentes'' ab, Latein für „Zusammenfluss“. Koblenz markiert die Grenze zwischen oberem und unterem Mittelrhein. Nur wenige Kilometer südlich befindet sich außerdem die Mündung der [[Lahntal|Lahn]]. Koblenz liegt somit genau in der Mitte zwischen den vier Teilen des Rheinischen Schiefergebirges: [[Eifel]] (linksrheinisch, nördlich der Mosel), [[Westerwald]] (rechtsrheinisch, nördlich der Lahn), [[Hunsrück]] (linksrheinisch, südlich der Mosel) und [[Taunus]] (rechtsrheinisch, südlich der Lahn).
Die strategisch wichtige Lage machte Koblenz seit der Antike zu einer stark von Befestigungsanlagen geprägten Stadt. Auch heute dominiert die rechtsrheinisch gelegene Festung Ehrenbreitstein das Panorama; der Hauptbahnhof wird vom Fort Konstantin überragt. Diese sind aber nur eine Auswahl von einem Dutzend Festungen im Stadtgebiet, die aus verschiedenen Jahrhunderten stammen.
{{Panorama|bild=Koblenz_pano_ehrenbreitstein_neuwieder_becken_ds_wv_06_2007.jpg|unterschrift=Blick von der Festung Ehrenbreitstein auf Koblenz, das Deutsche Eck an der Moselmündung und das Neuwieder Becken. Hier weitet sich auf etwa 20 km das Mittelrheintal zu einem weiten Talkessel. Im dicht besiedelten Talboden leben etwa 300.000 Menschen, wobei Koblenz mit 115.000 Einwohnern die größte Stadt ist.|breite=1100px}}
== Anreise ==
=== Mit dem Flugzeug ===
Die nächstgelegenen Flughäfen sind
* {{marker|type = airport|name = Flughafen Köln-Bonn |wikidata = Q157741}}
* {{marker|type = airport|name = Flughafen Düsseldorf|wikidata = Q58226}}
* {{marker|type = airport|name = Flughafen Frankfurt am Main|wikidata = Q46033}}
* {{marker|type = airport|name = Flughafen Frankfurt-Hahn |wikidata = Q158211}}
Die ersten drei sind umsteigefrei mit dem Zug, letzterer ist mit dem Bus erreichbar. Die Fahrtzeit beträgt jeweils etwas mehr als eine Stunde.
=== Mit der Bahn ===
{{vCard|name=Hauptbahnhof Koblenz| wikidata = Q469682| description = Der Hauptbahnhof liegt am Südwestrand der Innenstadt. Es halten ICE, IC, EN, RE und RB-Züge. Von Mainz und Köln benötigt man jeweils ca. 1 Stunde. Fernverkehrszüge verbinden Koblenz u. a. mit Hamburg, dem Ruhrgebiet, Köln, Mainz, Frankfurt a. M., Stuttgart und Trier. Der Bahnhof liegt an der linken Rheinstrecke mit Abzweig an die rechte Rheinstrecke, die Moselstrecke in Richtung Luxembourg sowie die [[Lahntalbahn]].
}}
Am Hauptbahnhof Koblenz halten folgende Nahverkehrslinien:
==== Regionalexpress ====
* {{Bahnlinie|RE|1}} {{Bahnlinie|RE|11}} Mannheim Hbf/Luxembourg Gare - Trier Hbf - '''Koblenz Hbf'''
* {{Bahnlinie|RE|2}} Frankfurt(M)Hbf - Frankfurt(M)Flughafen - Mainz Hbf - '''Koblenz Hbf'''
* {{Bahnlinie|RE|5}} '''Koblenz Hbf''' - '''Koblenz Stadtmitte''' - Bonn Hbf - Köln Hbf - Düsseldorf Hbf - Düsseldorf Flughafen - Wesel
* {{Bahnlinie|RE|8}} '''Koblenz Hbf''' - '''Koblenz Stadtmitte''' - '''Koblenz-Lützel''' - Neuwied - Köln Messe/Deutz - Köln Hbf - Mönchengladbach
* {{Bahnlinie|RE|17}} '''Koblenz Hbf''' - Oberwesel - Bad Kreuznach - Kaiserslautern Hbf
* {{Bahnlinie|RE|25}} Gießen - Limburg(Lahn) - Bad Ems - '''Koblenz Hbf'''
==== Regionalbahn ====
* {{Bahnlinie|RB|10}} Frankfurt(M)Hbf - Wiesbaden Hbf - St.Goarshausen - '''Koblenz Hbf''' - '''Koblenz Stadtmitte''' - Neuwied
* {{Bahnlinie|RB|23}} Limburg(Lahn) - Niederlahnstein - '''Koblenz Hbf''' - '''Koblenz Stadtmitte''' - Andernach - Mayen Ost
* {{Bahnlinie|RB|26}} Mainz Hbf - Bingen Hbf - '''Koblenz Hbf''' - '''Koblenz Stadtmitte''' - '''Koblenz-Lützel''' - Bonn Hbf - Köln Hbf - Köln Messe/Deutz
* {{Bahnlinie|RB|27}} '''Koblenz Hbf''' - '''Koblenz-Ehrenbreitstein''' - Neuwied - Flughafen Köln/Bonn - Köln Messe/Deutz - Köln Hbf - Mönchengladbach
* {{Bahnlinie|RB|81}} '''Koblenz Hbf''' - '''Koblenz-Moselweiß''' - '''Koblenz-Güls''' - Cochem(Mosel) - Trier Hbf
Am zentral gelegenen {{marker|name=Haltepunkt Koblenz Stadtmitte |wikidata = Q1572372}}, direkt am Löhr-Einkaufszentrum, halten Regionalbahn und Regionalexpresszüge. Zudem befindet sich im Stadtgebiet Koblenz der {{marker|name=Bahnhof Koblenz-Lützel|wikidata = Q801023}} an der linken Rheinstrecke nördlich der Mosel. Der {{marker|type=train|name=Bahnhof Koblenz-Ehrenbreitstein| wikidata = Q801022}} liegt an der rechtsrheinischen Bahnstrecke, hier hält die RB27 von/nach Mönchengladbach. An der Moselstrecke von/nach Trier liegen der {{marker|type=train|name=Bahnhof Koblenz-Moselweiß|wikidata=Q116017440}} und der {{marker|type=train|name=Bahnhof Koblenz Güls|wikidata=Q116017224}}.
[[File:Deutsches Eck abends.jpg|thumb|Deutsches Eck von Ehrenbreitstein am Abend. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.]]
=== Auf der Straße ===
Autobahnen: Koblenz wird durch die {{RSIGN|DE|A|48}} von Trier bis Dreieck Dernbach (20 km nordöstlich von Koblenz) erschlossen, die am Dernbacher Dreieck an die {{RSIGN|DE|A|3}} von Frankfurt nach Köln angebunden ist. Wichtigste Abfahrt ist die autobahnähnlich ausgebaute Abfahrt 10 ''Koblenz-Nord'', von der man über die {{RSIGN|DE|B|9}} nach ca. 5 Kilometern Koblenz von Norden erreicht. Zum Erreichen der rechtsrheinisch gelegenen Stadtteile kann auch die Abfahrt 11 ''Bendorf/Neuwied'' zweckmässig sein. Die {{RSIGN|DE|A|61}} von Ludwigshafen nach Köln passiert Koblenz westlich mit den Abfahrten 40 ''Koblenz/Waldesch'' mit Anbindung an die {{RSIGN|DE|B|327}} 15 km südlich von Koblenz und den Abfahrten 39 ''Koblenz/Dieblich'' und 38 ''Koblenz-Metternich'', jeweils ca. 10 km westlich.
Bundesstraßen: Die {{RSIGN|DE|B|9}} (linksrheinisch) und {{RSIGN|DE|B|42}} (rechtsrheinisch) verlaufen entlang des Rhein und queren Koblenz in Nord-Süd-Richtung. Südlich von Koblenz mündet die Hunsrückhöhenstraße ({{RSIGN|DE|B|327}}) auf die Südbrücke und setzt sich als {{RSIGN|DE|B|49}} nach Montabaur fort. Entlang der Mosel verläuft die {{RSIGN|DE|B|416}} aus Treis-Karden am linken Koblenzer Moselufer und die {{RSIGN|DE|B|49}} am rechten Moselufer. Die {{RSIGN|DE|B|270}} durch das Lahntal mündet südlich von Koblenz in die {{RSIGN|DE|B|42}}.
Aufgrund der topographischen Lage ist Koblenz, trotz einiger Versuche in Richtung autogerechter Stadt aus den 70er Jahren, nicht wirklich PKW-freundlich. In den engen Tälern und entlang der Flüsse konzentriert sich der Verkehr auf wenige Schneisen, die stauanfällig sind. Oft fehlt der Platz für Parkplätze, die entsprechend knapp sind. Die hohe Zahl von beruflichen Einpendlern tut ein Übriges. Innerhalb von Koblenz sollte man das Auto stehen lassen und sich mit den Öffentlichen Verkehrsmitteln oder zu Fuss fortbewegen.
=== Mit dem Bus ===
* Es bestehen Regionalbus-Verbindungen, z. B. nach [[Mayen]], Simmern im [[Hunsrück]], [[Montabaur]], [[Hachenburg]] und Altenkirchen.
* Einige der EVM-Stadtbuslinien fahren [https://www.vrminfo.de/fahrplan/uebersichtsplaene/park-ride/ Park-and-Ride Anlagen] am Stadtrand an, ab welchen die Innenstadt mit dem Bus zu erreichen ist.
* Am Busbahnhof des Hauptbahnhofes verkehren zudem [[Fernbusse in Deutschland|Fernbuslinien]] von [[Flix]].
=== Mit dem Schiff ===
* Personenschifffahrt auf '''Rhein''' und '''Mosel''' (auf dem Rhein z. B. die [https://www.k-d.com/ Köln-Düsseldorfer]).
* '''[http://www.moselrundfahrten.de Personenschifffahrt Gebr. Kolb]''', Linie Cochem - Treis - Koblenz
=== Mit dem Fahrrad ===
Koblenz ist sehr gut über die Radfernwege entlang der Flüsse erreichbar: '''[[Rhein-Radweg]]''', '''[[Mosel-Radweg]]''' und '''[[Lahntalradweg|Lahntal-Radweg]]'''.
== Mobilität ==
{{Scroll Gallery
|title = Panoramatour hinauf nach Ehrenbreitstein
|Rheinseilbahn Koblenz 05 2011-06-03.jpg|Wer in Koblenz weilt, sollte sich eine Fahrt mit der Rheinseilbahn zur Festung Ehrenbreitstein nicht entgehen lassen. Der Panoramablick hoch über dem Rhein ist einmalig im [[Mittelrheintal]].
|Koblenz 2011-05-21 10-38-49.JPG|Talstation an der Rheinpromenade
|20110507 koblenz128.JPG|Einstieg an der Talstation
|Foto aus BUGA Seilbahn 001.jpg|auf Tuchfühlung mit der Rheinschifffahrt
|Koblenz im Buga-Jahr 2011 - Rheinseilbahn 05.jpg|Blick auf Ehrenbreitstein
|Kabine 17 Glastisch.jpg|Im Detail: Kabine 17 mit zentralem Glastisch
|KoblenzSeilreiter.JPG|Blick hinüber zum Deutschen Eck.
|Rheinseilbahn Bahnhof Koblenz-Ehrenbreitstein 2010.jpg|Bahnhof Koblenz-Ehrenbreitstein
|Bundesgartenschau Koblenz 199.jpg|Man genießt den attraktiven Talblick
|20110507 koblenz119.JPG|Rheinblick stromabwärts mit Koblenz
|Koblenz im Buga-Jahr 2011 - Rheinseilbahn 06.jpg|Gondelblick nahe der Bergstation
|KO Ehrenbreitstein bahn.JPG|Bergstation auf dem Plateau
|Koblenz-deutsches eck06.jpg|Talblick von Ehrenbreitstein auf Rheinseilbahn und Deutsches Eck.
}}
[[File:Koblenz, Fähre Schängel, Bj. 1953 (2015-08-12 83).JPG|thumb|Fähre {{em|Schlängel}} am Anleger Koblenz]]
Koblenz besitzt ein relativ gut ausgebautes öffentliches Verkehrsnetz, obwohl es seit 1967 keine Straßenbahn mehr gibt. Dafür gibt es aber ein Stadtbussystem, das die Stadt mit den Stadtteilen verbindet. An Wochenenden und Feiertagen gibt es Nachtbusse. Im Dezember 2020 wurde der Fahrplan spürbar ergänzt und es fehlt nur eine Feinjustierung der Fahrzeiten um die Anschlüsse regelmäßig zu erreichen. Das Netz wird von der [https://www.evm.de/evm/Homepage/Verkehr/ evm Verkehrs GmbH] betrieben. weitere Infos: [https://www.evm.de/evm/Homepage/Verkehr/Liniennetz%20und%20Umsteigehaltestellen/ Liniennetz und Umsteigehaltestellen in Koblenz]
*'''Regionaler öffentlicher Verkehr''' - Koblenz ist Mitglied im [[Verkehrsverbund Rhein-Mosel|Verkehrsverbund Rhein-Mosel (VRM)]].
[[Image:Altstadt Express.jpg|thumb|150px|left|Der Altstadtexpress]]
*'''[https://www.altstadtexpress.de/ Altstadtexpress]''' - Der Express (technisch eine [[w:Wegebahn|Wegebahn]]) verkehrt ab dem Deutschen Eck durch die Altstadt von Koblenz (Fahrzeit 30 - 35 Minuten). Die Bahn verkehrt zwischen Anfang April und Ende Oktober stündlich zwischen 10 bis 17 Uhr. Fahrpreise 2019: Erwachsene: 6 €, Kinder (bis 10 Jahre): 2 €, Familienkarte: 14 €.
* '''Rheinseilbahn''' - Die spektakuläre 2-Seil-Umlaufbahn zur Burg Ehrenbreitstein wurde zur Bundesgartenschau 2011 errichtet und wird bis 2026{{Zukunft|2026}} fahren. Die 950 m lange Bahn ist mit 7600 Personen/h die leistungsfähigste Seilbahn der Welt. Mit der Seilbahn ist die rechtsrheinische Festung Ehrenbreitstein direkt von der linksrheinischen Rheinpromenade aus erreichbar. Es gab Bedenken, dass sie den Status des Unesco-Weltkulturerbes im Rheintal gefährdet. Ursprünglich sollte sie deshalb 2014 abgebaut werden. <br/> Die Bahn ist im Sommerhalbjahr (April-Oktober ganztags, in den übrigen Monaten an Wochenenden und Feiertagen in Betrieb. Betriebszeiten sind üblicherweise 0930 bis 1830 Uhr. Details auf der [https://www.seilbahn-koblenz.de/ Webseite der Seilbahn Koblenz]. Preise (Stand 2018): Berg- und Talfahrt: Erwachsene 11,- € / Kinder 5,- €, Einzelfahrt: 8 € / 4,50 €, Fahrradmitnahme: 2,50- € (H/R). Die Seilbahn ist barrierefrei (für Kinderwagen und Rollstühle zugänglich).
* Die {{Strong|[https://gilles-personenschifffahrt.de/unsere-faehre/ Rheinfähre]}} {{em|Schlängel}} zwischen Ehrenbreitstein und Koblenz verkehrt von Ostern bis Oktober täglich (außer dienstags) von 9:00 bis 18:30 grundsätzlich nach Bedarf. Sie bietet eine bequeme und regelmäßige Verbindung und wird im Rahmen des Verkehrsverbunds VRM als Fähre eingesetzt.
== Sehenswürdigkeiten ==
=== Altstadt ===
[[File:Koblenz Altstadt 478-h.jpg|thumb|upright|Vier Türme]]
* {{vCard |type=building |name=Vier Türme |wikidata=Q1274808 |description=Erker der barocken Eckhäuser an der Kreuzung Altengraben / Am Plan und Markt-/Löhrstraße.
}}
=== Kirchen ===
[[File:Koblenz Florinskirche 520-h.jpg|thumb|upright|Florinskirche]]
==== In der Altstadt ====
* {{vCard | name = Liebfrauen-Kirche | type = church | wikidata = Q876889
}}
* {{vCard | name = Florinskirche | type = church | wikidata = Q829315
}}
* {{vCard | name = Jesuitenkirche | type = church | wikidata = Q878994
}}
==== Am Deutschen Eck ====
* {{vCard | name = Basilika St. Kastor | type = basilica | wikidata = Q458387 | url = http://www.sankt-kastor-koblenz.de | lat = 50.36220 | long = 7.60452 | description = älteste Kirche in Koblenz
}}
=== Burgen, Schlösser und Paläste === <!--[[Festung Ehrenbreitstein]] ist eine Weiterleitung auf diesen Abschnitt-->
[[File:Festung Ehrenbreitstein Luftbild 080.jpg|miniatur|Wehrhaft: Ehrenbreitstein im Luftbild]]
[[Datei:Ehrenbreitstein mit Festung 2.jpg|mini|Wer nicht mit der Seilbahn fahren möchte, kann den Berg mit der gleichnamigen Festung auch ersteigen]]
* {{vCard | name = Festung Ehrenbreitstein | type = castle | wikidata = Q50712 | description = Die Festung liegt auf einem Felsen über dem rechten Rheinufer und wurde 2010 renoviert. Eine Seilbahn verbindet das Deutsche Eck mit dem Plateau.
}}
* {{vCard | name = Kurfürstliche Stadtburg Koblenz (Alte Burg) | type = castle | wikidata = Q435449 | description = Die Burg von 1185 liegt am Moselufer. Sie beherbergt heute Teile der Stadtbibliothek sowie das Stadtarchiv. Das Treppenhaus ist während der Öffnungszeiten des Stadtarchivs zu besichtigen: Mo–Di, Do–Fr 14:00–17:00.
}}
* {{vCard | name = Kurfürstliches Schloss | type = castle | wikidata = Q461127 | description = Der repräsentative Schlossbau aus der zweiten Hälfte des 18. Jh für den Trierer Erzbischof und Kurfürst Clemens Wenzeslaus von Sachsen ist nach der Zerstörung im Zweiten Weltkrieg komplett wiederaufgebaut worden und beherbergt einige Bundesbehörden. Die Besichtigung ist nur von außen möglich.
}}
* {{vCard | type = castle | name = Schloss Stolzenfels | lat = 50.3031 | long = 7.5921 | wikidata = Q833779 | description = ca. 5 km südlich von Koblenz am Rhein. |directions=Bus-Linie „650 Boppard“ bis zur Haltestelle „Stolzenfels-Schlossweg“
}}
=== Bauwerke ===
* {{vCard|type=bridge|name=Balduinbrücke|lat=50.3632 | long=7.5933|wikidata=Q804831|description=Sie ist die älteste erhaltene Koblenzer Brücke und stammt aus dem 14. Jahrhundert. Allerdings wurden in den 60er Jahren Teile der Brücke abgerissen, um für die Kanalisierung der Mosel Platz für die Schifffahrt zu machen.
}}
=== Denkmäler und Brunnen ===
* {{vCard|type=monument|name=Kaiser-Wilhelm-Denkmal am Deutschen Eck|wikidata=Q115325791|address=|phone=|email=|url=|hours=1. April - 31. Oktober: 8:00–20:00|price=frei |lat=50.3640 | long=7.6055|lastedit=|description=Monumentale Reiterstatue für Kaiser Wilhelm I. Die kostenlos zugängliche Aussichtsplattform auf dem Sockel kann über eine enge Wendeltreppe bestiegen werden. Von hier oben hat man einem attraktiven Blick über das Deutsche Eck sowie über den Rhein zur Festung Ehrenbreitstein.
}}
* Der '''Schängelbrunnen''' am alten Rathaus wurde dem „Maskottchen“ der Stadt Koblenz gewidmet. Das Wort Schängel stammt vom französischen „Jean“ ab und war ursprünglich als Schimpfwort gemeint, wird heute aber als liebevolle Bezeichnung für die Koblenzer Bürger benutzt.
* '''Kaiserin-Augusta-Anlagen''' im südlichen Teil der Rheinanlagen.
=== Museen ===
* {{vCard| name = Rhein-Museum Koblenz |type=museum|wikidata= Q2147480|hours= Di–So 10:00–17:00|price=5,- €, ermäßigt (Studenten, Schüler): 3,- €, Familienkarte: 11,- |directions=Bahnhof Ehrenbreitstein, Rheinfähre, Bus-Linie 9 u. 10 - Haltestelle „Charlottenstraße“. Linie 8 - Haltestelle Bahnhof Ehrenbreitstein, ca. 50 m vom Museum.|description= Kulturhistorisches Museum, auf 1300 Quadratmetern wird das Leben am Rhein gezeigt. Themen sind u. a. Rheinschifffahrt, Rheinromantik, Biologie des Flusses, Rheinlandschaften, Wasserbau und Hochwasser.
}}
* {{vCard | name = Mittelrhein Museum Koblenz | type = museum | wikidata = Q1940336 | url = https://www.mittelrhein-museum.de/ | email = info@mittelrhein-museum.de | phone = +49 (0)261-129 2502 | hours = Di–So 10:00–18:00 | lat = 50.3624 | long = 7.5969 | lastedit = 2020-06-01 | description = im Forum Mittelrhein, Zentralplatz 1, 56068 Koblenz − Gemäldesammlung
}}
* {{vCard |name=Deutsche Bahn Museum Koblenz |wikidata=Q1152064 |type=museum |directions=Bahnhof Koblenz-Lützel + 15 min. Fußweg, Bus 354 Koblenz Hbf – Koblenz-Lützel Haltest. DB Museum |lat= |long= |hours=im Sommer: Sa 10:00–16:00 |description=In einer ehemaligen Lokhalle des BW Koblenz-Lützel sind historische Elektro- und Dampflokomotiven, Reisezugwagen und Salonwagen zu besichtigen. Neben zahlreichen Originalfahrzeugen zeigt das Museum verschiedene Ausstellungen zur Entwicklung der Reisezug- und Salonwagen, der Antriebstechniken bei elektrischen Lokomotiven und der Entwicklung der Zugsicherung. Auch die Fans von Modelleisenbahnen kommen hier auf ihre Kosten: Es gibt Eisenbahnmodelle in drei verschiedenen Größen: von der klassischen H0-Bahn über die Gartenbahn bis zur 5-Zoll-Mitfahreisenbahn. |lastedit=2025-08-10
}}
* {{vCard|type=museum |name=Kunsthalle Koblenz |address=|phone=|email=|url=http://www.kunsthalle-koblenz.de |hours=|price=|lat=50.3595 | long=7.5981|lastedit=|description=
}}
* {{vCard | type = museum | name = Landesmuseum Koblenz | wikidata = Q1502400 | description = auf der Festung Ehrenbreitstein − Technisch-historische Sammlung sowie Ausstellung mit archäologischen Funden aus der langen Kulturgeschichte der Mittelrhein-Region.
}}
* {{vCard | type = museum | name = Ludwig Museum im Deutschherrenhaus | hours = Di. – Sa. von 10:30–17:00, So. u. Feiertags von 11:00–18:00 | price = 5,- €, ermäßigt: 3,- €, Kinder bis 12 J. frei | wikidata = Q18088925 | description = Museum für zeitgenössische Kunst von der Nachkriegszeit bis in die Gegenwart mit dem Schwerpunkt französische Kunst.
}}
* {{vCard | type = museum | name = Museum Schloss Stolzenfels | url = http://www.schloss-stolzenfels.de | lat = 50.3031 | long = 7.5921 | directions = Bus-Linie 650 nach Boppard bis „Stolzenfels-Schlossweg“ | hours = Jan–Nov: Di–So 9:00–17:00 | price = 4,- €, Kinder u. Jugendl.: 2,50 €, Familien: 8,- € | wikidata = Q833779 | show = copy | description = Im 19. Jahrh. aus Ruinen einer Burg des 13. Jahrh. erstandenes Schloss mit zugehörigem Park und Gärten. Es thront über dem Rhein gegenüber [[Lahnstein|Oberlahnstein]] zwischen Rehns und Koblenz.
}}
* {{vCard | name = Mutter-Beethoven-Haus | type = museum | wikidata = Q1955936 | url = https://www.mutter-beethoven-haus.de/ | address = Wambachstraße 204, 56077 Koblenz (Ehrenbreitstein) | phone = +49 (0)261 9730669 | hours = So und feiertags 14:00–18:00 | price = 3 €, ermäßigt 2 € | lastedit = 2020-06-01 | description = Geburtshaus der Maria Magdalena van Beethoven, geb. Kevenich, Mutter von Ludwig van Beethoven, mit Ausstellungen zur Geschichte der Familie und Ehrenbreitsteins
}}
* {{vCard |type=museum |name=Rheinisches Fastnachtsmuseum |wikidata=Q1535025
}}
* {{vCard | name = Wehrtechnische Studiensammlung Koblenz | type = museum | wikidata = Q2205919 | url = https://www.bundeswehr.de/de/organisation/ausruestung-baainbw/organisation/wehrtechnische-studiensammlung | address = Mayener Straße 85-87, 56070 Koblenz | lat = 50.36906 | long = 7.58537 | hours = täglich 9:30-16:30 | price = 3 € | lastedit = 2023-11-07 | description = In der Wehrtechnischen Studiensammlung auf dem Gelände der ehemaligen Langemarck-Kaserne in Koblenz sammelt die Bundeswehr militärtechnisches Gerät aus allen Jahrhunderten der Militärgeschichte, mit einem Fokus auf die jüngere Geschichte des Zweiten Weltkriegs und danach. Die Sammlung steht Zivilisten innerhalb der Öffnungszeiten offen und ist vor allem für militärtechnisch interessierte Personen, die bereits mit der Materie vertraut sind, sehr empfehlenswert; da es sich nicht um ein Museum im engeren Sinne handelt, wird man hier keine Erklärungen o. ä. finden. Es gilt '''Ausweispflicht!''''.
}}
* Hinweis: Das Mittelrheinische Postmuseum wurde geschlossen. Die Ausstellungsstücke wurden an das Postmuseum in Frankfurt am Main „vererbt“.
=== Straßen und Plätze ===
* {{vCard |type=cape |name=Deutsches Eck |wikidata=Q700785 |description=Zusammenfluss von Rhein und Mosel mit Kaiser-Wilhelm-Denkmal und schönem Blick auf die gegenüberliegende Festung Ehrenbreitstein.
}}
* Das „Konrad-Adenauer-Ufer“ ist der nördliche Teil der '''Rheinanlagen'''. Der Blumenhof am Deutschen Eck. Es fand hier und auf der Festung Ehrenbreitstein die Bundesgartenschau 2011 statt.
[[File:Koblenz Münzplatz 488-h.jpg|thumb|Münzplatz: Maatfrau & Schutzmann]]
* {{vCard |type=square |name=Der Plan |description=Zentraler Platz in der Altstadt mit diversen Gastronomie-Angeboten. Ein weiterer beliebter Platz in der Altstadt ist der Jesuitenplatz am Rathaus.
}}
* {{vCard |type=square |name=Görresplatz |description=Mit dem Brunnen und der ca. 10 m hohen Historiensäule in der Mitte des Platzes.
}}
* {{vCard |type=square |name=Münzplatz |wikidata=Q100933505 |description=Erhalten ist heute nur noch das ehemalige Wohnhaus des Münzmeisters, das 1761/63 erbaut wurde.
}}
=== Parks ===
[[File:Koblenz Rheinradweg 599-hh.jpg|thumb|Kaiserin-Augusta-Anlage neben der Rheinlache südlich der Pfaffendorfer Brücke]]
Das linksrheinische Ufer ist vom Deutschen Eck zur Rheinlache in Oberwerth als Grünanlage ausgebaut und wird auch Rheingarten genannt. Zwischen dem Deutschen Eck und der Pfaffendorfer Brücke heißt das Rheinufer „Konrad-Adenauer-Ufer“ und südlich der Brücke ''Kaiserin-Augusta-Anlage''.
<!-- === Verschiedenes ===
* [http://bundesgartenschau.de/buga-iga/bisherige-gartenschauen/buga-koblenz-2011.html Bundesgartenschau Koblenz 2011] · Vom 15. April bis 16. Oktober 2011 fand die Bundesgartenschau in Koblenz statt. -->
== Aktivitäten ==
'''Wandern''' linksrheinisch:
* Der [[Rheinburgenweg]] streift Koblenz nur im Süden, er führt um Koblenz-Karthause zur Mosel, Von der Moselbrücke in Koblenz-Güls geht er dann nach Winningen und kommt erst hinter [[Andernach]] wieder and den Rhein.
* Der Rheinhöhenweg und der Europäische Fernwanderweg 8 führen von der Südbrücke direkt am Rhein bis zum Deutschen Eck, von dort an der Mosel und über die Moselbrücke nach Koblenz-Güls und dann direkt nach [[Andernach]].
* Auf dem Moselsteig. Der Endpunkt liegt am Deutschen Eck.
'''Wandern''' rechtsrheinisch:
* Auf dem [[Rheinsteig]]
=== Regelmäßige Veranstaltungen ===
[[File:Ehrenbreitstein Koblenz Rheinpanorama.jpg|thumb|center|740px|Rheinpanorama Koblenz-Ehrenbreitstein mit der Festung Ehrenbeitstein]]
* {{vCard | name = Altstadtfest Koblenz | type = festival | url = https://www.visit-koblenz.de/de/events/veranstaltungskalender#/veranstaltungen/RPT/2488f015-bdda-427a-bd6e-4377850e7d71/altstadtfest-koblenz | price = Eintritt frei | description =
}}
* {{vCard|type=festival|name= Gauklerfest Koblenz|address= in der Altstadt|phone=|email=|fax=|url=https://www.gauklerfest-koblenz.de/|hours= |price= Tickets|lat=|long=|description= Gaukler- und Kleinkunstfestival
}}
* {{vCard | type = festival | name = Rhein in Flammen | url = https://www.rhein-in-flammen.com | address = zwischen Spay/Braubach und Koblenz | price = Schiffsfahrt ca. 70,- € | wikidata = Q315135 | description = zahlreiche beleuchtete Schiffe sammeln sich vor Spay, ab ca. 21:00 starten die Schiffe in Richtung Koblenz; Ortschaften und Gebäude erstrahlen bei besonderer Beleuchtung; Gebäude werden mit roten Bengalfeuern angeleuchtet; imposante Feuerwerke auf der Strecke, solange sich die Schiffskolonne in deren Nähe befindet; an geeigneten Standorten lassen sich von Land aus die Feuerwerke beobachten, bei guter Tourplanung könnte sogar ein „mitfahren“ mit dem Fahrrad möglich sein (ca. 18 km)
}}
== Einkaufen ==
* {{vCard|name=Löhr-Center |type=mall | wikidata = Q1879707 | description= am Bahnhof Koblenz-Stadtmitte
}}
* Löhr-Straße
* {{vCard|name=Forum Mittelrhein |type=mall |wikidata=Q1439218 | description = auf dem Zentralplatz
}}
== Küche ==
<!--
=== Günstig ===
=== Mittel ===
Lieser‘s, Altstadt
=== Gehoben ===
-->
== Nachtleben ==
Die Altstadt ist dank der vielen Kneipen, Bars und Restaurants recht belebt. In der Altstadt finden sich auch Szene- und Musikkneipen. Überregional bekannt ist der Musik-, Kabarett- und Theaterclub '''[https://www.cafehahn.de/ Café Hahn]''' im Stadteil Güls.
== Unterkunft ==
=== Günstig ===
* {{vCard | name = Jugendherberge Koblenz | type = youth hostel | url = https://www.jugendherberge.de/jugendherbergen/koblenz/ | address = Jugendherberge Festung Ehrenbreitstein, 56077 Koblenz | lat = 50.36427 | long = 7.61345 | phone = +49 (0)261 972870 | email = koblenz@diejugendherbergen.de | hours = ganzjährig (außer Weihnachten) | price = 2024 u. 2025: ab 29,80 €/ÜF, 2026: ab 31,80 €/ÜF | subtype = free wlan, wheelchair, wc, shower | lastedit = 2024-10-21 | description = Die Jugendherberge Festung Ehrenbreitstein gehört wegen ihrer Lage hoch über dem Rhein gegenüber der Moselmündung zu den beliebtesten Jugendherbergen Deutschlands. 2010 renoviert verfügt sie über 157 Betten in Zimmern für 1-, 2-, 4- und Mehrbettbelegung.
}}
* {{vCard | name = KNAUS Campingpark Rhein-Mosel/Koblenz | type = campsite | url = https://www.knauscamp.de/koblenz | address = Schartwiesenweg 6, 56070 Koblenz | lat = 50.37208 | long = 7.60717 | phone = +49 (0)261 82719 | email = koblenz@knauscamp.de | hours = ganzjährig | checkin = ab 12:30 | checkout = bis 12:30 | subtype = free wlan, wheelchair, minigolf, playground, bistro, dogs | lastedit = 2024-10-21 | description = Der Campingplatz liegt verkehrsgünstig an der Moselmündung, gegenüber vom Deutschen Eck. Die Personenfähre „Liesel“ verbindet in den Sommermonaten direkt mit der Innenstadt.
}}
=== Mittel ===
* {{vCard | name = City Partner Hotel Trierer Hof | type = hotel garni | url = https://www.cph-hotels.com/de/cph-hotels/hotel-trierer-hof/ | address = Clemensstraße 1, 56068 Koblenz | lat = 50.35843 | long = 7.59938 | phone = +49 (0)261 1006-0 | fax = +49 (0)261 1006-100 | email = koblenz@citypartnerhotels.com | facebook = 173011109384857 | hours = Täglich, außer vom 22.12.2024 bis einschließlich 02.01.2025 | price = ab 89,00 €/Ü | subtype = 3, parking, wlan, lift, ac | lastedit = 2024-04-06 | description = Hotel mit 34 Zimmern, verteilt auf 3 Ebenen.
}}
=== Gehoben ===
* {{vCard|name=Urlaubs-, Sport- und Aktivhotel Zugbrücke |wikidata=|type=hotel |address=Brexbachstraße 11 – 17, 56203 Höhr-Grenzhausen |phone=+49 02624 1050 |email=info@zugbruecke.de |url=https://www.zugbruecke.de |hours=|price=|lat=50.45181 |long=7.66169 |lastedit=2026-03-08 |description=Etwa 15 km von Koblenz entfernt in Grenzau. Schnell und einfach über die Autobahn zu erreichen.}}
== Lernen ==
* {{vCard| name = Universität Koblenz |type=university|wikidata= Q448590}}
* {{vCard| name = Hochschule Koblenz |type=university|wikidata= Q1622117}}
== Sicherheit ==
Die Koblenzer Stadtteile Neuendorf und Lützel, eine wenig einnehmende Wohngegend direkt nördlich des Deutschen Eck auf der gegenüberliegenden Eifel-Seite, sind für Touristen uninteressant.
Bei Rhein- und/oder Moselhochwasser stehen häufig Gebiete am Rhein- und Moselufer sowie Teile der Altstadt und von Neuendorf unter Wasser. Die Häuser sind dann über Stege oder mit Booten erreichbar.
== Gesundheit ==
Informationen zu diversen Gesundheits-Notdiensten listet die Stadt Koblenz auf ihrer [https://www.koblenz.de/leben-in-koblenz/gesundheit/notdienste/ Website] auf.
* {{vCard | name = Krankenhaus Kemperhof Koblenz | type = hospital | wikidata = Q1774624 | url = https://www.gk.de/krankenhaeuser/kemperhof-koblenz/ueberblick | address = Koblenzer Straße 115-155 56073 Koblenz | phone = +49 0261 499-0 | email = info@gk.de | subtype = emergency, hospital | lastedit = 2026-04-04 | description = Größtes Krankenhaus in Koblenz, Maximalversorgungszentrum der Region.
}}
== Praktische Hinweise ==
== Ausflüge ==
* '''Oberes Mittelrheintal''':
** [https://www.schloss-stolzenfels.de/ Schloss Stolzenfels] − Auf dem Anwesen der 1689 niedergebrannten Festungsanlage baute der Architekt Karl Friedrich Schinkel für den preußischen König Friedrich Wilhelm IV das Schloss Stolzenfels. · Geöffnet Jan. - Febr.: nur Sa/So 9 - 17 Uhr, März: 9 - 17 Uhr, April - Sept.: 9 - 18 h, Okt. - Nov.: 9 - 17 h, Dez. geschlossen. Eintritt: 4,- €, Kinder u. Jugendliche: 2,- €, Familien: 8,- €.
** [[Boppard]]
** [[Lahnstein]]
** [[Braubach]] mit der Marksburg
* '''Unteres Mittelrheintal:''' [[Andernach]], [[Neuwied]]
* '''[[Moseltal]]'''
* '''[[Lahntal]]''': [[Bad Ems]], [[Nassau (Lahn)|Nassau]]
* '''im [[Hunsrück]]: Rundtour & Wanderung zur Ehrbachklamm''' - attraktive Rundtour zu Fuß (17 km mit rund 5 Std. Gehzeit), per Bus, Bahn und evtl. Schiff. Weitere Infos [[Boppard#Rundtour & Wanderung zur Ehrbachklamm|siehe Artikel Boppard]].
== Literatur ==
== Weblinks ==
* {{Offizielle Webseite}}
* [http://koblenz.magazin-next.de/ Stadtportal & Webmagazin über Koblenz und die Region]
=== Webcams ===
* [https://www.bafg.de/php/deutsches-eck-gross.jpg Blick auf das Deutsche Eck von der Festung Ehrenbreitstein]
* [http://rz-home.de/~spkko/spk-koblenz/webcam/bild1/index.html Blick über die Altstadt] - Webcam der Sparkasse Koblenz
{{GeoData| lat= 50.35| long= 7.6| radius= }}
{{IstInKat|Region Koblenz||Mittelrheintal}}
{{class-3}}
bnconra1djs5a2umbw69hx52fbdk1xf
Lincolnshire
0
8826
1769037
1678852
2026-04-16T18:22:53Z
Qualitätssicherung
50648
+ Absatz: Woodhall Spa
1769037
wikitext
text/x-wiki
=== Woodhall Spa ===
[[File:Kinema in the Woods - geograph.org.uk - 5746118.jpg|thumb|Kinema in the Woods]]
{{marker|type=town|name=Woodhall Spa|url=|lat=|long=|name-local=y|name-map=|wikidata=Q983619}} ist ein beschauliches Örtchen, das seine beste Zeit in den Zwischenkriegsjahren hatte. Aus dem knapp dreißig Kilometer entfernten Lincoln zuckelt Buslinie B5 (Lincoln – Boston Bhf.) in fahrplanmäßig 57 Minuten.
Weltweit einzigartig ist die Mineralquelle. Sie wurde 1821 beim Abteufen eines Schachtes auf der Suche nach Steinkohle in 159 m Tiefe gefunden. Das Wasser der Quelle hat mit Mit gut 5 mg/l einen sechsmal höheren Gehalt an Jod und Brom als jedes andere bekannte Mineralwasser. Von 1855–1971 gab es eine Bahnanbindung. Die victorianischen Kuranlagen wurden noch genutzt, bis 1983 der Brunnenschacht und Teile des Brunnengebäudes einstürzten.<br>
Die jährliche ''Country Show'' findet an einem Sonntag Mitte Mai statt. Man kann Traktoren, Kartoffelsortern und Rindviecher beäugen. Sportliche Besucher können den Rest des Jahres zwischen dem Golfplatz und [[w:Bowls|Lanwn Bowls]] wählen.
;Unterkunft
* {{vCard|type=hotel|name=Inn at Woodhall Spa|name-local=|address=The Broadway, Woodhall Spa LN10 6ST|directions=Bushaltestelle des Ortes an der Kreuzung davor, zugleich Geschäftsviertel|phone=+441526353231|url=|hours=|price=geh. Mittelklasse|lat=53.15190306654303|long=-0.21419512435954716|lastedit=2026-04-16|description=|show=nosocialmedia}}
* {{vCard|type=hotel|name=Spinney on the Green|name-local=|address=9 Horncastle Rd, Woodhall Spa LN10 6UY|directions=|phone=|url=|hours=|price=|lat=53.1557074716831|long=-0.1988174076332674|lastedit=2026-04-16|description=Ferienwohnungen.|show=nosocialmedia}}
* {{vCard|type=campsite|name=Jubilee Park Caravan & Camping Site|name-local=|address=|directions=|phone=|url=|hours=Ende März bis Oktober|price=|lat=53.155575763296774|long=-0.22301397066408363|lastedit=2026-04-16|description=Im Sommer mit öffentlich zugänglichem Freibad (33 m; ab April, beheizt auf 29 °C). Eigene Abteilung “Petwood” für Gäste mit Hunden. Jenes Hotel war im Krieg als Kaserne für Luftwaffenoffiziere gebaut worden.|show=nosocialmedia}}
* {{vCard|type=hotel|name=Bainland Lodge Retreats|name-local=|address=Horncastle Rd.|directions=neben der Tankstelle|phone=+441526352903|url=|hours=|price=Mindestaufenthalt 3 oder 4 Nächte, je nach Qualität pro Hütte (2-4 Pers.) £ 600–1800 in der NS|lat=53.159977802755755|long=-0.18558870804377522|lastedit=2026-04-16|description=Unterkunft in gepflegten Holzhütten bzw. “Glamping”.|show=nosocialmedia}}
;Sehenwürdigkeiten
Das 1922 eröffnete {{marker|type=cinema|name=Kinema in the Woods|name-local=Coronation St.|name-map=|url=|lat=53.15565923835574|long=-0.21396213116824114}} ist das einzige in Großbritannien noch betriebene Kino mit [[w:Rückprojektion|Rückprojektion]] auf eine durchscheinende Leinwand. Auch eine Kinoorgel der Firma Compton ist dort noch in Gebrauch. Das zugehörige Teehaus öffnet im Sommer.
Das {{marker|type=museum|name=Cottage Museum|url=https://www.cottagemuseum.co.uk/ |lat=|long=|name-local=y|name-map=|wikidata=Q983619}} öffnet Di.-Sa. 10.30–16 Uhr.
kxgnb3rbkam6nwljdbcl179pzm9k1ms
1769038
1769037
2026-04-16T18:25:30Z
Qualitätssicherung
50648
+ Absatz: Woodhall Spa
1769038
wikitext
text/x-wiki
{{Quickbar Region}}
{{UK-ENG-em-imgmap|ENG-em-lincolns.png|Lincolshire|250px}}
'''Lincolnshire''' ist eine [[England|englische]] Grafschaft in den East Midlands. Die flache bis sanft hügelige Region mit fruchtbaren Böden ist überwiegend agrarisch geprägt. Lincolnshire hat im Osten eine lange Küste an der Nordsee und grenzt im Übrigen im Süden an [[Norfolk]] und [[Cambridgeshire]], im Südwesten an [[Rutland]], im Westen an [[Leicestershire]] und [[Nottinghamshire]] und im Norden an [[East Yorkshire]].
== Regionen ==
[[Image:Lincoln-BrayfordPool.jpg|350px|thumb|Lincoln]]
Die Grafschaft umfasst folgende Distrikte:
* Boston
* East Lindsey
* Lincoln
* South Holland
* South Kesteven
* North Kesteven
* West Lindsey.
Die selbständigen Distrikte '''North Lincolnshire''' und '''North East Lincolnshire''', gehören nur aus zeremoniellen Gründen zur Grafschaft, gehören aber zur Region [[Yorkshire and the Humber]].
== Orte ==
{{Mapframe|53.1919|-0.2396|zoom=8|height=400|width=300|type=geoline}}
*{{marker|type=city|name=[[Lincoln (Lincolnshire)|Lincoln]]|lat=53.23272|long=-0.537661|wikidata=Q180057}} (101.000 Einwohner) – Grösste Stadt und Hauptstadt der Grafschaft. Dominiert von der Burg und Kathedrale, die auf einer Anhöhe Stadt und Region überragen
*{{marker|type=city|name=[[Alford (Lincolnshire)|Alford]]|lat=53.26|long=0.18|wikidata=Q1876378}} (4.000 Einwohner) – Hauptort der ''Lincolnshire Wolds''
*{{marker|type=city|name=[[Barton-upon-Humber]]|lat=53.6833|long=-0.45|wikidata=Q809550}} (11.000 Einwohner) – am südlichen Brückenkopf der Humber-Bridge
*{{marker|type=city|name=[[Boston (England)|Boston]]|lat=52.974|long=-0.0214|wikidata=Q311975}} (41.000 Einwohner) – mit markantem Kirchturm, den man (fast) bis in die wesentlich größere Auswanderersiedlung in den USA sehen kann
*{{marker|type=city|name=[[Bourne (Lincolnshire)|Bourne]]|lat=52.7684|long=-0.3775|wikidata=Q2223229}} (16.000 Einwohner) – agrarisch geprägtes Landstädtchen
*{{marker|type=city|name=[[Cleethorpes]]|lat=53.5533|long=-0.02155|wikidata=Q587765}} (40.000 Einwohner) – Seebad am Humber und regenärmster Ort auf der Insel
*{{marker|type=city|name=[[Gainsborough]]|lat=53.4016|long=-0.7732|wikidata=Q288082}} (21.000 Einwohner) – Hafen(!)städtchen 50 km von der Nordsee am River Trent, der bis hierher Gezeiten erleben kann
*{{marker|type=city|name=[[Grantham]]|lat=52.918|long=-0.638|wikidata=Q846683}} (42.000 Einwohner) – Marktstädtchen, das Sir Isaac Newton ("Ich kann den Lauf der Sterne berechnen, aber nicht die Dummheit der Menschen") und Margaret Thatcher hervorbrachte
*{{marker|type=city|name=[[Grimsby]]|lat=53.5595|long=-0.068|wikidata=Q179406}} (88.000 Einwohner) – Hafen- und Fischereistadt
*{{marker|type=city|name=[[Louth]]|url=|lat=53.3669|long=-0.0061|wikidata=Q1554129}} (16.000 Einwohner) – Kleinstadt mit Viehmarkt
*{{marker|type=city|name=[[Mablethorpe]]|lat=53.3409|long=0.261|wikidata=Q1882406}} (13.000 Einwohner) – Seebad
*{{marker|type=city|name=Market Rasen|lat=53.38713|long=-0.3355|show=nositelinks}} (4.000 Einwohner) – Marktflecken
*{{marker|type=city|name=Scunthorpe|lat=53.5809|long=-0.6502|wikidata=Q913386|show=nositelinks}} (82.000 Einwohner) – Industriestadt mit Schwerindustrie
*{{marker|type=city|name=Skegness|lat=53.14|long=0.34|wikidata=Q977991|show=nositelinks}} (25.000 Einwohner) – traditionsreiches Seebad
*{{marker|type=city|name=Sleaford|lat=52.996|long=-0.413|wikidata=Q1891939|show=nositelinks}} (18.000 Einwohner) – Marktflecken und Opfer der feudalen Grundbesitzverhältnisse, der Ort konnte sich erst entwickeln, als ein überschuldeter Lord verkaufen musste
*{{marker|type=city|name=Spalding|lat=52.7858|long=-0.1529|wikidata=Q1185203|show=nositelinks}} (32.000 Einwohner) – Marktflecken und örtlicher Verkehrsknoten, mit dem Schlossmuseum Ayscoughfee Hall
*{{marker|type=city|name=Spilsby|lat=53.1727|long=0.0931|wikidata=Q745175|show=nositelinks}} (3.000 Einwohner) – Marktflecken am Rand des Naturpark ''Lincolnshire Wolds''
*{{marker|type=city|name=Stamford|lat=52.656|long=-0.484|wikidata=Q1000662|show=nositelinks}} (21.000 Einwohner) – nach Ansicht einiger Reisender des 18. Jahrhunderts die schönste Stadt zwischen London und Edinburgh. Seither hat sich nicht viel verändert. Das ist ein englisches Landstädtchen aus dem Bilderbuch.
== Weitere Ziele ==
*{{marker|type=nature reserve|name=Lincolnshire Wolds|lat=53.35|long=-0.1}}, Area of outstanding beauty, flachwellige Karstlandschaft
=== Woodhall Spa ===
[[File:Kinema in the Woods - geograph.org.uk - 5746118.jpg|thumb|Kinema in the Woods]]
{{marker|type=town|name=Woodhall Spa|url=|lat=|long=|name-local=y|name-map=|wikidata=Q983619}} ist ein beschauliches Örtchen, das seine beste Zeit in den Zwischenkriegsjahren hatte. Aus dem knapp dreißig Kilometer entfernten Lincoln zuckelt Buslinie B5 (Lincoln – Boston Bhf.) in fahrplanmäßig 57 Minuten.
Weltweit einzigartig ist die Mineralquelle. Sie wurde 1821 beim Abteufen eines Schachtes auf der Suche nach Steinkohle in 159 m Tiefe gefunden. Das Wasser der Quelle hat mit Mit gut 5 mg/l einen sechsmal höheren Gehalt an Jod und Brom als jedes andere bekannte Mineralwasser. Von 1855–1971 gab es eine Bahnanbindung. Die victorianischen Kuranlagen wurden noch genutzt, bis 1983 der Brunnenschacht und Teile des Brunnengebäudes einstürzten.<br>
Die jährliche ''Country Show'' findet an einem Sonntag Mitte Mai statt. Man kann Traktoren, Kartoffelsortern und Rindviecher beäugen. Sportliche Besucher können den Rest des Jahres zwischen dem Golfplatz und [[w:Bowls|Lanwn Bowls]] wählen.
;Unterkunft
* {{vCard|type=hotel|name=Inn at Woodhall Spa|name-local=|address=The Broadway, Woodhall Spa LN10 6ST|directions=Bushaltestelle des Ortes an der Kreuzung davor, zugleich Geschäftsviertel|phone=+441526353231|url=|hours=|price=geh. Mittelklasse|lat=53.15190306654303|long=-0.21419512435954716|lastedit=2026-04-16|description=|show=nosocialmedia}}
* {{vCard|type=hotel|name=Spinney on the Green|name-local=|address=9 Horncastle Rd, Woodhall Spa LN10 6UY|directions=|phone=|url=|hours=|price=|lat=53.1557074716831|long=-0.1988174076332674|lastedit=2026-04-16|description=Ferienwohnungen.|show=nosocialmedia}}
* {{vCard|type=campsite|name=Jubilee Park Caravan & Camping Site|name-local=|address=|directions=|phone=|url=|hours=Ende März bis Oktober|price=|lat=53.155575763296774|long=-0.22301397066408363|lastedit=2026-04-16|description=Im Sommer mit öffentlich zugänglichem Freibad (33 m; ab April, beheizt auf 29 °C). Eigene Abteilung “Petwood” für Gäste mit Hunden. Jenes Hotel war im Krieg als Kaserne für Luftwaffenoffiziere gebaut worden.|show=nosocialmedia}}
* {{vCard|type=hotel|name=Bainland Lodge Retreats|name-local=|address=Horncastle Rd.|directions=neben der Tankstelle|phone=+441526352903|url=|hours=|price=Mindestaufenthalt 3 oder 4 Nächte, je nach Qualität pro Hütte (2-4 Pers.) £ 600–1800 in der NS|lat=53.159977802755755|long=-0.18558870804377522|lastedit=2026-04-16|description=Unterkunft in gepflegten Holzhütten bzw. “Glamping”.|show=nosocialmedia}}
;Sehenwürdigkeiten
Das 1922 eröffnete {{marker|type=cinema|name=Kinema in the Woods|name-local=Coronation St.|name-map=|url=|lat=53.15565923835574|long=-0.21396213116824114}} ist das einzige in Großbritannien noch betriebene Kino mit [[w:Rückprojektion|Rückprojektion]] auf eine durchscheinende Leinwand. Auch eine Kinoorgel der Firma Compton ist dort noch in Gebrauch. Das zugehörige Teehaus öffnet im Sommer.
Das {{marker|type=museum|name=Cottage Museum|url=https://www.cottagemuseum.co.uk/ |lat=|long=|name-local=y|name-map=|wikidata=Q983619}} öffnet Di.-Sa. 10.30–16 Uhr.
<!--
== Hintergrund ==
== Sprache ==
== Anreise ==
== Mobilität ==
== Sehenswürdigkeiten ==
== Aktivitäten ==
== Küche ==
== Nachtleben ==
== Sicherheit ==
== Klima ==
== Literatur ==
-->
== Weblinks ==
* {{Offizielle_Webseite}}
{{stub}}
{{GeoData| lat= 53.06667| long= -0.18333| radius= 20000}}
{{IstInKat|East Midlands}}
c83kfdxytd280p8l9rdrfouvuv30f65
1769040
1769038
2026-04-16T18:38:02Z
Qualitätssicherung
50648
/* Woodhall Spa */
1769040
wikitext
text/x-wiki
{{Quickbar Region}}
{{UK-ENG-em-imgmap|ENG-em-lincolns.png|Lincolshire|250px}}
'''Lincolnshire''' ist eine [[England|englische]] Grafschaft in den East Midlands. Die flache bis sanft hügelige Region mit fruchtbaren Böden ist überwiegend agrarisch geprägt. Lincolnshire hat im Osten eine lange Küste an der Nordsee und grenzt im Übrigen im Süden an [[Norfolk]] und [[Cambridgeshire]], im Südwesten an [[Rutland]], im Westen an [[Leicestershire]] und [[Nottinghamshire]] und im Norden an [[East Yorkshire]].
== Regionen ==
[[Image:Lincoln-BrayfordPool.jpg|350px|thumb|Lincoln]]
Die Grafschaft umfasst folgende Distrikte:
* Boston
* East Lindsey
* Lincoln
* South Holland
* South Kesteven
* North Kesteven
* West Lindsey.
Die selbständigen Distrikte '''North Lincolnshire''' und '''North East Lincolnshire''', gehören nur aus zeremoniellen Gründen zur Grafschaft, gehören aber zur Region [[Yorkshire and the Humber]].
== Orte ==
{{Mapframe|53.1919|-0.2396|zoom=8|height=400|width=300|type=geoline}}
*{{marker|type=city|name=[[Lincoln (Lincolnshire)|Lincoln]]|lat=53.23272|long=-0.537661|wikidata=Q180057}} (101.000 Einwohner) – Grösste Stadt und Hauptstadt der Grafschaft. Dominiert von der Burg und Kathedrale, die auf einer Anhöhe Stadt und Region überragen
*{{marker|type=city|name=[[Alford (Lincolnshire)|Alford]]|lat=53.26|long=0.18|wikidata=Q1876378}} (4.000 Einwohner) – Hauptort der ''Lincolnshire Wolds''
*{{marker|type=city|name=[[Barton-upon-Humber]]|lat=53.6833|long=-0.45|wikidata=Q809550}} (11.000 Einwohner) – am südlichen Brückenkopf der Humber-Bridge
*{{marker|type=city|name=[[Boston (England)|Boston]]|lat=52.974|long=-0.0214|wikidata=Q311975}} (41.000 Einwohner) – mit markantem Kirchturm, den man (fast) bis in die wesentlich größere Auswanderersiedlung in den USA sehen kann
*{{marker|type=city|name=[[Bourne (Lincolnshire)|Bourne]]|lat=52.7684|long=-0.3775|wikidata=Q2223229}} (16.000 Einwohner) – agrarisch geprägtes Landstädtchen
*{{marker|type=city|name=[[Cleethorpes]]|lat=53.5533|long=-0.02155|wikidata=Q587765}} (40.000 Einwohner) – Seebad am Humber und regenärmster Ort auf der Insel
*{{marker|type=city|name=[[Gainsborough]]|lat=53.4016|long=-0.7732|wikidata=Q288082}} (21.000 Einwohner) – Hafen(!)städtchen 50 km von der Nordsee am River Trent, der bis hierher Gezeiten erleben kann
*{{marker|type=city|name=[[Grantham]]|lat=52.918|long=-0.638|wikidata=Q846683}} (42.000 Einwohner) – Marktstädtchen, das Sir Isaac Newton ("Ich kann den Lauf der Sterne berechnen, aber nicht die Dummheit der Menschen") und Margaret Thatcher hervorbrachte
*{{marker|type=city|name=[[Grimsby]]|lat=53.5595|long=-0.068|wikidata=Q179406}} (88.000 Einwohner) – Hafen- und Fischereistadt
*{{marker|type=city|name=[[Louth]]|url=|lat=53.3669|long=-0.0061|wikidata=Q1554129}} (16.000 Einwohner) – Kleinstadt mit Viehmarkt
*{{marker|type=city|name=[[Mablethorpe]]|lat=53.3409|long=0.261|wikidata=Q1882406}} (13.000 Einwohner) – Seebad
*{{marker|type=city|name=Market Rasen|lat=53.38713|long=-0.3355|show=nositelinks}} (4.000 Einwohner) – Marktflecken
*{{marker|type=city|name=Scunthorpe|lat=53.5809|long=-0.6502|wikidata=Q913386|show=nositelinks}} (82.000 Einwohner) – Industriestadt mit Schwerindustrie
*{{marker|type=city|name=Skegness|lat=53.14|long=0.34|wikidata=Q977991|show=nositelinks}} (25.000 Einwohner) – traditionsreiches Seebad
*{{marker|type=city|name=Sleaford|lat=52.996|long=-0.413|wikidata=Q1891939|show=nositelinks}} (18.000 Einwohner) – Marktflecken und Opfer der feudalen Grundbesitzverhältnisse, der Ort konnte sich erst entwickeln, als ein überschuldeter Lord verkaufen musste
*{{marker|type=city|name=Spalding|lat=52.7858|long=-0.1529|wikidata=Q1185203|show=nositelinks}} (32.000 Einwohner) – Marktflecken und örtlicher Verkehrsknoten, mit dem Schlossmuseum Ayscoughfee Hall
*{{marker|type=city|name=Spilsby|lat=53.1727|long=0.0931|wikidata=Q745175|show=nositelinks}} (3.000 Einwohner) – Marktflecken am Rand des Naturpark ''Lincolnshire Wolds''
*{{marker|type=city|name=Stamford|lat=52.656|long=-0.484|wikidata=Q1000662|show=nositelinks}} (21.000 Einwohner) – nach Ansicht einiger Reisender des 18. Jahrhunderts die schönste Stadt zwischen London und Edinburgh. Seither hat sich nicht viel verändert. Das ist ein englisches Landstädtchen aus dem Bilderbuch.
== Weitere Ziele ==
*{{marker|type=nature reserve|name=Lincolnshire Wolds|lat=53.35|long=-0.1}}, Area of outstanding beauty, flachwellige Karstlandschaft
=== Woodhall Spa ===
[[File:Kinema in the Woods - geograph.org.uk - 5746118.jpg|thumb|Kinema in the Woods]]
{{marker|type=town|name=Woodhall Spa|url=|lat=|long=|name-local=y|name-map=|wikidata=Q983619}} ist ein beschauliches Örtchen, das seine beste Zeit in den Zwischenkriegsjahren hatte. Aus dem knapp dreißig Kilometer entfernten Lincoln zuckelt Buslinie B5 (Lincoln – Boston Bhf.) in fahrplanmäßig 57 Minuten.
Weltweit einzigartig ist die Mineralquelle. Sie wurde 1821 beim Abteufen eines Schachtes auf der Suche nach Steinkohle in 159 m Tiefe gefunden. Das Wasser der Quelle hat mit Mit gut 5 mg/l einen sechsmal höheren Gehalt an Jod und Brom als jedes andere bekannte Mineralwasser. Von 1855–1971 gab es eine Bahnanbindung. Die victorianischen Kuranlagen wurden noch genutzt, bis 1983 der Brunnenschacht und Teile des Brunnengebäudes einstürzten.<br>
Die jährliche ''Country Show'' findet an einem Sonntag Mitte Mai statt. Man kann Traktoren, Kartoffelsortern und Rindviecher beäugen. Sportliche Besucher können den Rest des Jahres zwischen dem Golfplatz und [[w:Bowls|Lawn Bowls]] wählen.
;Unterkunft
* {{vCard|type=hotel|name=Inn at Woodhall Spa|name-local=|address=The Broadway, Woodhall Spa LN10 6ST|directions=Bushaltestelle des Ortes an der Kreuzung davor, zugleich Geschäftsviertel|phone=+441526353231|url=|hours=|price=geh. Mittelklasse|lat=53.15190306654303|long=-0.21419512435954716|lastedit=2026-04-16|description=|show=nosocialmedia}}
* {{vCard|type=hotel|name=Spinney on the Green|name-local=|address=9 Horncastle Rd, Woodhall Spa LN10 6UY|directions=|phone=|url=|hours=|price=|lat=53.1557074716831|long=-0.1988174076332674|lastedit=2026-04-16|description=Ferienwohnungen.|show=nosocialmedia}}
* {{vCard|type=campsite|name=Jubilee Park Caravan & Camping Site|name-local=|address=|directions=|phone=|url=|hours=Ende März bis Oktober|price=|lat=53.155575763296774|long=-0.22301397066408363|lastedit=2026-04-16|description=Im Sommer mit öffentlich zugänglichem Freibad (33 m; ab April, beheizt auf 29 °C). Eigene Abteilung “Petwood” für Gäste mit Hunden. Jenes Hotel war im Krieg als Kaserne für Luftwaffenoffiziere gebaut worden.|show=nosocialmedia}}
* {{vCard|type=hotel|name=Bainland Lodge Retreats|name-local=|address=Horncastle Rd.|directions=neben der Tankstelle|phone=+441526352903|url=|hours=|price=Mindestaufenthalt 3 oder 4 Nächte, je nach Qualität pro Hütte (2-4 Pers.) £ 600–1800 in der NS|lat=53.159977802755755|long=-0.18558870804377522|lastedit=2026-04-16|description=Unterkunft in gepflegten Holzhütten bzw. “Glamping”.|show=nosocialmedia}}
;Sehenwürdigkeiten
Das 1922 eröffnete {{marker|type=cinema|name=Kinema in the Woods|name-local=Coronation St.|name-map=|url=|lat=53.15565923835574|long=-0.21396213116824114}} ist das einzige in Großbritannien noch betriebene Kino mit [[w:Rückprojektion|Rückprojektion]] auf eine durchscheinende Leinwand. Auch eine Kinoorgel der Firma Compton ist dort noch in Gebrauch. Das zugehörige Teehaus öffnet im Sommer.
Das {{marker|type=museum|name=Cottage Museum|url=https://www.cottagemuseum.co.uk/ |lat=|long=|name-local=y|name-map=|wikidata=Q983619}} öffnet Di.-Sa. 10.30–16 Uhr.
<!--
== Hintergrund ==
== Sprache ==
== Anreise ==
== Mobilität ==
== Sehenswürdigkeiten ==
== Aktivitäten ==
== Küche ==
== Nachtleben ==
== Sicherheit ==
== Klima ==
== Literatur ==
-->
== Weblinks ==
* {{Offizielle_Webseite}}
{{stub}}
{{GeoData| lat= 53.06667| long= -0.18333| radius= 20000}}
{{IstInKat|East Midlands}}
a80xj0ne1erk8b73piqcrahol1e1i6y
1769136
1769040
2026-04-17T05:01:01Z
RolandUnger
3
/* Weitere Ziele */ Einheit und schmales Leerzeichen; +show = copy
1769136
wikitext
text/x-wiki
{{Quickbar Region}}
{{UK-ENG-em-imgmap|ENG-em-lincolns.png|Lincolshire|250px}}
'''Lincolnshire''' ist eine [[England|englische]] Grafschaft in den East Midlands. Die flache bis sanft hügelige Region mit fruchtbaren Böden ist überwiegend agrarisch geprägt. Lincolnshire hat im Osten eine lange Küste an der Nordsee und grenzt im Übrigen im Süden an [[Norfolk]] und [[Cambridgeshire]], im Südwesten an [[Rutland]], im Westen an [[Leicestershire]] und [[Nottinghamshire]] und im Norden an [[East Yorkshire]].
== Regionen ==
[[Image:Lincoln-BrayfordPool.jpg|350px|thumb|Lincoln]]
Die Grafschaft umfasst folgende Distrikte:
* Boston
* East Lindsey
* Lincoln
* South Holland
* South Kesteven
* North Kesteven
* West Lindsey.
Die selbständigen Distrikte '''North Lincolnshire''' und '''North East Lincolnshire''', gehören nur aus zeremoniellen Gründen zur Grafschaft, gehören aber zur Region [[Yorkshire and the Humber]].
== Orte ==
{{Mapframe|53.1919|-0.2396|zoom=8|height=400|width=300|type=geoline}}
*{{marker|type=city|name=[[Lincoln (Lincolnshire)|Lincoln]]|lat=53.23272|long=-0.537661|wikidata=Q180057}} (101.000 Einwohner) – Grösste Stadt und Hauptstadt der Grafschaft. Dominiert von der Burg und Kathedrale, die auf einer Anhöhe Stadt und Region überragen
*{{marker|type=city|name=[[Alford (Lincolnshire)|Alford]]|lat=53.26|long=0.18|wikidata=Q1876378}} (4.000 Einwohner) – Hauptort der ''Lincolnshire Wolds''
*{{marker|type=city|name=[[Barton-upon-Humber]]|lat=53.6833|long=-0.45|wikidata=Q809550}} (11.000 Einwohner) – am südlichen Brückenkopf der Humber-Bridge
*{{marker|type=city|name=[[Boston (England)|Boston]]|lat=52.974|long=-0.0214|wikidata=Q311975}} (41.000 Einwohner) – mit markantem Kirchturm, den man (fast) bis in die wesentlich größere Auswanderersiedlung in den USA sehen kann
*{{marker|type=city|name=[[Bourne (Lincolnshire)|Bourne]]|lat=52.7684|long=-0.3775|wikidata=Q2223229}} (16.000 Einwohner) – agrarisch geprägtes Landstädtchen
*{{marker|type=city|name=[[Cleethorpes]]|lat=53.5533|long=-0.02155|wikidata=Q587765}} (40.000 Einwohner) – Seebad am Humber und regenärmster Ort auf der Insel
*{{marker|type=city|name=[[Gainsborough]]|lat=53.4016|long=-0.7732|wikidata=Q288082}} (21.000 Einwohner) – Hafen(!)städtchen 50 km von der Nordsee am River Trent, der bis hierher Gezeiten erleben kann
*{{marker|type=city|name=[[Grantham]]|lat=52.918|long=-0.638|wikidata=Q846683}} (42.000 Einwohner) – Marktstädtchen, das Sir Isaac Newton ("Ich kann den Lauf der Sterne berechnen, aber nicht die Dummheit der Menschen") und Margaret Thatcher hervorbrachte
*{{marker|type=city|name=[[Grimsby]]|lat=53.5595|long=-0.068|wikidata=Q179406}} (88.000 Einwohner) – Hafen- und Fischereistadt
*{{marker|type=city|name=[[Louth]]|url=|lat=53.3669|long=-0.0061|wikidata=Q1554129}} (16.000 Einwohner) – Kleinstadt mit Viehmarkt
*{{marker|type=city|name=[[Mablethorpe]]|lat=53.3409|long=0.261|wikidata=Q1882406}} (13.000 Einwohner) – Seebad
*{{marker|type=city|name=Market Rasen|lat=53.38713|long=-0.3355|show=nositelinks}} (4.000 Einwohner) – Marktflecken
*{{marker|type=city|name=Scunthorpe|lat=53.5809|long=-0.6502|wikidata=Q913386|show=nositelinks}} (82.000 Einwohner) – Industriestadt mit Schwerindustrie
*{{marker|type=city|name=Skegness|lat=53.14|long=0.34|wikidata=Q977991|show=nositelinks}} (25.000 Einwohner) – traditionsreiches Seebad
*{{marker|type=city|name=Sleaford|lat=52.996|long=-0.413|wikidata=Q1891939|show=nositelinks}} (18.000 Einwohner) – Marktflecken und Opfer der feudalen Grundbesitzverhältnisse, der Ort konnte sich erst entwickeln, als ein überschuldeter Lord verkaufen musste
*{{marker|type=city|name=Spalding|lat=52.7858|long=-0.1529|wikidata=Q1185203|show=nositelinks}} (32.000 Einwohner) – Marktflecken und örtlicher Verkehrsknoten, mit dem Schlossmuseum Ayscoughfee Hall
*{{marker|type=city|name=Spilsby|lat=53.1727|long=0.0931|wikidata=Q745175|show=nositelinks}} (3.000 Einwohner) – Marktflecken am Rand des Naturpark ''Lincolnshire Wolds''
*{{marker|type=city|name=Stamford|lat=52.656|long=-0.484|wikidata=Q1000662|show=nositelinks}} (21.000 Einwohner) – nach Ansicht einiger Reisender des 18. Jahrhunderts die schönste Stadt zwischen London und Edinburgh. Seither hat sich nicht viel verändert. Das ist ein englisches Landstädtchen aus dem Bilderbuch.
== Weitere Ziele ==
*{{marker|type=nature reserve|name=Lincolnshire Wolds|lat=53.35|long=-0.1}}, Area of outstanding beauty, flachwellige Karstlandschaft
=== Woodhall Spa ===
[[File:Kinema in the Woods - geograph.org.uk - 5746118.jpg|thumb|Kinema in the Woods]]
{{marker|type=town|name=Woodhall Spa|url=|lat=|long=|name-local=y|name-map=|wikidata=Q983619}} ist ein beschauliches Örtchen, das seine beste Zeit in den Zwischenkriegsjahren hatte. Aus dem knapp dreißig Kilometer entfernten Lincoln zuckelt Buslinie B5 (Lincoln – Boston Bhf.) in fahrplanmäßig 57 Minuten.
Weltweit einzigartig ist die Mineralquelle. Sie wurde 1821 beim Abteufen eines Schachtes auf der Suche nach Steinkohle in 159{{nnbsp}}m Tiefe gefunden. Das Wasser der Quelle hat mit Mit gut 5 mg/l einen sechsmal höheren Gehalt an Jod und Brom als jedes andere bekannte Mineralwasser. Von 1855–1971 gab es eine Bahnanbindung. Die victorianischen Kuranlagen wurden noch genutzt, bis 1983 der Brunnenschacht und Teile des Brunnengebäudes einstürzten.<br>
Die jährliche ''Country Show'' findet an einem Sonntag Mitte Mai statt. Man kann Traktoren, Kartoffelsortern und Rindviecher beäugen. Sportliche Besucher können den Rest des Jahres zwischen dem Golfplatz und [[w:Bowls|Lawn Bowls]] wählen.
;Unterkunft
* {{vCard|type=hotel|name=Inn at Woodhall Spa|name-local=|address=The Broadway, Woodhall Spa LN10 6ST|directions=Bushaltestelle des Ortes an der Kreuzung davor, zugleich Geschäftsviertel|phone=+441526353231|url=|hours=|price=geh. Mittelklasse|lat=53.15190306654303|long=-0.21419512435954716|lastedit=2026-04-16|description=|show=nosocialmedia}}
* {{vCard|type=hotel|name=Spinney on the Green|name-local=|address=9 Horncastle Rd, Woodhall Spa LN10 6UY|directions=|phone=|url=|hours=|price=|lat=53.1557074716831|long=-0.1988174076332674|lastedit=2026-04-16|description=Ferienwohnungen.|show=nosocialmedia}}
* {{vCard|type=campsite|name=Jubilee Park Caravan & Camping Site|name-local=|address=|directions=|phone=|url=|hours=Ende März bis Oktober|price=|lat=53.155575763296774|long=-0.22301397066408363|lastedit=2026-04-16|description=Im Sommer mit öffentlich zugänglichem Freibad (33 m; ab April, beheizt auf 29 °C). Eigene Abteilung “Petwood” für Gäste mit Hunden. Jenes Hotel war im Krieg als Kaserne für Luftwaffenoffiziere gebaut worden.|show=nosocialmedia}}
* {{vCard|type=hotel|name=Bainland Lodge Retreats|name-local=|address=Horncastle Rd.|directions=neben der Tankstelle|phone=+441526352903|url=|hours=|price=Mindestaufenthalt 3 oder 4 Nächte, je nach Qualität pro Hütte (2-4 Pers.) £ 600–1800 in der NS|lat=53.159977802755755|long=-0.18558870804377522|lastedit=2026-04-16|description=Unterkunft in gepflegten Holzhütten bzw. “Glamping”.|show=nosocialmedia}}
;Sehenwürdigkeiten
Das 1922 eröffnete {{marker|type=cinema|name=Kinema in the Woods|name-local=Coronation St.|name-map=|url=|lat=53.15565923835574|long=-0.21396213116824114}} ist das einzige in Großbritannien noch betriebene Kino mit [[w:Rückprojektion|Rückprojektion]] auf eine durchscheinende Leinwand. Auch eine Kinoorgel der Firma Compton ist dort noch in Gebrauch. Das zugehörige Teehaus öffnet im Sommer.
Das {{marker|type=museum|name=Cottage Museum|url=https://www.cottagemuseum.co.uk/ |lat=|long=|wikidata=Q983619 | show = copy | hours = Di.-Sa. 10:30–16:00 }}
<!--
== Hintergrund ==
== Sprache ==
== Anreise ==
== Mobilität ==
== Sehenswürdigkeiten ==
== Aktivitäten ==
== Küche ==
== Nachtleben ==
== Sicherheit ==
== Klima ==
== Literatur ==
-->
== Weblinks ==
* {{Offizielle_Webseite}}
{{stub}}
{{GeoData| lat= 53.06667| long= -0.18333| radius= 20000}}
{{IstInKat|East Midlands}}
o4bze7pbbw6oujtyns0c0lvm54jbg95
Saragossa
0
9661
1769094
1742944
2026-04-16T21:02:03Z
Scholless
15050
/* Nachtleben */ gestrafft
1769094
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Saragossa''' (spanisch '''Zaragoza''') ist die Hauptstadt der [[Spanien|spanischen]] Provinz Saragossa und bedeutendste Stadt in der Region [[Aragonien]], deren Verwaltungssitz sie ist. Die Weltausstellung '''EXPO''' fand 2008 unter dem Motto ''Wasser und nachhaltige Entwicklung'' in Saragossa statt.
== Hintergrund ==
[[File:Aljafería al ocaso.jpg|mini|Aljafería, maurischer Sommerpalast, gegen 1065 gebaut.]]
Die Stadtgründung fand durch die Römer im Jahre 24 v. Chr. unter dem Namen '''Colonia Caesaraugusta''' statt. Aus diesem Namen wurde dann '''Zaragoza'''. Im Jahr 380 n. Chr fand die Synode von Saragossa statt, in deren Folge das Weihnachtsfest in Spanien am 25. Dezember gefeiert wird. Der Theologe Priscillan von Avila wurde als Herätiker verurteilt und in der Folge 385 in [[Trier]] hingerichtet.
Nach der Eroberung des südlichen Spaniens durch die Mauren fiel die Stadt im 8. Jahrhundert an das Kalifat von [[Córdoba (Spanien)|Córdoba]]. Nach dem Zerfall des Kalifats wurde Saragossa selbständig. Im Jahr 1118 eroberte das christliche Königreich Aragón die Stadt zurück und erkor sie zur neuen Hauptstadt des Landes.
== Anreise ==
=== Mit dem Flugzeug ===
=== Mit der Bahn ===
Es gibt schnelle Verbindungen mit dem spanischen Hochgeschwindigkeitszug ''AVE'' von Madrid (ca. 1:20 h, ca. 52,90 €) und Barcelona (1:30 h oder 1:50 h, 61.20 €). Bei rechtzeitiger Buchung über das Internet günstiger ([http://www.renfe.es '''RENFE''']). Günstiger ist Saragossa mit normalen Zügen oder Bussen zu erreichen.
Zentraler Bahnhof für Züge und Busse ist die {{marker|type=train|name=''estacion Delicias''|wikidata=Q801660}} 2 km außerhalb, mit dem Bus (34 oder 51) oder dem Taxi (ca. 10 €) geht's in 10 Minuten ins Zentrum.
=== Mit dem Bus ===
=== Auf der Straße ===
=== Zu Fuß ===
Der Ort ist Ziel einer Tagesetappe der Pilgerroute [[Ignatiusweg]], die am Geburtsort des Heiligen im baskischen Loyola beginnt.
== Mobilität ==
{{Mapframe|41.6538|-0.8811}}
Im Stadtzentrum kann man fast alle Sehenswürdigkeiten zu Fuß erreichen.
=== Straßenbahn ===
Für längere Strecken kann die [https://www.tranviasdezaragoza.es/en/ tranvía Zaragoza] (Straßenbahn) benutzt werden, Saragossa verfügt derzeit über eine lange Linie die die Stadt in Nord-Süd-Richtung durchzieht, weitere Linien sind schon lange in Diskussion. Für Kurzbesucher kommt vor allem das Einzelticket (1,40 €, {{Stand|2022|09|inKlammern=n}}) in Betracht, welches an Automaten an den Haltestellen gezogen werden kann und dann noch bei Betreten der Tram validiert werden muss. Umsteigen ist nicht erlaubt.
== Sehenswürdigkeiten ==
=== Kirchen ===
[[File:La Seo de noche.JPG|mini|Catedral de San Salvador]]
* {{vCard | name = Basilika de Nuestra Señora del Pilar | type = basilica | wikidata = Q810684 | lastedit = 2022-09-26 | description = Wahrzeichen der Stadt mit vier markanten Türmen und größte barocke Kirche Spaniens. Der Zutritt zur Kirche selber ist frei, fotographieren im Inneren eigentlich verboten, allerdings hält sich niemand daran.
}}
* {{vCard|type=cathedral |name=Catedral de San Salvador |wikidata=Q2196869 | address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard|type=church | name=Iglesias Mudejares | alt=Moorish churches | address= | lat= | long=
}}
* {{vCard|type=church | name=Iglesia de Santa María Magdalena | address= | lat=41.65245 | long=-0.87378 | wikidata=Q5656751
}}
* {{vCard|type=church | name=Iglesia de San Miguel de los Navarros | address= | lat=41.64950 | long=-0.87648 | wikidata=Q7414993
}}
* {{vCard|type=church | name=Iglesia de San Pablo | address=Calle de San Pablo 42 | lat=41.65609 | long=-0.88597 | wikidata=Q2470882
}}
* {{vCard|type=basilica | name=Basílica of Santa Engracia | address= | lat=41.64881 | long=-0.88282 | wikidata=Q29729
}}
=== Burgen, Schlösser und Paläste ===
* {{vCard|type=castle |name=Palacio de la Aljaferia |wikidata=Q1354033|address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Maurische Burg, jetzt Sitz des Regionalparlaments.
}}
=== Bauwerke ===
* {{vCard|type=building |name=La Lonja |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Gotisches Handelsgebäude, jetzt genutzt für Ausstellungen, an der Plaza de Nuestra Señora del Pilar.
}}
* {{vCard|type=city wall |name=Las Murallas Romanas |wikidata=Q3328022|address=Avenida de César Augusto |phone=|email=|url=|hours=|price=|lat=|long=|lastedit= |description=Überreste der römischen Stadtmauer.
}}
* {{vCard|type=gate|name=Puerta del Carmen|wikidata=Q3573686|description=Stadttor.
}}
* {{vCard|type=bridge|name=Puente de Piedra|wikidata=Q2638325|description=Steinbrücke aus dem 15. Jahrhundert.
}}
=== Denkmäler ===
=== Museen ===
* {{vCard|type=theater |name=Teatro Romano |wikidata=Q583459 | address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Überreste eines römischen Theaters, kann auch ganz entspannt vom Museumscafe aus bei einem ''Cortado'' genossen werden.
}}
* {{vCard | name = Saragossa Museum | type = museum | wikidata = Q2837755 | lastedit = 2022-09-27 | description =
}}
* {{vCard|type=museum|name=Goya Museum |wikidata=Q19950376| address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard | name = Pablo Gargallo Museum | type = museum | wikidata = Q11323320 | lastedit = 2022-09-27 | description =
}}
=== Straßen und Plätze ===
* {{vCard|type=square |name=Plaza de Nuestra Señora del Pilar |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Großer Hauptplatz im Zentrum (Fußgängerzone).
}}
=== Parks ===
* {{vCard | name = Parque del Agua Luis Buñuel | alt = Gelände der Expo 2008 | type = park | wikidata = Q9055829 | lastedit = 2022-09-27 | description = Das ehemalige Gelände der Expo ist ein ca. 120 ha großes Areal mit Park mit vielen Wasserflächen, leider auch etlichen großflächigen Parkplätzen und einem Mischmasch an Nutzungen. Neben dem bekannten Süsswasseraquarium findet sich hinter der ''Ciudad de la Justicia'' auch ein Bereich der schön zeigt dass das Motto der Expo (nachhaltige Entwicklung) nicht erreicht wurde, hier haben ganze Bereiche den morbiden Charme des Verfalls und man spürt die Überforderung der Stadt ein so großes Gebiet in Stand zu halten. Die extra aus Anlass der Expo gebaute Tram wurde erst nach Ende der Ausstellung fertig und fährt auch nur in die Nähe des Geländes (immer 800-1000 m zu nächsten Haltestelle).
}}
* {{vCard | name = Parque Grande José Antonio Labordeta | alt = Parque Grande | type = park | wikidata = Q3573265 | lastedit = 2022-09-27 | description = 27 ha großer Park, der im Jahr 1927 eröffnet wurde. Schön im Sommer zum Entspannen. Nach Süden hin schließt sich der ''Pinares de Venecia'' an, ein Waldgebiet in dem sich auch der Vergnügungspark ''Parque de Atracciones de Zaragoza'' befindet.
}}
=== Verschiedenes ===
== Aktivitäten ==
* {{vCard|type=Aquarium |name=Süßwasseraquarium |wikidata=Q5657014 | address=|phone=|email=|url=https://www.acuariodezaragoza.com |hours=|price=14 € Erwachsene, 7 € Kinder, 10 € Ältere (> 65 Jahre), auf dem Expo Gelände |lat=|long=|lastedit=|description=Das größte Süßwasseraquarium Europas ist ein Vermächtnis der Expo 2008.
}}
== Einkaufen ==
Viele Geschäfte machen nachmittags eine längere ''Siesta'' und öffnen dafür abends lange. Die ''Calle del Alfonso I'' ist eine Fußgängerzone mit dem üblichen Angebot und Blick auf die ''Basilika de Nuestra Senora del Pilar''. Wer nach einem klassischen Kaufhaus mit dem kompletten Angebot (inklusive Supermarkt) sucht, dem sei das ''Corte Ingles'' in der Nähe der Plaza Espana empfohlen.
Ein besonderes Erlebnis ist der Besuch des ''Mercado Central'' in der Nähe der römischen Reste der Stadtmauer (Avenida de César Augusto) mit einem sehr großen Angebot an frischem Fisch, Fleisch, Obst und Gemüse.
== Küche ==
Typisch für die Region ist eher Fleisch, insbesondere Lamm und Spanferkel; es gibt jedoch auch viel Auswahl an Fischgerichten. Abends öffnen die meisten Restaurants nicht vor 21 Uhr.
=== Günstig ===
* {{vCard|type=bar |name=El Abero |address=bei der Stierkampfarena, Calle de Fernando Solsona Motrel 4 |phone=|email=|url=|hours=|price=|lat=|long= |lastedit=|description=Bar mit günstigem Mittagsmenü (spanische Hausmannskost) für 5 €.
}}
=== Mittel ===
* {{vCard|type=restaurant |name=La Tertulia Taurina |address=Calle Pignatelli 122 |phone=+34 976405555 |email=|url=http://www.latertuliataurina.com |hours=|price=|lat=|long=|lastedit=|description=Ein gutes Restaurant mit traditioneller Küche an der Stierkampfarena (Plaza de Toros). Das Tagesmenü kostet 13 € (inklusive Wein und Nachtisch), ''à la carte'' isst man für ca. 35 €.
}}
* {{vCard|type=restaurant |name=Las Palomas |address=bei der Kathedrale, Plaza Pilar 14-16 |phone=|email=|url=|hours=|price=|lat=|long=|lastedit= |description=Ein ''all you can eat'' mit großem spanischem Buffet für 14 €, Getränke sind extra. Ideal zum Überleben ganz ohne Spanischkenntnisse.
}}
=== Gehoben ===
* {{vCard|type=restaurant |name=Mesón Asador Campo Del Toro |address=in der Nähe der Stierkampfarena, Plaza del Portillo 5 |phone=+34 976 438 721 |email= |url=http://www.campodeltoro.com |hours=|price=|lat=|long=|lastedit=|description=Gehobenes Restaurant mit regionaler Küche.
}}
== Nachtleben ==
== Unterkunft ==
=== Günstig ===
=== Mittel ===
* {{vCard|type=hotel |name=Hesperia Zaragoza |address=C/ Conde de Aranda 48 |phone=+34 976 284500 |email=|url=http://www.hesperia-zaragoza.es |hours= |price=ca. 50 € |lat=|long=|lastedit=|description=Relativ zentral gelegen, Zimmer zur Straße etwas laut.
}}
=== Gehoben ===
== Sicherheit ==
== Gesundheit ==
== Praktische Hinweise ==
=== Touristinformation ===
* {{vCard|type=tourist information |name=Touristinformation |address=Plaza Nuestra Señora del Pilar, 50003 Zaragoza |phone=+34 902 201 212, +34 976 201 200 |email=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard|type=tourist information |name=Touristinformation |address=Plaza de España 2 |phone=+34 976 21 20 32 |email=|url=|hours=|price=|lat=|long= |lastedit=|description=
}}
== Ausflüge ==
== Literatur ==
== Weblinks ==
* {{Offizielle_Webseite}}
{{class-2}}
{{GeoData| lat= 41.65344| long= -0.87809| radius= }}
{{IstInKat|Saragossa (Provinz)}}
2cr7iuhhlnzmj39qvojpwkqhp4k7ppf
1769095
1769094
2026-04-16T21:02:24Z
Scholless
15050
/* Unterkunft */ gestrafft
1769095
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Saragossa''' (spanisch '''Zaragoza''') ist die Hauptstadt der [[Spanien|spanischen]] Provinz Saragossa und bedeutendste Stadt in der Region [[Aragonien]], deren Verwaltungssitz sie ist. Die Weltausstellung '''EXPO''' fand 2008 unter dem Motto ''Wasser und nachhaltige Entwicklung'' in Saragossa statt.
== Hintergrund ==
[[File:Aljafería al ocaso.jpg|mini|Aljafería, maurischer Sommerpalast, gegen 1065 gebaut.]]
Die Stadtgründung fand durch die Römer im Jahre 24 v. Chr. unter dem Namen '''Colonia Caesaraugusta''' statt. Aus diesem Namen wurde dann '''Zaragoza'''. Im Jahr 380 n. Chr fand die Synode von Saragossa statt, in deren Folge das Weihnachtsfest in Spanien am 25. Dezember gefeiert wird. Der Theologe Priscillan von Avila wurde als Herätiker verurteilt und in der Folge 385 in [[Trier]] hingerichtet.
Nach der Eroberung des südlichen Spaniens durch die Mauren fiel die Stadt im 8. Jahrhundert an das Kalifat von [[Córdoba (Spanien)|Córdoba]]. Nach dem Zerfall des Kalifats wurde Saragossa selbständig. Im Jahr 1118 eroberte das christliche Königreich Aragón die Stadt zurück und erkor sie zur neuen Hauptstadt des Landes.
== Anreise ==
=== Mit dem Flugzeug ===
=== Mit der Bahn ===
Es gibt schnelle Verbindungen mit dem spanischen Hochgeschwindigkeitszug ''AVE'' von Madrid (ca. 1:20 h, ca. 52,90 €) und Barcelona (1:30 h oder 1:50 h, 61.20 €). Bei rechtzeitiger Buchung über das Internet günstiger ([http://www.renfe.es '''RENFE''']). Günstiger ist Saragossa mit normalen Zügen oder Bussen zu erreichen.
Zentraler Bahnhof für Züge und Busse ist die {{marker|type=train|name=''estacion Delicias''|wikidata=Q801660}} 2 km außerhalb, mit dem Bus (34 oder 51) oder dem Taxi (ca. 10 €) geht's in 10 Minuten ins Zentrum.
=== Mit dem Bus ===
=== Auf der Straße ===
=== Zu Fuß ===
Der Ort ist Ziel einer Tagesetappe der Pilgerroute [[Ignatiusweg]], die am Geburtsort des Heiligen im baskischen Loyola beginnt.
== Mobilität ==
{{Mapframe|41.6538|-0.8811}}
Im Stadtzentrum kann man fast alle Sehenswürdigkeiten zu Fuß erreichen.
=== Straßenbahn ===
Für längere Strecken kann die [https://www.tranviasdezaragoza.es/en/ tranvía Zaragoza] (Straßenbahn) benutzt werden, Saragossa verfügt derzeit über eine lange Linie die die Stadt in Nord-Süd-Richtung durchzieht, weitere Linien sind schon lange in Diskussion. Für Kurzbesucher kommt vor allem das Einzelticket (1,40 €, {{Stand|2022|09|inKlammern=n}}) in Betracht, welches an Automaten an den Haltestellen gezogen werden kann und dann noch bei Betreten der Tram validiert werden muss. Umsteigen ist nicht erlaubt.
== Sehenswürdigkeiten ==
=== Kirchen ===
[[File:La Seo de noche.JPG|mini|Catedral de San Salvador]]
* {{vCard | name = Basilika de Nuestra Señora del Pilar | type = basilica | wikidata = Q810684 | lastedit = 2022-09-26 | description = Wahrzeichen der Stadt mit vier markanten Türmen und größte barocke Kirche Spaniens. Der Zutritt zur Kirche selber ist frei, fotographieren im Inneren eigentlich verboten, allerdings hält sich niemand daran.
}}
* {{vCard|type=cathedral |name=Catedral de San Salvador |wikidata=Q2196869 | address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard|type=church | name=Iglesias Mudejares | alt=Moorish churches | address= | lat= | long=
}}
* {{vCard|type=church | name=Iglesia de Santa María Magdalena | address= | lat=41.65245 | long=-0.87378 | wikidata=Q5656751
}}
* {{vCard|type=church | name=Iglesia de San Miguel de los Navarros | address= | lat=41.64950 | long=-0.87648 | wikidata=Q7414993
}}
* {{vCard|type=church | name=Iglesia de San Pablo | address=Calle de San Pablo 42 | lat=41.65609 | long=-0.88597 | wikidata=Q2470882
}}
* {{vCard|type=basilica | name=Basílica of Santa Engracia | address= | lat=41.64881 | long=-0.88282 | wikidata=Q29729
}}
=== Burgen, Schlösser und Paläste ===
* {{vCard|type=castle |name=Palacio de la Aljaferia |wikidata=Q1354033|address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Maurische Burg, jetzt Sitz des Regionalparlaments.
}}
=== Bauwerke ===
* {{vCard|type=building |name=La Lonja |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Gotisches Handelsgebäude, jetzt genutzt für Ausstellungen, an der Plaza de Nuestra Señora del Pilar.
}}
* {{vCard|type=city wall |name=Las Murallas Romanas |wikidata=Q3328022|address=Avenida de César Augusto |phone=|email=|url=|hours=|price=|lat=|long=|lastedit= |description=Überreste der römischen Stadtmauer.
}}
* {{vCard|type=gate|name=Puerta del Carmen|wikidata=Q3573686|description=Stadttor.
}}
* {{vCard|type=bridge|name=Puente de Piedra|wikidata=Q2638325|description=Steinbrücke aus dem 15. Jahrhundert.
}}
=== Denkmäler ===
=== Museen ===
* {{vCard|type=theater |name=Teatro Romano |wikidata=Q583459 | address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Überreste eines römischen Theaters, kann auch ganz entspannt vom Museumscafe aus bei einem ''Cortado'' genossen werden.
}}
* {{vCard | name = Saragossa Museum | type = museum | wikidata = Q2837755 | lastedit = 2022-09-27 | description =
}}
* {{vCard|type=museum|name=Goya Museum |wikidata=Q19950376| address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard | name = Pablo Gargallo Museum | type = museum | wikidata = Q11323320 | lastedit = 2022-09-27 | description =
}}
=== Straßen und Plätze ===
* {{vCard|type=square |name=Plaza de Nuestra Señora del Pilar |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Großer Hauptplatz im Zentrum (Fußgängerzone).
}}
=== Parks ===
* {{vCard | name = Parque del Agua Luis Buñuel | alt = Gelände der Expo 2008 | type = park | wikidata = Q9055829 | lastedit = 2022-09-27 | description = Das ehemalige Gelände der Expo ist ein ca. 120 ha großes Areal mit Park mit vielen Wasserflächen, leider auch etlichen großflächigen Parkplätzen und einem Mischmasch an Nutzungen. Neben dem bekannten Süsswasseraquarium findet sich hinter der ''Ciudad de la Justicia'' auch ein Bereich der schön zeigt dass das Motto der Expo (nachhaltige Entwicklung) nicht erreicht wurde, hier haben ganze Bereiche den morbiden Charme des Verfalls und man spürt die Überforderung der Stadt ein so großes Gebiet in Stand zu halten. Die extra aus Anlass der Expo gebaute Tram wurde erst nach Ende der Ausstellung fertig und fährt auch nur in die Nähe des Geländes (immer 800-1000 m zu nächsten Haltestelle).
}}
* {{vCard | name = Parque Grande José Antonio Labordeta | alt = Parque Grande | type = park | wikidata = Q3573265 | lastedit = 2022-09-27 | description = 27 ha großer Park, der im Jahr 1927 eröffnet wurde. Schön im Sommer zum Entspannen. Nach Süden hin schließt sich der ''Pinares de Venecia'' an, ein Waldgebiet in dem sich auch der Vergnügungspark ''Parque de Atracciones de Zaragoza'' befindet.
}}
=== Verschiedenes ===
== Aktivitäten ==
* {{vCard|type=Aquarium |name=Süßwasseraquarium |wikidata=Q5657014 | address=|phone=|email=|url=https://www.acuariodezaragoza.com |hours=|price=14 € Erwachsene, 7 € Kinder, 10 € Ältere (> 65 Jahre), auf dem Expo Gelände |lat=|long=|lastedit=|description=Das größte Süßwasseraquarium Europas ist ein Vermächtnis der Expo 2008.
}}
== Einkaufen ==
Viele Geschäfte machen nachmittags eine längere ''Siesta'' und öffnen dafür abends lange. Die ''Calle del Alfonso I'' ist eine Fußgängerzone mit dem üblichen Angebot und Blick auf die ''Basilika de Nuestra Senora del Pilar''. Wer nach einem klassischen Kaufhaus mit dem kompletten Angebot (inklusive Supermarkt) sucht, dem sei das ''Corte Ingles'' in der Nähe der Plaza Espana empfohlen.
Ein besonderes Erlebnis ist der Besuch des ''Mercado Central'' in der Nähe der römischen Reste der Stadtmauer (Avenida de César Augusto) mit einem sehr großen Angebot an frischem Fisch, Fleisch, Obst und Gemüse.
== Küche ==
Typisch für die Region ist eher Fleisch, insbesondere Lamm und Spanferkel; es gibt jedoch auch viel Auswahl an Fischgerichten. Abends öffnen die meisten Restaurants nicht vor 21 Uhr.
=== Günstig ===
* {{vCard|type=bar |name=El Abero |address=bei der Stierkampfarena, Calle de Fernando Solsona Motrel 4 |phone=|email=|url=|hours=|price=|lat=|long= |lastedit=|description=Bar mit günstigem Mittagsmenü (spanische Hausmannskost) für 5 €.
}}
=== Mittel ===
* {{vCard|type=restaurant |name=La Tertulia Taurina |address=Calle Pignatelli 122 |phone=+34 976405555 |email=|url=http://www.latertuliataurina.com |hours=|price=|lat=|long=|lastedit=|description=Ein gutes Restaurant mit traditioneller Küche an der Stierkampfarena (Plaza de Toros). Das Tagesmenü kostet 13 € (inklusive Wein und Nachtisch), ''à la carte'' isst man für ca. 35 €.
}}
* {{vCard|type=restaurant |name=Las Palomas |address=bei der Kathedrale, Plaza Pilar 14-16 |phone=|email=|url=|hours=|price=|lat=|long=|lastedit= |description=Ein ''all you can eat'' mit großem spanischem Buffet für 14 €, Getränke sind extra. Ideal zum Überleben ganz ohne Spanischkenntnisse.
}}
=== Gehoben ===
* {{vCard|type=restaurant |name=Mesón Asador Campo Del Toro |address=in der Nähe der Stierkampfarena, Plaza del Portillo 5 |phone=+34 976 438 721 |email= |url=http://www.campodeltoro.com |hours=|price=|lat=|long=|lastedit=|description=Gehobenes Restaurant mit regionaler Küche.
}}
== Nachtleben ==
== Unterkunft ==
* {{vCard|type=hotel |name=Hesperia Zaragoza |address=C/ Conde de Aranda 48 |phone=+34 976 284500 |email=|url=http://www.hesperia-zaragoza.es |hours= |price=ca. 50 € |lat=|long=|lastedit=|description=Relativ zentral gelegen, Zimmer zur Straße etwas laut.
}}
== Sicherheit ==
== Gesundheit ==
== Praktische Hinweise ==
=== Touristinformation ===
* {{vCard|type=tourist information |name=Touristinformation |address=Plaza Nuestra Señora del Pilar, 50003 Zaragoza |phone=+34 902 201 212, +34 976 201 200 |email=|url=|hours=|price=|lat=|long=|lastedit=|description=
}}
* {{vCard|type=tourist information |name=Touristinformation |address=Plaza de España 2 |phone=+34 976 21 20 32 |email=|url=|hours=|price=|lat=|long= |lastedit=|description=
}}
== Ausflüge ==
== Literatur ==
== Weblinks ==
* {{Offizielle_Webseite}}
{{class-2}}
{{GeoData| lat= 41.65344| long= -0.87809| radius= }}
{{IstInKat|Saragossa (Provinz)}}
mdb9194ttwxcz36899tg50ai0oenas2
Selztal-Radweg
0
9686
1769016
1741309
2026-04-16T14:16:26Z
Dirk Schmidt
15181
/* Etappe Alzey - Ingelheim: 55 km */
1769016
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Rheinland-Pfalz}}
Wer '''[[Rheinhessen]]''' kennenlernen möchte, sollte das Selztal befahren.
Der Radweg führt durch die liebliche Weinbauregion über [[Alzey]] nach '''[[Ingelheim am Rhein]]'''.
[[Bild:Rheinhessen-selztal-bei-dolgesheim-d-schmidt-10-2002.jpg|thumb|380px|Blick in das Selztal bei Dolgesheim. Am Horizont ist oberhalb des [[Rheingau]]s der [[Taunus]] zu erahnen]]
[[Image:Selztalradweg Logo 059-dzh.jpg|right|120px]]
== Streckenprofil ==
*'''Länge: 65 km''' (ab der Quelle bei Orbis, ab Alzey 55km)
*'''Ausschilderung:''' Der Radweg ist durchgängig mit großen Zwischenwegweisern ausgeschildert, die in der Regel gut sichtbar aufgehängt sind. Das Logo ist ein grüner Frosch.
*'''Steigungen:''' größere Hügel oberhalb von Alzey; ab Alzey eben, bis auf kleine Ausnahmen.
*'''Wegzustand:''' Seit 2008 ist der Radweg vollständig bituminös befestigt (Asphalt oder Beton).
*'''Verkehrsbelastung: '''Die gesamte Strecke ist größtenteils verkehrsfrei.
*'''Geeignetes Fahrrad: '''Ab Alzey ist ein Alltagsrad mit 3 Gangschaltung ausreichend.
*'''Familieneignung:''' Der Abschnitt Alzey-Ingelheim ist familientauglich.
*'''Inlinereignung:''' Der Abschnitt Alzey-Ingelheim ist durchgängig asphaltiert, betoniert bzw. gepflastert. Die Wegdecke ist zum Teil aber schlecht. Da es sich um landwirtschaftliche Wege handelt sind die Strecken teilweise auch verschmutzt. Fazit: Teilweise fahrbar aber kein Musterweg für Inliner.
[[Image:Ingelheim-1a.png|thumb|240px|Stadtplan von '''[[Ingelheim]]''' mit Selztal-Radweg]]
== Hintergrund ==
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Alzey ist Knotenpunkt für den regionlen Zugverkehr in Rheinhessen. Es bestehen Verbindungen nach [[Worms]], [[Bingen am Rhein|Bingen]] und [[Mainz]]. Ebenfalls ab Alzey verkehrt ein Dieseltriebwagen bis nach [[Kirchheimbolanden]]. Ein weiterer Bahnhalt für Unterwegs ist Niederolm. In [[Ingelheim]] halten auch Regional-Expresszüge.
=== Mit dem Fahrrad ===
* [[Hiwwel-Route|Hiwwel-Route]] im Süden (Alzey - Framersheim), Mitte (Hahnheim) und Norden (Ingelheim - Rheinufer)
* [[Rhein-Radweg|Rhein-Radweg]] im Norden
=== Auf der Straße ===
Die Selzroute ist ein Streckenradweg. Die Anreise mit dem KFZ ist daher umständlich, da man zurück zum Ausgangspunkt muss.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
[[Bild:Selzquelle_wv_d_schmidt_11_2005.jpg|thumb|330px|Die Selzquelle bei Orbis etwa 5 km nördlich von [[Kirchheimbolanden|Kirchheim-Bolanden]]. Obwohl die Quelle architektonisch etwas verbaut ist, bietet sie eine interessante Funktion: Über die Handpumpe, die Mitte links im zu Bild finden ist, kann man Wasser in die Quelle pumpen. Diese ist rechts unten im Bild zu sehen (erinnert eher an einen schnöden Wasserablauf).]]
=== Etappe - Alzey ===
Nach der Anreise mit der Bahn nach '''[[Kirchheimbolanden]]''' bietet sich ein Besuch der sehenswerten Stadtmitte an (hübsche barocke Altstadt und Reste der Stadtmauer).
: Die Selz selbst entspringt nördlich von [[Kirchheimbolanden]] bei Orbis. Orbis erreicht man von Kirchheim-Bolanden über ruhige, aber bergige Landstraßen. Diese Strecke besitzt seit 2009 auch eine Radwegweisung.
* '''Orbis''' − Beginn des Selztal-Radweges. Die Quelle ist am östlichen Ortsrand bei {{coord|49.69592|7.99855|scale=10000}} zu finden.
* '''Mauchenheim'''
* '''[[Alzey]]''' − Hier bietet sich eine Pause in der gemütlichen Fußgängerzone an.
=== Etappe Alzey - Ingelheim: 55 km ===
42 km Radwege; 12,5 km innerorts ohne Radwege; 0,5 km außerorts ohne Radwege
'''Höhenmeter''': 270 Hm rauf − 355 Hm runter
;Achtung: Seit April 2024 bis voraussichtlich Herbst 2025 gibt es eine Umleitung zwischen Alzey und Framersheim. Da der dortige Streckenabschnitt aufgrund von Bauarbeiten im Alzeyer Industriegebiet gesperrt ist, der Radweg wird aber in dessen Rahmen ausgebaut.
* Nach [[Alzey]] erlebt man Rheinhessen pur.
* Hinter {{Marker | name = Gau-Odernheim | type= town | wikidata = Q653864)}} muss man die "Ausläufer" des Petersbergs bezwingen (ca. 30 - 40 m hoher Hügel). Wer möchte, kann auch zum Gipfel auffahren. Der {{Marker | name = Petersberg| type= viewpoint| wikidata = Q2079551}} ist einer der schönsten Aussichtspunkte an der Strecke. Räder mit elektronischer Unterstützung können an der Petersberghalle im Ort "betankt" werden, an den Schließfächern der Ladesäule besteht auch die Möglichkeit sein Mobiltelefon aufzuladen. Entsprechende Ladekabel und bei den Rädern entsprechende Ladegeräte sind selbst mitzubringen, es wird lediglich die Steckdose / USB-Schnittstelle zur Verfügung gestellt.
* Hinter dem schmucken {{Marker | name = Bechtolsheim | type= village | wikidata = Q554268}} beginnt bis Friesenheim ein landschaftlich besonders schöner Abschnitt.
* Nördlich von '''[[Friesenheim]]''' gibt es am ''Radwegekreuz'' die "Qual der Wahl". Auf einer ehemaligen Bahnstraße erreicht man über den [[Amiche|Amiche-Radweg]] [[Nierstein]] am Rhein. Der gleiche Radweg führt ab '''Selzen''' zum Teil ebenfalls als Bahntrassenradweg nach Bodenheim, von wo man über die [[Rheinterrassenroute]] und den [[Rhein-Radweg|Rheinradweg]] [[Mainz]] erreicht.
*{{Marker | name = Nieder-Olm | type= village | wikidata = Q552643}}
*'''Elsheim-Stadecken'''
*'''Schwabenheim'''
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Ab Schwabenheim geht es auf der Strecke der ehemaligen Kleinbahn nach Ingelheim weiter.
* '''Großwinternheim''' mit Selztaldom
[[Datei:Selz-Muendung.JPG|mini|Unspektakulär: Die Mündung der Selz in den Rhein]]
*{{Marker | name = Ingelheim| type= town | wikidata = Q159548}}
** → Ober-Ingelheim · Burgkirche (ev.) mit Wehranlage, Zwingergelände mit dem Malakoffturm <br> Um in den Ortsteil zu gelangen sollte man vor dem Ort den rechten Weg der [[Hiwwel-Route]] nehmen. Diese Route führt auch weiter zur Kaiserpfalz in Nieder-Ingelheim.
** → Nieder-Ingelheim · Kaiserpfalz
** Frei-Weinheim (früher Ingelheim-Nord) · Hafen mit Autofähre über den [[Rhein]] nach [[Oestrich-Winkel]] <br> Kurz vor dem Ingelheimer Hafen mündet die Selz in den Rhein. Wer möchte kann mit der Fähre in den [[Rheingau]] übersetzen und die Tour hier gemütlich ausklingen lassen.
Neben der Stadtbesichtigung von Ingelheim ist für Museumsfreunde ein Abstecher in das hübsche [[Gau-Algesheim]] interessant. Auf Schloss Ardeck lädt das [https://www.fahrradmuseum-rheinhessen.de Rheinhessische Fahrradmuseum] zum Besuch ein.
== Weitere Übernachtungsorte ==
* [[Bad Kreuznach]]
* [[Bingen am Rhein|Bingen]] - etwa 10 km rheinabwärts ab Ingelheim
== Ausflüge ==
* [[Rhein-Radweg|Rheinradweg]] · nach [[Bingen am Rhein|Bingen]] und nach [[Mainz]]
== Literatur- und Kartenhinweise ==
* Bikeline-Radatlas "Rheinhessen" M 1:75000 - siehe [https://www.esterbauer.com Verlag Esterbauer]
== Weblinks ==
'''Zur Strecke:'''
* '''Übersicht "Radrouten Rheinhessen" mit Karte auf [http://www.rheinhessen.de/radfahren.html Rheinhessen.de]''' - offizielle regionale Gemeinschaftseite von Rheinhessen-Touristik, Rheinhessenwein e.V. und Rheinhessen-Marketing e.V.
* Selztal-Radweg auf [http://cms.radwanderland.de/cgi-bin/cms?_SID=988209a8804887a0c71235f90f339195e075700c00064236924997&_bereich=artikel&_aktion=detail&idartikel=100436&_sprache=rheinhessen '''Radwanderland.de'''] - offizielle landesweite Radseite
'''Allgemein:'''
* [https://www.rheinhessen.info '''Rheinhessen-Touristik'''] - offizielle regionlale Seite
* [http://www.meinselztal.de '''Verkehrsverein Selztal'''] - lokale Seite für das untere Selztal
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radrouten in Rheinland-Pfalz}}
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
rgdykm4ggbtd9z5gn1y55ov1tvcot6p
1769018
1769016
2026-04-16T14:19:52Z
Dirk Schmidt
15181
/* Streckenbeschreibung mit Sehenswürdigkeiten */
1769018
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Rheinland-Pfalz}}
Wer '''[[Rheinhessen]]''' kennenlernen möchte, sollte das Selztal befahren.
Der Radweg führt durch die liebliche Weinbauregion über [[Alzey]] nach '''[[Ingelheim am Rhein]]'''.
[[Bild:Rheinhessen-selztal-bei-dolgesheim-d-schmidt-10-2002.jpg|thumb|380px|Blick in das Selztal bei Dolgesheim. Am Horizont ist oberhalb des [[Rheingau]]s der [[Taunus]] zu erahnen]]
[[Image:Selztalradweg Logo 059-dzh.jpg|right|120px]]
== Streckenprofil ==
*'''Länge: 65 km''' (ab der Quelle bei Orbis, ab Alzey 55km)
*'''Ausschilderung:''' Der Radweg ist durchgängig mit großen Zwischenwegweisern ausgeschildert, die in der Regel gut sichtbar aufgehängt sind. Das Logo ist ein grüner Frosch.
*'''Steigungen:''' größere Hügel oberhalb von Alzey; ab Alzey eben, bis auf kleine Ausnahmen.
*'''Wegzustand:''' Seit 2008 ist der Radweg vollständig bituminös befestigt (Asphalt oder Beton).
*'''Verkehrsbelastung: '''Die gesamte Strecke ist größtenteils verkehrsfrei.
*'''Geeignetes Fahrrad: '''Ab Alzey ist ein Alltagsrad mit 3 Gangschaltung ausreichend.
*'''Familieneignung:''' Der Abschnitt Alzey-Ingelheim ist familientauglich.
*'''Inlinereignung:''' Der Abschnitt Alzey-Ingelheim ist durchgängig asphaltiert, betoniert bzw. gepflastert. Die Wegdecke ist zum Teil aber schlecht. Da es sich um landwirtschaftliche Wege handelt sind die Strecken teilweise auch verschmutzt. Fazit: Teilweise fahrbar aber kein Musterweg für Inliner.
[[Image:Ingelheim-1a.png|thumb|240px|Stadtplan von '''[[Ingelheim]]''' mit Selztal-Radweg]]
== Hintergrund ==
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Alzey ist Knotenpunkt für den regionlen Zugverkehr in Rheinhessen. Es bestehen Verbindungen nach [[Worms]], [[Bingen am Rhein|Bingen]] und [[Mainz]]. Ebenfalls ab Alzey verkehrt ein Dieseltriebwagen bis nach [[Kirchheimbolanden]]. Ein weiterer Bahnhalt für Unterwegs ist Niederolm. In [[Ingelheim]] halten auch Regional-Expresszüge.
=== Mit dem Fahrrad ===
* [[Hiwwel-Route|Hiwwel-Route]] im Süden (Alzey - Framersheim), Mitte (Hahnheim) und Norden (Ingelheim - Rheinufer)
* [[Rhein-Radweg|Rhein-Radweg]] im Norden
=== Auf der Straße ===
Die Selzroute ist ein Streckenradweg. Die Anreise mit dem KFZ ist daher umständlich, da man zurück zum Ausgangspunkt muss.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
[[Bild:Selzquelle_wv_d_schmidt_11_2005.jpg|thumb|330px|Die Selzquelle bei Orbis etwa 5 km nördlich von [[Kirchheimbolanden|Kirchheim-Bolanden]]. Obwohl die Quelle architektonisch etwas verbaut ist, bietet sie eine interessante Funktion: Über die Handpumpe, die Mitte links im zu Bild finden ist, kann man Wasser in die Quelle pumpen. Diese ist rechts unten im Bild zu sehen (erinnert eher an einen schnöden Wasserablauf).]]
=== Etappe - Alzey ===
Nach der Anreise mit der Bahn nach {{Marker | name = | type= town | wikidata = }} '''[[Kirchheimbolanden]]''' bietet sich ein Besuch der sehenswerten Stadtmitte an (hübsche barocke Altstadt und Reste der Stadtmauer).
Die Selz selbst entspringt nördlich von {{Marker | name = Kirchheimbolanden | type= town | wikidata = Q200763}} bei Orbis. Orbis erreicht man von Kirchheim-Bolanden über ruhige, aber bergige Landstraßen. Diese Strecke besitzt seit 2009 auch eine Radwegweisung.
* '''Orbis''' − Beginn des Selztal-Radweges. Die {{Marker | name = Selzquelle | type= spring | lat = 49.69592|long = 7.99855}} ist am östlichen Ortsrand.
* '''Mauchenheim'''
* {{Marker | name = Alzey | type= town | wikidata = Q450726}} − Hier bietet sich eine Pause in der gemütlichen Fußgängerzone an.
=== Etappe Alzey - Ingelheim: 55 km ===
42 km Radwege; 12,5 km innerorts ohne Radwege; 0,5 km außerorts ohne Radwege
'''Höhenmeter''': 270 Hm rauf − 355 Hm runter
;Achtung: Seit April 2024 bis voraussichtlich Herbst 2025 gibt es eine Umleitung zwischen Alzey und Framersheim. Da der dortige Streckenabschnitt aufgrund von Bauarbeiten im Alzeyer Industriegebiet gesperrt ist, der Radweg wird aber in dessen Rahmen ausgebaut.
* Nach [[Alzey]] erlebt man Rheinhessen pur.
* Hinter {{Marker | name = Gau-Odernheim | type= town | wikidata = Q653864}} muss man die "Ausläufer" des Petersbergs bezwingen (ca. 30 - 40 m hoher Hügel). Wer möchte, kann auch zum Gipfel auffahren. Der {{Marker | name = Petersberg| type= viewpoint| wikidata = Q2079551}} ist einer der schönsten Aussichtspunkte an der Strecke. Räder mit elektronischer Unterstützung können an der Petersberghalle im Ort "betankt" werden, an den Schließfächern der Ladesäule besteht auch die Möglichkeit sein Mobiltelefon aufzuladen. Entsprechende Ladekabel und bei den Rädern entsprechende Ladegeräte sind selbst mitzubringen, es wird lediglich die Steckdose / USB-Schnittstelle zur Verfügung gestellt.
* Hinter dem schmucken {{Marker | name = Bechtolsheim | type= village | wikidata = Q554268}} beginnt bis Friesenheim ein landschaftlich besonders schöner Abschnitt.
* Nördlich von '''[[Friesenheim]]''' gibt es am ''Radwegekreuz'' die "Qual der Wahl". Auf einer ehemaligen Bahnstraße erreicht man über den [[Amiche|Amiche-Radweg]] [[Nierstein]] am Rhein. Der gleiche Radweg führt ab '''Selzen''' zum Teil ebenfalls als Bahntrassenradweg nach Bodenheim, von wo man über die [[Rheinterrassenroute]] und den [[Rhein-Radweg|Rheinradweg]] [[Mainz]] erreicht.
*{{Marker | name = Nieder-Olm | type= village | wikidata = Q552643}}
*'''Elsheim-Stadecken'''
*'''Schwabenheim'''
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Ab Schwabenheim geht es auf der Strecke der ehemaligen Kleinbahn nach Ingelheim weiter.
* '''Großwinternheim''' mit Selztaldom
[[Datei:Selz-Muendung.JPG|mini|Unspektakulär: Die Mündung der Selz in den Rhein]]
*{{Marker | name = Ingelheim| type= town | wikidata = Q159548}}
** → Ober-Ingelheim · Burgkirche (ev.) mit Wehranlage, Zwingergelände mit dem Malakoffturm <br> Um in den Ortsteil zu gelangen sollte man vor dem Ort den rechten Weg der [[Hiwwel-Route]] nehmen. Diese Route führt auch weiter zur Kaiserpfalz in Nieder-Ingelheim.
** → Nieder-Ingelheim · Kaiserpfalz
** Frei-Weinheim (früher Ingelheim-Nord) · Hafen mit Autofähre über den [[Rhein]] nach [[Oestrich-Winkel]] <br> Kurz vor dem Ingelheimer Hafen mündet die Selz in den Rhein. Wer möchte kann mit der Fähre in den [[Rheingau]] übersetzen und die Tour hier gemütlich ausklingen lassen.
Neben der Stadtbesichtigung von Ingelheim ist für Museumsfreunde ein Abstecher in das hübsche [[Gau-Algesheim]] interessant. Auf Schloss Ardeck lädt das [https://www.fahrradmuseum-rheinhessen.de Rheinhessische Fahrradmuseum] zum Besuch ein.
== Weitere Übernachtungsorte ==
* [[Bad Kreuznach]]
* [[Bingen am Rhein|Bingen]] - etwa 10 km rheinabwärts ab Ingelheim
== Ausflüge ==
* [[Rhein-Radweg|Rheinradweg]] · nach [[Bingen am Rhein|Bingen]] und nach [[Mainz]]
== Literatur- und Kartenhinweise ==
* Bikeline-Radatlas "Rheinhessen" M 1:75000 - siehe [https://www.esterbauer.com Verlag Esterbauer]
== Weblinks ==
'''Zur Strecke:'''
* '''Übersicht "Radrouten Rheinhessen" mit Karte auf [http://www.rheinhessen.de/radfahren.html Rheinhessen.de]''' - offizielle regionale Gemeinschaftseite von Rheinhessen-Touristik, Rheinhessenwein e.V. und Rheinhessen-Marketing e.V.
* Selztal-Radweg auf [http://cms.radwanderland.de/cgi-bin/cms?_SID=988209a8804887a0c71235f90f339195e075700c00064236924997&_bereich=artikel&_aktion=detail&idartikel=100436&_sprache=rheinhessen '''Radwanderland.de'''] - offizielle landesweite Radseite
'''Allgemein:'''
* [https://www.rheinhessen.info '''Rheinhessen-Touristik'''] - offizielle regionlale Seite
* [http://www.meinselztal.de '''Verkehrsverein Selztal'''] - lokale Seite für das untere Selztal
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radrouten in Rheinland-Pfalz}}
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
4q67a9b67n2znfx6g1ileso02vwxrxw
1769019
1769018
2026-04-16T14:20:42Z
Dirk Schmidt
15181
/* Etappe - Alzey */
1769019
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Rheinland-Pfalz}}
Wer '''[[Rheinhessen]]''' kennenlernen möchte, sollte das Selztal befahren.
Der Radweg führt durch die liebliche Weinbauregion über [[Alzey]] nach '''[[Ingelheim am Rhein]]'''.
[[Bild:Rheinhessen-selztal-bei-dolgesheim-d-schmidt-10-2002.jpg|thumb|380px|Blick in das Selztal bei Dolgesheim. Am Horizont ist oberhalb des [[Rheingau]]s der [[Taunus]] zu erahnen]]
[[Image:Selztalradweg Logo 059-dzh.jpg|right|120px]]
== Streckenprofil ==
*'''Länge: 65 km''' (ab der Quelle bei Orbis, ab Alzey 55km)
*'''Ausschilderung:''' Der Radweg ist durchgängig mit großen Zwischenwegweisern ausgeschildert, die in der Regel gut sichtbar aufgehängt sind. Das Logo ist ein grüner Frosch.
*'''Steigungen:''' größere Hügel oberhalb von Alzey; ab Alzey eben, bis auf kleine Ausnahmen.
*'''Wegzustand:''' Seit 2008 ist der Radweg vollständig bituminös befestigt (Asphalt oder Beton).
*'''Verkehrsbelastung: '''Die gesamte Strecke ist größtenteils verkehrsfrei.
*'''Geeignetes Fahrrad: '''Ab Alzey ist ein Alltagsrad mit 3 Gangschaltung ausreichend.
*'''Familieneignung:''' Der Abschnitt Alzey-Ingelheim ist familientauglich.
*'''Inlinereignung:''' Der Abschnitt Alzey-Ingelheim ist durchgängig asphaltiert, betoniert bzw. gepflastert. Die Wegdecke ist zum Teil aber schlecht. Da es sich um landwirtschaftliche Wege handelt sind die Strecken teilweise auch verschmutzt. Fazit: Teilweise fahrbar aber kein Musterweg für Inliner.
[[Image:Ingelheim-1a.png|thumb|240px|Stadtplan von '''[[Ingelheim]]''' mit Selztal-Radweg]]
== Hintergrund ==
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Alzey ist Knotenpunkt für den regionlen Zugverkehr in Rheinhessen. Es bestehen Verbindungen nach [[Worms]], [[Bingen am Rhein|Bingen]] und [[Mainz]]. Ebenfalls ab Alzey verkehrt ein Dieseltriebwagen bis nach [[Kirchheimbolanden]]. Ein weiterer Bahnhalt für Unterwegs ist Niederolm. In [[Ingelheim]] halten auch Regional-Expresszüge.
=== Mit dem Fahrrad ===
* [[Hiwwel-Route|Hiwwel-Route]] im Süden (Alzey - Framersheim), Mitte (Hahnheim) und Norden (Ingelheim - Rheinufer)
* [[Rhein-Radweg|Rhein-Radweg]] im Norden
=== Auf der Straße ===
Die Selzroute ist ein Streckenradweg. Die Anreise mit dem KFZ ist daher umständlich, da man zurück zum Ausgangspunkt muss.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
[[Bild:Selzquelle_wv_d_schmidt_11_2005.jpg|thumb|330px|Die Selzquelle bei Orbis etwa 5 km nördlich von [[Kirchheimbolanden|Kirchheim-Bolanden]]. Obwohl die Quelle architektonisch etwas verbaut ist, bietet sie eine interessante Funktion: Über die Handpumpe, die Mitte links im zu Bild finden ist, kann man Wasser in die Quelle pumpen. Diese ist rechts unten im Bild zu sehen (erinnert eher an einen schnöden Wasserablauf).]]
=== Etappe - Alzey ===
Nach der Anreise mit der Bahn nach {{Marker | name = Kirchheimbolanden | type= town | wikidata = Q200763}} bietet sich ein Besuch der sehenswerten Stadtmitte an (hübsche barocke Altstadt und Reste der Stadtmauer).
Die Selz selbst entspringt nördlich von {{Marker | name = Kirchheimbolanden | type= town | wikidata = Q200763}} bei Orbis. Orbis erreicht man von Kirchheim-Bolanden über ruhige, aber bergige Landstraßen. Diese Strecke besitzt seit 2009 auch eine Radwegweisung.
* '''Orbis''' − Beginn des Selztal-Radweges. Die {{Marker | name = Selzquelle | type= spring | lat = 49.69592|long = 7.99855}} ist am östlichen Ortsrand.
* '''Mauchenheim'''
* {{Marker | name = Alzey | type= town | wikidata = Q450726}} − Hier bietet sich eine Pause in der gemütlichen Fußgängerzone an.
=== Etappe Alzey - Ingelheim: 55 km ===
42 km Radwege; 12,5 km innerorts ohne Radwege; 0,5 km außerorts ohne Radwege
'''Höhenmeter''': 270 Hm rauf − 355 Hm runter
;Achtung: Seit April 2024 bis voraussichtlich Herbst 2025 gibt es eine Umleitung zwischen Alzey und Framersheim. Da der dortige Streckenabschnitt aufgrund von Bauarbeiten im Alzeyer Industriegebiet gesperrt ist, der Radweg wird aber in dessen Rahmen ausgebaut.
* Nach [[Alzey]] erlebt man Rheinhessen pur.
* Hinter {{Marker | name = Gau-Odernheim | type= town | wikidata = Q653864}} muss man die "Ausläufer" des Petersbergs bezwingen (ca. 30 - 40 m hoher Hügel). Wer möchte, kann auch zum Gipfel auffahren. Der {{Marker | name = Petersberg| type= viewpoint| wikidata = Q2079551}} ist einer der schönsten Aussichtspunkte an der Strecke. Räder mit elektronischer Unterstützung können an der Petersberghalle im Ort "betankt" werden, an den Schließfächern der Ladesäule besteht auch die Möglichkeit sein Mobiltelefon aufzuladen. Entsprechende Ladekabel und bei den Rädern entsprechende Ladegeräte sind selbst mitzubringen, es wird lediglich die Steckdose / USB-Schnittstelle zur Verfügung gestellt.
* Hinter dem schmucken {{Marker | name = Bechtolsheim | type= village | wikidata = Q554268}} beginnt bis Friesenheim ein landschaftlich besonders schöner Abschnitt.
* Nördlich von '''[[Friesenheim]]''' gibt es am ''Radwegekreuz'' die "Qual der Wahl". Auf einer ehemaligen Bahnstraße erreicht man über den [[Amiche|Amiche-Radweg]] [[Nierstein]] am Rhein. Der gleiche Radweg führt ab '''Selzen''' zum Teil ebenfalls als Bahntrassenradweg nach Bodenheim, von wo man über die [[Rheinterrassenroute]] und den [[Rhein-Radweg|Rheinradweg]] [[Mainz]] erreicht.
*{{Marker | name = Nieder-Olm | type= village | wikidata = Q552643}}
*'''Elsheim-Stadecken'''
*'''Schwabenheim'''
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Ab Schwabenheim geht es auf der Strecke der ehemaligen Kleinbahn nach Ingelheim weiter.
* '''Großwinternheim''' mit Selztaldom
[[Datei:Selz-Muendung.JPG|mini|Unspektakulär: Die Mündung der Selz in den Rhein]]
*{{Marker | name = Ingelheim| type= town | wikidata = Q159548}}
** → Ober-Ingelheim · Burgkirche (ev.) mit Wehranlage, Zwingergelände mit dem Malakoffturm <br> Um in den Ortsteil zu gelangen sollte man vor dem Ort den rechten Weg der [[Hiwwel-Route]] nehmen. Diese Route führt auch weiter zur Kaiserpfalz in Nieder-Ingelheim.
** → Nieder-Ingelheim · Kaiserpfalz
** Frei-Weinheim (früher Ingelheim-Nord) · Hafen mit Autofähre über den [[Rhein]] nach [[Oestrich-Winkel]] <br> Kurz vor dem Ingelheimer Hafen mündet die Selz in den Rhein. Wer möchte kann mit der Fähre in den [[Rheingau]] übersetzen und die Tour hier gemütlich ausklingen lassen.
Neben der Stadtbesichtigung von Ingelheim ist für Museumsfreunde ein Abstecher in das hübsche [[Gau-Algesheim]] interessant. Auf Schloss Ardeck lädt das [https://www.fahrradmuseum-rheinhessen.de Rheinhessische Fahrradmuseum] zum Besuch ein.
== Weitere Übernachtungsorte ==
* [[Bad Kreuznach]]
* [[Bingen am Rhein|Bingen]] - etwa 10 km rheinabwärts ab Ingelheim
== Ausflüge ==
* [[Rhein-Radweg|Rheinradweg]] · nach [[Bingen am Rhein|Bingen]] und nach [[Mainz]]
== Literatur- und Kartenhinweise ==
* Bikeline-Radatlas "Rheinhessen" M 1:75000 - siehe [https://www.esterbauer.com Verlag Esterbauer]
== Weblinks ==
'''Zur Strecke:'''
* '''Übersicht "Radrouten Rheinhessen" mit Karte auf [http://www.rheinhessen.de/radfahren.html Rheinhessen.de]''' - offizielle regionale Gemeinschaftseite von Rheinhessen-Touristik, Rheinhessenwein e.V. und Rheinhessen-Marketing e.V.
* Selztal-Radweg auf [http://cms.radwanderland.de/cgi-bin/cms?_SID=988209a8804887a0c71235f90f339195e075700c00064236924997&_bereich=artikel&_aktion=detail&idartikel=100436&_sprache=rheinhessen '''Radwanderland.de'''] - offizielle landesweite Radseite
'''Allgemein:'''
* [https://www.rheinhessen.info '''Rheinhessen-Touristik'''] - offizielle regionlale Seite
* [http://www.meinselztal.de '''Verkehrsverein Selztal'''] - lokale Seite für das untere Selztal
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radrouten in Rheinland-Pfalz}}
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
22vdt3mzn3k3cwukrc86kx690raphso
1769020
1769019
2026-04-16T14:23:19Z
Dirk Schmidt
15181
1769020
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Rheinland-Pfalz}}
Wer '''[[Rheinhessen]]''' kennenlernen möchte, sollte das Selztal befahren.
Der Radweg führt durch die liebliche Weinbauregion über [[Alzey]] nach '''[[Ingelheim am Rhein]]'''.
[[Bild:Rheinhessen-selztal-bei-dolgesheim-d-schmidt-10-2002.jpg|thumb|380px|Blick in das Selztal bei Dolgesheim. Am Horizont ist oberhalb des [[Rheingau]]s der [[Taunus]] zu erahnen]]
[[Image:Selztalradweg Logo 059-dzh.jpg|right|120px]]
== Streckenprofil ==
*'''Länge: 65 km''' (ab der Quelle bei Orbis, ab Alzey 55km)
*'''Ausschilderung:''' Der Radweg ist durchgängig mit großen Zwischenwegweisern ausgeschildert, die in der Regel gut sichtbar aufgehängt sind. Das Logo ist ein grüner Frosch.
*'''Steigungen:''' größere Hügel oberhalb von Alzey; ab Alzey eben, bis auf kleine Ausnahmen.
*'''Wegzustand:''' Seit 2008 ist der Radweg vollständig bituminös befestigt (Asphalt oder Beton).
*'''Verkehrsbelastung: '''Die gesamte Strecke ist größtenteils verkehrsfrei.
*'''Geeignetes Fahrrad: '''Ab Alzey ist ein Alltagsrad mit 3 Gangschaltung ausreichend.
*'''Familieneignung:''' Der Abschnitt Alzey-Ingelheim ist familientauglich.
*'''Inlinereignung:''' Der Abschnitt Alzey-Ingelheim ist durchgängig asphaltiert, betoniert bzw. gepflastert. Die Wegdecke ist zum Teil aber schlecht. Da es sich um landwirtschaftliche Wege handelt sind die Strecken teilweise auch verschmutzt. Fazit: Teilweise fahrbar aber kein Musterweg für Inliner.
== Hintergrund ==
{{mapframe | name = Karte XY-Radweg. Für die Darstellung der Strecke bei den Ebenen "Radwege" anklicken}}
Hintergründe zum Fluss und zur Landschaft siehe auch Wikipediaartikel [[w:Selz|Selz]].
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Alzey ist Knotenpunkt für den regionlen Zugverkehr in Rheinhessen. Es bestehen Verbindungen nach [[Worms]], [[Bingen am Rhein|Bingen]] und [[Mainz]]. Ebenfalls ab Alzey verkehrt ein Dieseltriebwagen bis nach [[Kirchheimbolanden]]. Ein weiterer Bahnhalt für Unterwegs ist Niederolm. In [[Ingelheim]] halten auch Regional-Expresszüge.
=== Mit dem Fahrrad ===
* [[Hiwwel-Route|Hiwwel-Route]] im Süden (Alzey - Framersheim), Mitte (Hahnheim) und Norden (Ingelheim - Rheinufer)
* [[Rhein-Radweg|Rhein-Radweg]] im Norden
=== Auf der Straße ===
Die Selzroute ist ein Streckenradweg. Die Anreise mit dem KFZ ist daher umständlich, da man zurück zum Ausgangspunkt muss.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
[[Bild:Selzquelle_wv_d_schmidt_11_2005.jpg|thumb|330px|Die Selzquelle bei Orbis etwa 5 km nördlich von [[Kirchheimbolanden|Kirchheim-Bolanden]]]].
Obwohl die Quelle architektonisch etwas verbaut ist, bietet sie eine interessante Funktion: Über die Handpumpe, die Mitte links im zu Bild finden ist, kann man Wasser in die Quelle pumpen. Diese ist rechts unten im Bild zu sehen (erinnert eher an einen schnöden Wasserablauf).]]
=== Etappe - Alzey ===
Nach der Anreise mit der Bahn nach {{Marker | name = Kirchheimbolanden | type= town | wikidata = Q200763}} bietet sich ein Besuch der sehenswerten Stadtmitte an (hübsche barocke Altstadt und Reste der Stadtmauer).
Die Selz selbst entspringt nördlich von {{Marker | name = Kirchheimbolanden | type= town | wikidata = Q200763}} bei Orbis. Orbis erreicht man von Kirchheim-Bolanden über ruhige, aber bergige Landstraßen. Diese Strecke besitzt seit 2009 auch eine Radwegweisung.
* '''Orbis''' − Beginn des Selztal-Radweges. Die {{Marker | name = Selzquelle | type= spring | lat = 49.69592|long = 7.99855}} ist am östlichen Ortsrand.
* '''Mauchenheim'''
* {{Marker | name = Alzey | type= town | wikidata = Q450726}} − Hier bietet sich eine Pause in der gemütlichen Fußgängerzone an.
=== Etappe Alzey - Ingelheim: 55 km ===
42 km Radwege; 12,5 km innerorts ohne Radwege; 0,5 km außerorts ohne Radwege
'''Höhenmeter''': 270 Hm rauf − 355 Hm runter
;Achtung: Seit April 2024 bis voraussichtlich Herbst 2025 gibt es eine Umleitung zwischen Alzey und Framersheim. Da der dortige Streckenabschnitt aufgrund von Bauarbeiten im Alzeyer Industriegebiet gesperrt ist, der Radweg wird aber in dessen Rahmen ausgebaut.
* Nach [[Alzey]] erlebt man Rheinhessen pur.
* Hinter {{Marker | name = Gau-Odernheim | type= town | wikidata = Q653864}} muss man die "Ausläufer" des Petersbergs bezwingen (ca. 30 - 40 m hoher Hügel). Wer möchte, kann auch zum Gipfel auffahren. Der {{Marker | name = Petersberg| type= viewpoint| wikidata = Q2079551}} ist einer der schönsten Aussichtspunkte an der Strecke. Räder mit elektronischer Unterstützung können an der Petersberghalle im Ort "betankt" werden, an den Schließfächern der Ladesäule besteht auch die Möglichkeit sein Mobiltelefon aufzuladen. Entsprechende Ladekabel und bei den Rädern entsprechende Ladegeräte sind selbst mitzubringen, es wird lediglich die Steckdose / USB-Schnittstelle zur Verfügung gestellt.
* Hinter dem schmucken {{Marker | name = Bechtolsheim | type= village | wikidata = Q554268}} beginnt bis Friesenheim ein landschaftlich besonders schöner Abschnitt.
* Nördlich von '''[[Friesenheim]]''' gibt es am ''Radwegekreuz'' die "Qual der Wahl". Auf einer ehemaligen Bahnstraße erreicht man über den [[Amiche|Amiche-Radweg]] [[Nierstein]] am Rhein. Der gleiche Radweg führt ab '''Selzen''' zum Teil ebenfalls als Bahntrassenradweg nach Bodenheim, von wo man über die [[Rheinterrassenroute]] und den [[Rhein-Radweg|Rheinradweg]] [[Mainz]] erreicht.
*{{Marker | name = Nieder-Olm | type= village | wikidata = Q552643}}
*'''Elsheim-Stadecken'''
*'''Schwabenheim'''
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Ab Schwabenheim geht es auf der Strecke der ehemaligen Kleinbahn nach Ingelheim weiter.
* '''Großwinternheim''' mit Selztaldom
[[Datei:Selz-Muendung.JPG|mini|Unspektakulär: Die Mündung der Selz in den Rhein]]
*{{Marker | name = Ingelheim| type= town | wikidata = Q159548}}
** → Ober-Ingelheim · Burgkirche (ev.) mit Wehranlage, Zwingergelände mit dem Malakoffturm <br> Um in den Ortsteil zu gelangen sollte man vor dem Ort den rechten Weg der [[Hiwwel-Route]] nehmen. Diese Route führt auch weiter zur Kaiserpfalz in Nieder-Ingelheim.
** → Nieder-Ingelheim · Kaiserpfalz
** Frei-Weinheim (früher Ingelheim-Nord) · Hafen mit Autofähre über den [[Rhein]] nach [[Oestrich-Winkel]] <br> Kurz vor dem Ingelheimer Hafen mündet die Selz in den Rhein. Wer möchte kann mit der Fähre in den [[Rheingau]] übersetzen und die Tour hier gemütlich ausklingen lassen.
Neben der Stadtbesichtigung von Ingelheim ist für Museumsfreunde ein Abstecher in das hübsche [[Gau-Algesheim]] interessant. Auf Schloss Ardeck lädt das [https://www.fahrradmuseum-rheinhessen.de Rheinhessische Fahrradmuseum] zum Besuch ein.
== Weitere Übernachtungsorte ==
* [[Bad Kreuznach]]
* [[Bingen am Rhein|Bingen]] - etwa 10 km rheinabwärts ab Ingelheim
== Ausflüge ==
* [[Rhein-Radweg|Rheinradweg]] · nach [[Bingen am Rhein|Bingen]] und nach [[Mainz]]
== Literatur- und Kartenhinweise ==
* Bikeline-Radatlas "Rheinhessen" M 1:75000 - siehe [https://www.esterbauer.com Verlag Esterbauer]
== Weblinks ==
'''Zur Strecke:'''
* '''Übersicht "Radrouten Rheinhessen" mit Karte auf [http://www.rheinhessen.de/radfahren.html Rheinhessen.de]''' - offizielle regionale Gemeinschaftseite von Rheinhessen-Touristik, Rheinhessenwein e.V. und Rheinhessen-Marketing e.V.
* Selztal-Radweg auf [http://cms.radwanderland.de/cgi-bin/cms?_SID=988209a8804887a0c71235f90f339195e075700c00064236924997&_bereich=artikel&_aktion=detail&idartikel=100436&_sprache=rheinhessen '''Radwanderland.de'''] - offizielle landesweite Radseite
'''Allgemein:'''
* [https://www.rheinhessen.info '''Rheinhessen-Touristik'''] - offizielle regionlale Seite
* [http://www.meinselztal.de '''Verkehrsverein Selztal'''] - lokale Seite für das untere Selztal
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radrouten in Rheinland-Pfalz}}
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
fxknm2ftfrnz2xgyu8n7enu1iro8c5q
1769021
1769020
2026-04-16T14:27:31Z
Dirk Schmidt
15181
/* Hintergrund */
1769021
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Rheinland-Pfalz}}
Wer '''[[Rheinhessen]]''' kennenlernen möchte, sollte das Selztal befahren.
Der Radweg führt durch die liebliche Weinbauregion über [[Alzey]] nach '''[[Ingelheim am Rhein]]'''.
[[Bild:Rheinhessen-selztal-bei-dolgesheim-d-schmidt-10-2002.jpg|thumb|380px|Blick in das Selztal bei Dolgesheim. Am Horizont ist oberhalb des [[Rheingau]]s der [[Taunus]] zu erahnen]]
[[Image:Selztalradweg Logo 059-dzh.jpg|right|120px]]
== Streckenprofil ==
*'''Länge: 65 km''' (ab der Quelle bei Orbis, ab Alzey 55km)
*'''Ausschilderung:''' Der Radweg ist durchgängig mit großen Zwischenwegweisern ausgeschildert, die in der Regel gut sichtbar aufgehängt sind. Das Logo ist ein grüner Frosch.
*'''Steigungen:''' größere Hügel oberhalb von Alzey; ab Alzey eben, bis auf kleine Ausnahmen.
*'''Wegzustand:''' Seit 2008 ist der Radweg vollständig bituminös befestigt (Asphalt oder Beton).
*'''Verkehrsbelastung: '''Die gesamte Strecke ist größtenteils verkehrsfrei.
*'''Geeignetes Fahrrad: '''Ab Alzey ist ein Alltagsrad mit 3 Gangschaltung ausreichend.
*'''Familieneignung:''' Der Abschnitt Alzey-Ingelheim ist familientauglich.
*'''Inlinereignung:''' Der Abschnitt Alzey-Ingelheim ist durchgängig asphaltiert, betoniert bzw. gepflastert. Die Wegdecke ist zum Teil aber schlecht. Da es sich um landwirtschaftliche Wege handelt sind die Strecken teilweise auch verschmutzt. Fazit: Teilweise fahrbar aber kein Musterweg für Inliner.
== Hintergrund ==
{{mapframe | name = Karte Selztal-Radweg. Für die Darstellung der Anschlussstrecken bei den Ebenen "Radwege" anklicken.}}
{{Mapshape|wikidata=Q1112609|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
Hintergründe zum Fluss und zur Landschaft siehe auch Wikipediaartikel [[w:Selz|Selz]].
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Alzey ist Knotenpunkt für den regionlen Zugverkehr in Rheinhessen. Es bestehen Verbindungen nach [[Worms]], [[Bingen am Rhein|Bingen]] und [[Mainz]]. Ebenfalls ab Alzey verkehrt ein Dieseltriebwagen bis nach [[Kirchheimbolanden]]. Ein weiterer Bahnhalt für Unterwegs ist Niederolm. In [[Ingelheim]] halten auch Regional-Expresszüge.
=== Mit dem Fahrrad ===
* [[Hiwwel-Route|Hiwwel-Route]] im Süden (Alzey - Framersheim), Mitte (Hahnheim) und Norden (Ingelheim - Rheinufer)
* [[Rhein-Radweg|Rhein-Radweg]] im Norden
=== Auf der Straße ===
Die Selzroute ist ein Streckenradweg. Die Anreise mit dem KFZ ist daher umständlich, da man zurück zum Ausgangspunkt muss.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
[[Bild:Selzquelle_wv_d_schmidt_11_2005.jpg|thumb|330px|Die Selzquelle bei Orbis etwa 5 km nördlich von [[Kirchheimbolanden|Kirchheim-Bolanden]]]].
Obwohl die Quelle architektonisch etwas verbaut ist, bietet sie eine interessante Funktion: Über die Handpumpe, die Mitte links im zu Bild finden ist, kann man Wasser in die Quelle pumpen. Diese ist rechts unten im Bild zu sehen (erinnert eher an einen schnöden Wasserablauf).]]
=== Etappe - Alzey ===
Nach der Anreise mit der Bahn nach {{Marker | name = Kirchheimbolanden | type= town | wikidata = Q200763}} bietet sich ein Besuch der sehenswerten Stadtmitte an (hübsche barocke Altstadt und Reste der Stadtmauer).
Die Selz selbst entspringt nördlich von {{Marker | name = Kirchheimbolanden | type= town | wikidata = Q200763}} bei Orbis. Orbis erreicht man von Kirchheim-Bolanden über ruhige, aber bergige Landstraßen. Diese Strecke besitzt seit 2009 auch eine Radwegweisung.
* '''Orbis''' − Beginn des Selztal-Radweges. Die {{Marker | name = Selzquelle | type= spring | lat = 49.69592|long = 7.99855}} ist am östlichen Ortsrand.
* '''Mauchenheim'''
* {{Marker | name = Alzey | type= town | wikidata = Q450726}} − Hier bietet sich eine Pause in der gemütlichen Fußgängerzone an.
=== Etappe Alzey - Ingelheim: 55 km ===
42 km Radwege; 12,5 km innerorts ohne Radwege; 0,5 km außerorts ohne Radwege
'''Höhenmeter''': 270 Hm rauf − 355 Hm runter
;Achtung: Seit April 2024 bis voraussichtlich Herbst 2025 gibt es eine Umleitung zwischen Alzey und Framersheim. Da der dortige Streckenabschnitt aufgrund von Bauarbeiten im Alzeyer Industriegebiet gesperrt ist, der Radweg wird aber in dessen Rahmen ausgebaut.
* Nach [[Alzey]] erlebt man Rheinhessen pur.
* Hinter {{Marker | name = Gau-Odernheim | type= town | wikidata = Q653864}} muss man die "Ausläufer" des Petersbergs bezwingen (ca. 30 - 40 m hoher Hügel). Wer möchte, kann auch zum Gipfel auffahren. Der {{Marker | name = Petersberg| type= viewpoint| wikidata = Q2079551}} ist einer der schönsten Aussichtspunkte an der Strecke. Räder mit elektronischer Unterstützung können an der Petersberghalle im Ort "betankt" werden, an den Schließfächern der Ladesäule besteht auch die Möglichkeit sein Mobiltelefon aufzuladen. Entsprechende Ladekabel und bei den Rädern entsprechende Ladegeräte sind selbst mitzubringen, es wird lediglich die Steckdose / USB-Schnittstelle zur Verfügung gestellt.
* Hinter dem schmucken {{Marker | name = Bechtolsheim | type= village | wikidata = Q554268}} beginnt bis Friesenheim ein landschaftlich besonders schöner Abschnitt.
* Nördlich von '''[[Friesenheim]]''' gibt es am ''Radwegekreuz'' die "Qual der Wahl". Auf einer ehemaligen Bahnstraße erreicht man über den [[Amiche|Amiche-Radweg]] [[Nierstein]] am Rhein. Der gleiche Radweg führt ab '''Selzen''' zum Teil ebenfalls als Bahntrassenradweg nach Bodenheim, von wo man über die [[Rheinterrassenroute]] und den [[Rhein-Radweg|Rheinradweg]] [[Mainz]] erreicht.
*{{Marker | name = Nieder-Olm | type= village | wikidata = Q552643}}
*'''Elsheim-Stadecken'''
*'''Schwabenheim'''
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Ab Schwabenheim geht es auf der Strecke der ehemaligen Kleinbahn nach Ingelheim weiter.
* '''Großwinternheim''' mit Selztaldom
[[Datei:Selz-Muendung.JPG|mini|Unspektakulär: Die Mündung der Selz in den Rhein]]
*{{Marker | name = Ingelheim| type= town | wikidata = Q159548}}
** → Ober-Ingelheim · Burgkirche (ev.) mit Wehranlage, Zwingergelände mit dem Malakoffturm <br> Um in den Ortsteil zu gelangen sollte man vor dem Ort den rechten Weg der [[Hiwwel-Route]] nehmen. Diese Route führt auch weiter zur Kaiserpfalz in Nieder-Ingelheim.
** → Nieder-Ingelheim · Kaiserpfalz
** Frei-Weinheim (früher Ingelheim-Nord) · Hafen mit Autofähre über den [[Rhein]] nach [[Oestrich-Winkel]] <br> Kurz vor dem Ingelheimer Hafen mündet die Selz in den Rhein. Wer möchte kann mit der Fähre in den [[Rheingau]] übersetzen und die Tour hier gemütlich ausklingen lassen.
Neben der Stadtbesichtigung von Ingelheim ist für Museumsfreunde ein Abstecher in das hübsche [[Gau-Algesheim]] interessant. Auf Schloss Ardeck lädt das [https://www.fahrradmuseum-rheinhessen.de Rheinhessische Fahrradmuseum] zum Besuch ein.
== Weitere Übernachtungsorte ==
* [[Bad Kreuznach]]
* [[Bingen am Rhein|Bingen]] - etwa 10 km rheinabwärts ab Ingelheim
== Ausflüge ==
* [[Rhein-Radweg|Rheinradweg]] · nach [[Bingen am Rhein|Bingen]] und nach [[Mainz]]
== Literatur- und Kartenhinweise ==
* Bikeline-Radatlas "Rheinhessen" M 1:75000 - siehe [https://www.esterbauer.com Verlag Esterbauer]
== Weblinks ==
'''Zur Strecke:'''
* '''Übersicht "Radrouten Rheinhessen" mit Karte auf [http://www.rheinhessen.de/radfahren.html Rheinhessen.de]''' - offizielle regionale Gemeinschaftseite von Rheinhessen-Touristik, Rheinhessenwein e.V. und Rheinhessen-Marketing e.V.
* Selztal-Radweg auf [http://cms.radwanderland.de/cgi-bin/cms?_SID=988209a8804887a0c71235f90f339195e075700c00064236924997&_bereich=artikel&_aktion=detail&idartikel=100436&_sprache=rheinhessen '''Radwanderland.de'''] - offizielle landesweite Radseite
'''Allgemein:'''
* [https://www.rheinhessen.info '''Rheinhessen-Touristik'''] - offizielle regionlale Seite
* [http://www.meinselztal.de '''Verkehrsverein Selztal'''] - lokale Seite für das untere Selztal
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radrouten in Rheinland-Pfalz}}
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
6k4puqq6uwkhw959wu1bfjutte63su9
1769135
1769021
2026-04-17T04:58:50Z
RolandUnger
3
+show = copy
1769135
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Rheinland-Pfalz}}
Wer '''[[Rheinhessen]]''' kennenlernen möchte, sollte das Selztal befahren.
Der Radweg führt durch die liebliche Weinbauregion über [[Alzey]] nach '''[[Ingelheim am Rhein]]'''.
[[Bild:Rheinhessen-selztal-bei-dolgesheim-d-schmidt-10-2002.jpg|thumb|380px|Blick in das Selztal bei Dolgesheim. Am Horizont ist oberhalb des [[Rheingau]]s der [[Taunus]] zu erahnen]]
[[Image:Selztalradweg Logo 059-dzh.jpg|right|120px]]
== Streckenprofil ==
*'''Länge: 65 km''' (ab der Quelle bei Orbis, ab Alzey 55km)
*'''Ausschilderung:''' Der Radweg ist durchgängig mit großen Zwischenwegweisern ausgeschildert, die in der Regel gut sichtbar aufgehängt sind. Das Logo ist ein grüner Frosch.
*'''Steigungen:''' größere Hügel oberhalb von Alzey; ab Alzey eben, bis auf kleine Ausnahmen.
*'''Wegzustand:''' Seit 2008 ist der Radweg vollständig bituminös befestigt (Asphalt oder Beton).
*'''Verkehrsbelastung: '''Die gesamte Strecke ist größtenteils verkehrsfrei.
*'''Geeignetes Fahrrad: '''Ab Alzey ist ein Alltagsrad mit 3 Gangschaltung ausreichend.
*'''Familieneignung:''' Der Abschnitt Alzey-Ingelheim ist familientauglich.
*'''Inlinereignung:''' Der Abschnitt Alzey-Ingelheim ist durchgängig asphaltiert, betoniert bzw. gepflastert. Die Wegdecke ist zum Teil aber schlecht. Da es sich um landwirtschaftliche Wege handelt sind die Strecken teilweise auch verschmutzt. Fazit: Teilweise fahrbar aber kein Musterweg für Inliner.
== Hintergrund ==
{{mapframe | name = Karte Selztal-Radweg. Für die Darstellung der Anschlussstrecken bei den Ebenen "Radwege" anklicken.}}
{{Mapshape|wikidata=Q1112609|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
Hintergründe zum Fluss und zur Landschaft siehe auch Wikipediaartikel [[w:Selz|Selz]].
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Alzey ist Knotenpunkt für den regionlen Zugverkehr in Rheinhessen. Es bestehen Verbindungen nach [[Worms]], [[Bingen am Rhein|Bingen]] und [[Mainz]]. Ebenfalls ab Alzey verkehrt ein Dieseltriebwagen bis nach [[Kirchheimbolanden]]. Ein weiterer Bahnhalt für Unterwegs ist Niederolm. In [[Ingelheim]] halten auch Regional-Expresszüge.
=== Mit dem Fahrrad ===
* [[Hiwwel-Route|Hiwwel-Route]] im Süden (Alzey - Framersheim), Mitte (Hahnheim) und Norden (Ingelheim - Rheinufer)
* [[Rhein-Radweg|Rhein-Radweg]] im Norden
=== Auf der Straße ===
Die Selzroute ist ein Streckenradweg. Die Anreise mit dem KFZ ist daher umständlich, da man zurück zum Ausgangspunkt muss.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
[[Bild:Selzquelle_wv_d_schmidt_11_2005.jpg|thumb|330px|Die Selzquelle bei Orbis etwa 5 km nördlich von [[Kirchheimbolanden|Kirchheim-Bolanden]]]].
Obwohl die Quelle architektonisch etwas verbaut ist, bietet sie eine interessante Funktion: Über die Handpumpe, die Mitte links im zu Bild finden ist, kann man Wasser in die Quelle pumpen. Diese ist rechts unten im Bild zu sehen (erinnert eher an einen schnöden Wasserablauf).]]
=== Etappe - Alzey ===
Nach der Anreise mit der Bahn nach {{Marker | name = Kirchheimbolanden | type= town | wikidata = Q200763}} bietet sich ein Besuch der sehenswerten Stadtmitte an (hübsche barocke Altstadt und Reste der Stadtmauer).
Die Selz selbst entspringt nördlich von {{Marker | name = Kirchheimbolanden | type= town | wikidata = Q200763 | show = copy }} bei Orbis. Orbis erreicht man von Kirchheim-Bolanden über ruhige, aber bergige Landstraßen. Diese Strecke besitzt seit 2009 auch eine Radwegweisung.
* '''Orbis''' − Beginn des Selztal-Radweges. Die {{Marker | name = Selzquelle | type= spring | lat = 49.69592|long = 7.99855}} ist am östlichen Ortsrand.
* '''Mauchenheim'''
* {{Marker | name = Alzey | type= town | wikidata = Q450726}} − Hier bietet sich eine Pause in der gemütlichen Fußgängerzone an.
=== Etappe Alzey - Ingelheim: 55 km ===
42 km Radwege; 12,5 km innerorts ohne Radwege; 0,5 km außerorts ohne Radwege
'''Höhenmeter''': 270 Hm rauf − 355 Hm runter
;Achtung: Seit April 2024 bis voraussichtlich Herbst 2025 gibt es eine Umleitung zwischen Alzey und Framersheim. Da der dortige Streckenabschnitt aufgrund von Bauarbeiten im Alzeyer Industriegebiet gesperrt ist, der Radweg wird aber in dessen Rahmen ausgebaut.
* Nach [[Alzey]] erlebt man Rheinhessen pur.
* Hinter {{Marker | name = Gau-Odernheim | type= town | wikidata = Q653864}} muss man die "Ausläufer" des Petersbergs bezwingen (ca. 30 - 40 m hoher Hügel). Wer möchte, kann auch zum Gipfel auffahren. Der {{Marker | name = Petersberg| type= viewpoint| wikidata = Q2079551}} ist einer der schönsten Aussichtspunkte an der Strecke. Räder mit elektronischer Unterstützung können an der Petersberghalle im Ort "betankt" werden, an den Schließfächern der Ladesäule besteht auch die Möglichkeit sein Mobiltelefon aufzuladen. Entsprechende Ladekabel und bei den Rädern entsprechende Ladegeräte sind selbst mitzubringen, es wird lediglich die Steckdose / USB-Schnittstelle zur Verfügung gestellt.
* Hinter dem schmucken {{Marker | name = Bechtolsheim | type= village | wikidata = Q554268}} beginnt bis Friesenheim ein landschaftlich besonders schöner Abschnitt.
* Nördlich von '''[[Friesenheim]]''' gibt es am ''Radwegekreuz'' die "Qual der Wahl". Auf einer ehemaligen Bahnstraße erreicht man über den [[Amiche|Amiche-Radweg]] [[Nierstein]] am Rhein. Der gleiche Radweg führt ab '''Selzen''' zum Teil ebenfalls als Bahntrassenradweg nach Bodenheim, von wo man über die [[Rheinterrassenroute]] und den [[Rhein-Radweg|Rheinradweg]] [[Mainz]] erreicht.
*{{Marker | name = Nieder-Olm | type= village | wikidata = Q552643}}
*'''Elsheim-Stadecken'''
*'''Schwabenheim'''
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Ab Schwabenheim geht es auf der Strecke der ehemaligen Kleinbahn nach Ingelheim weiter.
* '''Großwinternheim''' mit Selztaldom
[[Datei:Selz-Muendung.JPG|mini|Unspektakulär: Die Mündung der Selz in den Rhein]]
*{{Marker | name = Ingelheim| type= town | wikidata = Q159548}}
** → Ober-Ingelheim · Burgkirche (ev.) mit Wehranlage, Zwingergelände mit dem Malakoffturm <br> Um in den Ortsteil zu gelangen sollte man vor dem Ort den rechten Weg der [[Hiwwel-Route]] nehmen. Diese Route führt auch weiter zur Kaiserpfalz in Nieder-Ingelheim.
** → Nieder-Ingelheim · Kaiserpfalz
** Frei-Weinheim (früher Ingelheim-Nord) · Hafen mit Autofähre über den [[Rhein]] nach [[Oestrich-Winkel]] <br> Kurz vor dem Ingelheimer Hafen mündet die Selz in den Rhein. Wer möchte kann mit der Fähre in den [[Rheingau]] übersetzen und die Tour hier gemütlich ausklingen lassen.
Neben der Stadtbesichtigung von Ingelheim ist für Museumsfreunde ein Abstecher in das hübsche [[Gau-Algesheim]] interessant. Auf Schloss Ardeck lädt das [https://www.fahrradmuseum-rheinhessen.de Rheinhessische Fahrradmuseum] zum Besuch ein.
== Weitere Übernachtungsorte ==
* [[Bad Kreuznach]]
* [[Bingen am Rhein|Bingen]] - etwa 10 km rheinabwärts ab Ingelheim
== Ausflüge ==
* [[Rhein-Radweg|Rheinradweg]] · nach [[Bingen am Rhein|Bingen]] und nach [[Mainz]]
== Literatur- und Kartenhinweise ==
* Bikeline-Radatlas "Rheinhessen" M 1:75000 - siehe [https://www.esterbauer.com Verlag Esterbauer]
== Weblinks ==
'''Zur Strecke:'''
* '''Übersicht "Radrouten Rheinhessen" mit Karte auf [http://www.rheinhessen.de/radfahren.html Rheinhessen.de]''' - offizielle regionale Gemeinschaftseite von Rheinhessen-Touristik, Rheinhessenwein e.V. und Rheinhessen-Marketing e.V.
* Selztal-Radweg auf [http://cms.radwanderland.de/cgi-bin/cms?_SID=988209a8804887a0c71235f90f339195e075700c00064236924997&_bereich=artikel&_aktion=detail&idartikel=100436&_sprache=rheinhessen '''Radwanderland.de'''] - offizielle landesweite Radseite
'''Allgemein:'''
* [https://www.rheinhessen.info '''Rheinhessen-Touristik'''] - offizielle regionlale Seite
* [http://www.meinselztal.de '''Verkehrsverein Selztal'''] - lokale Seite für das untere Selztal
<!--{{PortalLink|Portal:Fahrrad}}-->
{{IstIn|Radrouten in Rheinland-Pfalz}}
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
oaiilq74w1rqty1m472fc6i4zgxlrg0
Wikivoyage Diskussion:Beschreibungen von Unterkünften
5
10933
1769011
1768771
2026-04-16T13:48:47Z
RolandUnger
3
/* Ist das noch eine Unterkunft? */ +Meinung
1769011
wikitext
text/x-wiki
== Überarbeitung ==
Ich hab vor kurzem die ersten Unterkünfte in Berlin eingefügt - natürlich falsch :). Jetzt bin ich auf die Vorlage hier gestoßen und sehe, dass Sie noch überarbeitet werden soll. erstmal 2 fragen:
* ich hab woanders dieses Format <sleep></sleep> gesehen. Nicht dass es so toll ist, macht das ganze aber maschinell lesbar - und natürlich einheitlich. Is sowas geplant?
* gerade in Berlin könnte es teilweise schon Sinn machen die PLZ mit anzugeben, da Straßen durch aus mehrmals existieren. Sollten die PLZ's doch lieber generell dazu ?
Ansonsten: Was muss denn noch gemacht werden ?
* Das ganzjährig kann mE auch weggelassen werden, da man dann automatisch davon ausgeht, dass es so ist oder?
* Anleitung, die auch an anderer Stelle schon exisitieren solle es vielleicht geben fürs verlinken bei Ketten bzw. zum generellen Umgang mit Hotelketten.
* ein technisches Beispiel ist glaub ich nicht von Nöten, ich hätte lieber was zur Qualitätsbeschreibung - was ist erlaubt - was nicht ? - Vor allem wenns mal negativ ist.
:Schau Dir mal [[Vorlage:VCard]] an. Die ist für solche Beschreibungen gedacht. Eigentlich wollen wir so alle Adressen erfassen, weil sie genau damit maschinell verarbeitbar ist. --[[Benutzer:(WV-de) Der Reisende|(WV-de) Der Reisende]] 07:26, 2. Jul. 2007 (CEST)
:: hui. seh ich zum ersten Mal. Aus IT-Sicht würd ich das ja für riskant halten. Ist das irgendwozu kompatibel, RFC-mäßig ?, ich hätt jetzt eher was XML-ähnliches erwartet - aber gut.. eine Regel ist besser als keine Regel. schön find ich dass es quasi unendlich erweiterbar und übersetzbar ist. Ich geb mir Mühe.... Ich glaub aber nich, dass WV-Neuling das für praktisch halten würden :)..
vielen Dank
--[[Benutzer:(WV-de) SonarTom|(WV-de) SonarTom]] 01:00, 3. Jul. 2007 (CEST)
:::Gibt es einen RFC für Visitenkarten? Aber jetzt ernsthaft: Die Mediawiki-Software hat ein standardisiertes Format für die Benutztung von Vorlagen, eben dieses. Die Namen der Keys hängen natürlich von der Vorlage selbst ab. Bei WT werden selbst definierte, XML-artige Tags benutzt. Das ist allerdings eine Evan-Erweiterung. Ich glaube gar nicht, dass man damit so viel mehr gewinnt, als wenn man einfach die in der Mediawiki-Syntax vorgesehnen Vorlagen-Einbindungen verwendet. -- [[Benutzer:Hansm|Hansm]] 17:52, 4. Jul. 2007 (CEST)
ok. Wusste nicht, dass das ein Teil von MediaWiki ist. Ja dann ganz klar: Nutzen.
--[[Benutzer:(WV-de) SonarTom|(WV-de) SonarTom]] 13:10, 5. Jul. 2007 (CEST)
== Hinweise für Schwule/Lesben ==
Vielleicht sollte man ergänzen, dass ggf. dazu auch ''Sicherheitshinweise'' geschrieben werden sollten (Thema: Verhalten in der Öffentlichkeit und Schwulenfeindlichkeit im ehem. Ostblock, Arabien, ...)!?--[[Benutzer:Mideal|Mideal]] ([[Benutzer Diskussion:Mideal|Diskussion]]) 14:45, 7. Okt. 2013 (CEST)
== „Anmerkungen” ==
Dringend nötig erscheint ein weiterer Parameter „Anmerkungen“ oder „Bemerkungen“ für freien text, da sich besonders in Dritte Welt-Ländern nicht alle Unterkünfte in ein rigides Schema pressen lassen, andrerseits eine mit in die Adresse gequetschte Bemerkung den logischen Fluß zerstört. Ich hätte z.B. kürzlich gehabt „Plumopsklo im Hof“ und „Jurte als Übernachtungsmöglichkeit daneben.“ --[[Benutzer:Zenwort|Zenwort]] ([[Benutzer Diskussion:Zenwort|Diskussion]]) 16:12, 3. Okt. 2014 (CEST)
::Bitte entschuldige, ist unser Fehler. Diese Seite müsste dringend überarbeitet werden, werde mich im Laufe der nächsten Tage mal darum kümmern. Inzwischen ist das in der [[:Vorlage:VCard]] untergebracht, einer der Parameter ist „|description=“, in ihm kann der freie Text untergebracht werden. Einige Autoren schreiben solche Anmerkungen auch einfach dahinter. Nur die Doku, darum hat sich noch niemand gekümmert. Deshalb danke für deinen Hinweis. -- [[Benutzer:Balou46|Balou46]] ([[Benutzer Diskussion:Balou46|Diskussion]]) 16:32, 3. Okt. 2014 (CEST)
== Preisklassen ==
Mich würde es freuen, wenn man eine grobe Leitlinie hat, wie man Unterkünfte in den Preisklassen einsortieren kann. Ich weiß, dass dies aufgrund verschiedener Kaufkräfte in unterschiedlichen Ländern schwierig ist und das man selbst auch unterschiedliche Vorstellungen von "günstig" und "teuer" hat, aber ich denke, dass dies doch erwähnenswert wäre. --[[Benutzer:Schwabe|Schwabe]] ([[Benutzer Diskussion:Schwabe|Diskussion]]) 15:22, 27. Dez. 2014 (CET)
: Hallo [[Benutzer:Schwabe|Schwabe]], du hast recht, die Einteilungen sind manchmal schwer zu unterscheiden, ich bin mir da manchal auch nicht so sicher. Mein Vorschlag: Teile die Unterkünfte so ein wie du es für richtig hälst. Gruß -- [[Benutzer:Bernello|Bernello]] ([[Benutzer Diskussion:Bernello|Diskussion]]) 15:36, 27. Dez. 2014 (CET)
::Bei Unterkünften hat es sich so eingebürgert: Günstig 2-3 Sterne, mittel 3-4 Sterne, gehoben 4 und mehr Sterne, aber ob ein 3-Sterne-Hotel als günstig oder mittel eingestuft wird, hängt auch von seiner Lage etc ab und ist auch immer sehr subjektiv. -- [[Benutzer:Balou46|Balou46]] ([[Benutzer Diskussion:Balou46|Diskussion]]) 16:21, 27. Dez. 2014 (CET)
:::Ich würde im Länderartikel im entsprechenden Abschnitt angeben, in welchem Rahmen sich die Preisklassen bewegen. Hatte das mal für die [[Malaysia#Unterkunft|Unterkünfte in Malaysia]] so gemacht. Im Falle von Restaurants könnte man das ähnlich handhaben. Bei Restaurants kann man das manchmal auch am Ambiente festmachen. Günstig sind in manchen Ländern (z.B. Malaysia, Thailand) die Garküchen und teilweise die Restaurant-Ketten. Das ordentliche Restaurant ist dann Mittel und die wirklich schicken Läden sind dann Gehoben. So habe ich mir das immer eingeteilt - ohne exakte Preisspannen. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 17:33, 27. Dez. 2014 (CET)
:::: Ich danke vielmals für die Antworten! --[[Benutzer:Schwabe|Schwabe]] ([[Benutzer Diskussion:Schwabe|Diskussion]]) 18:14, 27. Dez. 2014 (CET)
== Schreibweise von "Adressen" ==
Hallo,
im Okt. 2020 gab es in der Lounge (siehe: [[Wikivoyage:Lounge/Archiv 2020-12-29#Schreibweise von Adressen in vCards]]) eine Diskussion bzgl. der Schreibweise von Adressen mit einem eindeutigen Ergebnis (=immer komplett!). Ich beobachte immer wieder, dass Adressen in vCards häufig nur aus Straße + Hausnummer bestehen. Selbst hier wird noch dieses Format "vorgegeben". Sollte das nicht überall gleichlautend sein, evtl. auch im vCard-Editor als Beispiel genannt werden? --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 12:52, 16. Sep. 2021 (CEST)
:Es ist hier wie immer. Das ewige Leiden. Wir diskutieren irgendwo und keiner trägt es nach. Ich bin gerade dabei, diese Artikel durchzusehen. Allein Aufgrund von VCard und Wikidata und den neuen Möglichkeiten usw. wird in diesen Artikeln sowieso kaum etwas so bleiben, wie es derzeit ist. Das gerade jetzt hier drin rumformatiert wird ist wahrscheinlich vergebene Liebesmüh. {{s}} Mir fiel nur auf, dass wir bisher noch keinem erklären, wie man Eigenschaften von Objekten ordentlich erfasst. Daher habe ich mich erstmal [[Hilfe:Erstellen einer VCard/Merkmale]] angelegt und ackere mich da durch. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 13:00, 16. Sep. 2021 (CEST)
:{{Ping|Eduard47}}PS: Das "(0)" in der Telefonnummer ist nicht normgerecht, obwohl es im Wiki akzeptiert wird. Siehe auch [[Hilfe:Angabe von Telefonnummern, Währungen und Öffnungszeiten]]. Holt sich die VCard eine Telefonnummer aus Wikidata, steht es auch ohne diese Verkehrsausscheidungsziffer da. Daher tendiere ich in der Vorgabe dazu, dann die normgerechte Schreibweise im Beispiel zu verwenden. Der Hilfeartikel wird eh' noch verlinkt. Aber lassen wir die paar Tage so stehen. Überarbeitet wird es eh' noch grundlegend. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 13:24, 16. Sep. 2021 (CEST)
:: Danke [[Benutzer:DerFussi|Fussi]], dass Du Dich der gesamten Problematik angenommen hast. Meine Ausführungen sollten auch nur eine kleine Hilfestellung sein, keine Kritik! Bei den Adressen scheinen wir uns einig zu sein. Allerdings bin ich bei der Schreibweise der Telefonnummern anderer Ansicht: In [[Hilfe:Angabe von Telefonnummern, Währungen und Öffnungszeiten]] heißt es u. a.: ''"Es wird empfohlen: … die Verkehrsausscheidungsziffer oder Ortsnetzkennzahl einzuklammern, die Ortsnetzkennzahl jedoch geschlossen (also ohne Leerräume) zu halten,"''. Im folgenden heißt es dann zu der Variante ohne (0): ''"normgerecht, aber aber für den Leser schwieriger zu erfassen,"''. Du hast Recht, dass Wikidata die Telefonnummer ohne Verkehrsausscheidungsziffer erfasst, in der vCard wird sie dann aber '''mit''' der (0) angezeigt! Ich glaube, mich an eine Diskussion diesbzgl. mit [[Benutzer:RolandUnger|Roland]] erinnern zu können, finde sie aber nicht wieder. --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 14:00, 16. Sep. 2021 (CEST)
:: Ergänzung (nur zur Info): Gleiches trifft auch für [[Wikivoyage:Beschreibungen von Sehenswürdigkeiten und Aktivitäten]] zu.--[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 14:12, 16. Sep. 2021 (CEST)
:::{{Ping|Eduard47}} Ich habe es extra geprüft, bevor ich dich darauf hinwies. Hier [[Babimost]]. Alle drei Hotels werden komplett von Wikidata befüllt und die VCard stellt alle Telefonnummern ohne die "0" dar. Aus meiner Sicht ist es auch die einzig richtige und auch logische Schreibweise. Dass es schwer lesbar sein soll kann ich ebensowenig nachvollziehen. Den Hilfetext habe ich sogar zusammengeschrieben, aber inhaltlich aus anderen Artikeln und Diskussionen zusammengeklaubt, besten Wissens und Gewissens. Wie gesagt, der Hilfeartikel hält ja alle Möglichkeiten offen und darauf kann man ja auch verweisen. Als Muster für den Artikel würde sicher ein Hotel nehmen, welches komplett auf Wikidata erfasst ist. Ich gehe davon aus, dass dann auch die Schreibweise, ohne die "0" erscheint. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 15:15, 16. Sep. 2021 (CEST)
:::Das mit der Lesbarkeit ist natürlich lediglich persönliches Empfinden meinerseits. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 15:25, 16. Sep. 2021 (CEST)
::::: [[Babimost]] liegt in Polen, vielleicht ist das der Grund. Ich habe in den letzten Monaten sehr viele Daten (auch Telefonnummern) in Wikidata erfasst, fast ausschließlich von Institutionen in Deutschland. Alle werden in WV '''mit''' (0) angezeigt. Auch der vCard-Editor schlägt für Institutionen in Deutschland bei Telefon und Fax die (0) inkl. der Ortsnetzkennzahl sowie erforderlicher Leerstelle danach sehr komfortabel vor. Wenn ich deutsche Tel.- und Faxnummern im vCard-Editor erfassen will, brauche ich nur die vorgegebene Länderkennzahl und die Ortnetzkennzahl anklicken (die "0" kommt automatisch) und kann dann die eigentliche Rufnummer erfassen, ohne jegliche Leerstelle eingeben zu müssen. Das ist doch sehr komfortabel, oder nicht?--[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 15:42, 16. Sep. 2021 (CEST)
:::::: Hmm, keine Ahnung. Ich tippe Telefonnummern nie ein. Ich kopiere sie raus (im Regelfall aus Google-Maps, das sogar ein Kopier-Button dafür hat) und bei Wikidata rein (bzw. in mein Excel-Formular, mit dem ich das ganze Objekt nach Wikidata reinlaufen lasse). Den VCard-Editor benutze ich nur, um die Wikidata-ID anzugeben und den Beschreibungstext einzugeben (maximal noch die Zimmerpreise). Ich kam noch nie auf die Idee eine Telefonnummer manuell einzugeben (allein wegen der Tippfehler). Insofern habe ich mir nie Gedanken darüber gemacht. Mir erscheint es nur logisch, keine "0" zu schreiben, da ich sie ja beim Wählen auch nicht eintippe. Da selbst meine Kontaktliste auf dem Telefon immer nur mit Ländervorwahl abgelegt ist. Benutze sie auch nicht in meinen E-Mail-Signaturen. Ich habe mit dieser (0) de-facto keinen Kontakt mehr, insofern stört sie mich eher, besonders, wenn Ländervorwahl UND die Null in Klammern dasteht, was für mich regelrecht unsinnig ist. Aber wie gesagt, das ist sicherlich bei jedem anders und subjektiv. Es gibt auch sicherlich keinen Grund, das Fass wieder aufzumachen. Es ist ja hier alles erlaubt. Ich hätte mir jetzt als Beispiel ein weltbekanntes Hotel, wie das Raffles in Singapur rausgesucht. Ich gehe mal davon aus, dass dann die "0" fehlt, wenn es länderspezifisch ist. Ich kann ja noch das Adlon dazupacken und auf die Unterschiede hinweisen. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 16:06, 16. Sep. 2021 (CEST)
:::::: PS: Da wir nun beide herumrätseln, was wie warum hier genau so funktioniert, wie es funktioniert, legt es wohl wieder das nächste kleine Dokumentationsdefizit offen. Neuen (und offensichtlich auch alten) Nutzern muss es erklärt werden. [[Vorlage:LinkPhone|Hier]] stehen Beispiele, aber dahin verirrt sich kein normaler User. Wenn wir das herausgefunden haben, ob was und wie länderspezifisch ist, erwähne ich es an mehreren geeigneten Stellen. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 16:27, 16. Sep. 2021 (CEST)
== Abschnitte "Format" und "Letzte Änderung" ==
Zunächst vielen Dank für die hervorragende Überarbeitung des Artikels! Habe dennoch 3 kleine Vorschläge zu dem Abschnitt "Format"
* '''Adresse:''' In Städten und Gemeinden gibt es häufig unter der gleichen PLZ bei identischem Ortsnamen unterschiedliche Stadt- bzw. Ortsteile. Dieses ist aber nicht Bestandteil der Adresse! Sollte man nicht auch in der Wegbeschreibung (bspw. "im OT-Pupsbüttel") hierauf hinweisen?
* '''Preise:''' Bei Unterkünften empfiehlt es sich m. E., den Preis mit dem Hinweis "/Ü" oder "/ÜF" zu ergänzen. Dazwischen gibt es tlw. gewaltige Unterschiede. Das Hotel-Adlon bspw. berechnet 55,- €/Person (!) wenn nicht im Übernachtungspreis enthalten. Auch kann ggf. der Zusatzpreis für Haustiere angegeben werden, Bsp.: (ggf. zus. 15,- €/Hund). Das Hotel-Adlon bspw. berechnet 150,- €/Hund! Auf alle Fälle '''muss''' das Datum "Letzte Änderung" bei Eingabe oder Änderung der Daten aktualisiert werden.
und zum Abschnitt '''"Letzte Änderung"''': Ergänzung gemäß vorgenanntem. --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 13:45, 25. Sep. 2021 (CEST)
:{{Ping|Eduard47}} Können wir gern ergänzen. Das Datum "letzte Änderung" in den VCards hatte ich bewusst aus dem Artikel entfernt. Es liegt im Projektmnamensraum, das heißt diese VCards werden niemals aktualisiert (müssen sie auch nicht) und sollten auch nicht in den Veraltet-Wartungskategorien auftauchen. Schließlich sind sie nur ein Muster. Was die "letzte Änderung" bewirkt ist im Text beschrieben. Woher hast du die Infos zum Glas-Hotel? Ich habe letztens (ok, letzten September) dort übernachtet und hatte weder Minibar, noch Safe. Es gibt auch keinen Biergarten, lediglich Terrassenplätze am Restaurant (Biergarten ist etwas anderes). Kann ich alles nicht nachvollziehen. Aber ich hatte eine eigene Auto-Garage für mein Fahrrad, das passt. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 15:50, 25. Sep. 2021 (CEST)
:: Hallo [[Benutzer:DerFussi|Stefan]], es ging mir bei der "letzten Änderung" nicht um die beiden Muster-vCards, sondern generell um vCards mit Einträgen in den Feldern "geöffnet" und "Preis". Dieses als Service für den Leser, damit er sich keine falschen Hoffnungen macht. Vielleicht sollte man den Autor an dieser Stelle lediglich darauf hinweisen. Das "last edit" beim Beispiel Glas-Hotel habe ich jetzt wieder gelöscht. Die Infos über das Glas-Hotel habe ich ausschließlich von der verlinkten Homepage aus unterschiedlichen Seiten (z.B. [http://glas-hotel.pl/index.php/de/cennik-2/ Ausstattung], bzgl. "Tiere" sogar aus Pkt. 21 der [http://glas-hotel.pl/index.php/de/regulamin-hotelowy-2/ Hotelordnung]. Gruß --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 16:26, 25. Sep. 2021 (CEST)
:: Ergänzung: Das Glas-Hotel hat laut eigener Webseite sowohl einen 3-Sterne wie auch 4-Sterne-Bereich! Vielleicht daher die Unterschiede in der Ausstattung? --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 16:28, 25. Sep. 2021 (CEST)
:::Das Thema "letzte Änderung" hat doch aber sogar einen eigenen Abschnitt. Ja, das mit der Ausstattung ist eh' so eine Sache. Man kann bei den Informationen sowieso nicht unterscheiden, ob jemand nur im Internet recherchiert hat, oder vor Ort auch wirklich geprüft hat. Da ich es selbst inspiziert habe, habe ich mich dieses mal nicht auf die Homepage verlassen (was ich sonst ebenfalls mache, wenn ich Hotels nicht kenne und nur hier recherchiere und nachtrage). Ich weiß gar nicht, ob man auf Wikidata eine persönliche Überprüfung als Qualifikator oder Quelle angeben kann. Aber selbst wenn ich Informationen wieder rauslösche (weil ich mir sicher bin, dass sie nicht stimmen), kann ich auf WD leider keinen entsprechenden Kommentar hinterlassen. Wie gesagt, ich war da 4 Tage, aber egal. Allein das Klicken auf Hompeage und nochmal alles lesen ist mir zu viel der Arbeit. Ich lass es so. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 17:25, 25. Sep. 2021 (CEST)
:::: Die Merkmale "Wifi, Safe, Minibar, Frühstück" waren schon vor meiner Änderung/Erweiterung von heute 12:07 Uhr in der Beschreibung (nicht in den Merkmalen) als Text vorhanden in der vCard in [[Żary]] erfasst von [[Benutzer:DerFussi|DerFussi]] am 30.Mai 2020. --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 19:42, 25. Sep. 2021 (CEST)
:::::Echt? Dann habe ich es wohl (wie immer) abgeschrieben und hätte es längst mal fixen sollen, nach meinem Besuch. Aber das vergesse ich immer. Für mich sah es so aus, als ob es neu ist. Das liegt sicher daran, dass ich längst die Lust daran verloren habe, meine Reiseerfahrung hier einzupflegen. Früher habe ich jede Visitenkarte mitgeschleppt. Nachdem ich feststellen musste, dass mir das alles zu viel wird, habe ich alles eingestellt. Seitdem nutze ich nur noch paar Pausen. Aber ein Hobby ist es nicht mehr, d. h. meine Reiseziele bearbeite ich nicht mehr. Der WV-Namensraum und die Polen-Stubs sind ne schöne Pausenarbeit. {{s}} -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 20:30, 25. Sep. 2021 (CEST)
:::::Dann werde ich das mal fixen. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 20:31, 25. Sep. 2021 (CEST)
{{Ausrückung}}
Morjen. Ich habe deine Hinweise aufgenommen.
* Das mit der Wegbeschreibung stand schon drin. Ich habe die Ortsteile explizit noch mal erwähnt.
* Habe den Hinweis zum Frühstück ergänzt sowie Infos zu möglichen Zusatzkosten.
* Ich sehe es auf keinen Fall so, dass „Datum letzte Änderung“ zwingend befüllt sein muss.
** Zum einen, wenn die VCard nur fixe Daten enthält wie Adresse und Telefonnummer. Da macht es keinen Sinn.
** Auch wenn Preisangaben drin stehen, heißt es nicht, dass sie zum Zeitpunkt der Eingabe nachweislich aktuell sind. Das betrifft den Fall, wenn sie aus einer Internet-Recherche stammen. Ich bin schon über einige Homepages von Hotels und Restaurants gestolpert, die vom Besitzer nicht aktualisiert werden. Anzeigen in Buchungsportalen können auch Sonderangebote oder nicht stornierbare oder begrenzte Kontingent-Preise sein, aber kein Run-In-Preis. Ganz zu schweigen von den Berichten meiner Freunde über Preissteigerungen an der deutschen Küste im Rahmen der Nach-Pandemie-Wiedereröffnung. Ich kann mir Preise, wie in meiner früheren Arbeitsweise in Asien, als ich alles aufhob, merken und komme erst ein Jahr später zum einpflegen. Da könnte ich zwar zurückdatieren, aber das Datum gilt immer für die ganze VCard, nicht nur für die Preise. Das Setzen des Datum der letzten Aktualisierung (ob überhaupt und welches Datum) würde ich immer der Kompetenz des Autoren überlassen. Ich selbst (das ist natürlich subjektiv) mache das nur, wenn ich eine Einrichtung auch selbst besucht habe und weiß, das Homepage und Preise bzw. Bilder auf einem Buchungsportal auch der Wahrheit entsprechen und ich es zeitnah hier einpflege. Natürlich habe ich sicher auch schon automatisch ein Datum eingegeben oder pauschal unbedacht auf den Knopf gedrückt. Aber je mehr Diskussionen ich hier lese oder auch meine eigenen Erfahrungen und Berichte meiner Freunde reflektiere, desto zurückhaltender denke ich über das Datum. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 09:51, 26. Sep. 2021 (CEST)
** Zum anderen würde ich, wenn bereits ein Datum drin steht, es nicht unbedingt aktualisieren, wenn ich nur eine Telefonnummer oder Adressangabe fixe. Dann lasse ich das alte Datum, da es sich wahrscheinlich auf die Preise bezieht (so denn welche drin stehen). Aber wie gesagt, ist meine persönliche Einstellung. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 13:03, 26. Sep. 2021 (CEST)
== Ist das noch eine Unterkunft? ==
Ein anonymer Benutzer fügt seit einiger Zeit in Schweiz-Artikeln Unterkünfte ein, die ich persönlich hier in Wikivoyage nicht erwähnen würde. Allein die Mietbedingungen lassen m.{{nnbsp}}E. keine Nutzung für Touristen zu. Als Beispiel sei hier nur das [https://www.glandon-apartments.ch/baden/villa-zum-schiff/ GLANDON Baden Villa zum Schiff] einer vermutlich schweizerischen Kette genannt. Gleiche Unterkünfte wurden am 15.04.2026 in den Artikeln [[Zürich]], [[Biel]], [[Luzern]], [[Bern]], [[Basel]] eingefügt.<br />
Mietkonditionen: Mindestaufenthalt: 1 Monat; Kündigungsfrist bei unbefristetem Mietverhältnis: 1 Monat, kündbar zu jedem Monatsende; Mietkaution: zwischen 1 und 3 Monatsmieten; Autoabstellplatz: CHF 120 pro Monat.<br />
Ich hatte die Einträge bereits 2mal entfernt, nun sind sie wieder da. Vielleicht gibt es ja Touristen, die mind. einen Monat an einem Ort bleiben wollen. Nur stellt sich mir hier die Frage, ob wir derartige Angebote berücksichtigen wollen. Ich meine NEIN, aber das müssten wir dann auch irgendwo niederschreiben, oder? --[[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 19:07, 15. Apr. 2026 (CEST)
:Ich suche für meine Home-Office-Zeit in Thailand genau sowas - also Bedarf an Monatsmieten sehe ich schon. Ich sehe hier aber eindeutig Eigeninteresse/Werbung. Normalerweise sehe ich über sowas hinweg, wenn jemand seinen Laden platziert - besser als nix und ich kann als WV-Autor auch nicht alles selbst testen. Diese Einträge empfinde ich als [[Wikivoyage:Was_wir_wollen_und_was_nicht#Was_aus_dem_Rahmen_fällt|Werbung]]. Da gibt es nichts niederzuschreiben. -- <span style="font-variant:small-caps">[[Benutzer:DerFussi|Der]][[Benutzer Diskussion:DerFussi|Fussi]]</span> 20:46, 15. Apr. 2026 (CEST)
::Selbst wenn man die Werbung umschreibt und davon einen neutralen Eintrag macht bleibt doch die Frage, ob wir derartige Langzeitunterkünfte wollen oder nicht. [[Benutzer:Eduard47|Eduard47]] ([[Benutzer Diskussion:Eduard47|Diskussion]]) 22:10, 15. Apr. 2026 (CEST)
::: Unabhängig von der massiven Werbung sollten wir Wohnungen und Appartements behandeln wie Ferienwohnungen, also nur, wenn es kaum Alternativen gibt. Auch aufgrund der großen Menge solcher Wohnungen sollten wir uns beschränken. Wir haben dann immer wieder das Problem, dass es widersprüchliche Auslegungen gibt, die nur Diskussionen und Streit hervorrufen. Zumindest in den deutschsprachigen Ländern bekommt man derartige Wohnungen bei vielen örtlichen Wohnungsvermietern und bnb, die man im Internet finden kann, so dass wir dieses aufwändige Feld nicht auch noch bedienen müssen. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 15:48, 16. Apr. 2026 (CEST)
1h69co3zbijcbxiv9o2k2hvpi8go4ms
Faro
0
11888
1769114
1743283
2026-04-16T22:42:39Z
~2026-23536-84
58166
Preisupdate
1769114
wikitext
text/x-wiki
{{quickbar Ort
| TouriInfoWeb= [https://www.cm-faro.pt/pt/Default.aspx cm-faro.pt]
| TouriInfoTel=
}}
'''Faro''' ist die Hauptstadt des gleichnamigen Distriktes und der Region [[Algarve]] im Süden von [[Portugal]].
== Hintergrund ==
Faro ist die größte Kreisstadt (municipio) und Hauptstadt (capital) des gleichnamigen Distriktes Faro (Algarve), der südlichsten Region von Portugal auf dem europäischen Festland. Seit 1979 ist Faro Universitätsstadt (Universidade do Algarve). Zum Kreis Faro gehören neben dem Kernort ''Faro (Sé e São Pedro)'' die Orte ''Conceição e Estoi'', ''Montenegro'' und ''Santa Bárbara de Nexe''.
Die Ursprünge der Stadt Faro gehen auf die Phönizier zurück, die im 7. Jahrhundert v. Chr. die Westküste des Mittelmeerraumes besiedelten. Der Name der Ansiedlung war Ossonoba. Als Oppidum Ossonoba wurde es später für die Römer ein wichtiger Handelsplatz für Wein, Fischereiprodukte und Olivenöl. Unter Kaiser Augustus wird die Region zur Provinz Lusitania des Römischen Reiches. Eines der Zeugnisse aus jener Zeit sind die Ruinen von Milreu bei Estoi. Und in São Brás de Alportel finden sich Reste der römischen Heerstraße (Calçadinha Romana), die von Ossonoba nach Norden bis Beja im Alentejo führte.
Unter den Westgoten wird die Stadt in Santa Maria de Ossonoba umbenannt, und 714 beginnt die fünf Jahrhunderte dauernde Herrschaft der Mauren. Der Name Faro geht vermutlich auf Ben Harum zurück, der hier im 11. Jahrhundert ein Fürstentum errichtete. Aus der mit dieser Epoche verbundenen Blütezeit stammen viele kulturelle Errungenschaften.
1249 erobern die Truppen von König Alfonso III die Stadt endgültig von den Mauren. Ein großes Mosaik am Stadttor zur historischen Altstadt, dem Arco do Repouso, zeigt dieses denkwürdige Ereignis. Im 15. Jahrhundert wird das erste in Portugal gedruckte Buch dank der dortigen jüdischen Gemeinde in Faro hergestellt. Die Stadt erhält 1540 das Stadtrecht und wird 1577 anstelle von Silves Sitz des Bischofs.
Das Erdbeben von 1755 und die anschließende Sturmflut übersteht Faro besser als die bisherige Hauptstadt der Algarve, Lagos. Deshalb wird der Regierungssitz im folgenden Jahr hierher verlegt.
Von der Entwicklung des Fremdenverkehrs in der zweiten Hälfte des letzten Jahrhunderts profitiert Faro insbesondere seit der Inbetriebnahme des Flughafens im Jahre 1965, der inzwischen zu den drei größten in Portugal gehört.
== Anreise ==
=== Mit dem Flugzeug ===
Der 1965 eingeweihte Internationale {{marker|type= airport|name = Flughafen Faro|wikidata = Q667001}} am Westrande der Ria Formosa zählt mit über 6 Mio. Passagieren im Jahr zu den drei größten in Portugal. Er wird gerne von Urlaubern für die Anreise zur [[Algarve]] oder dem nahegelegenen spanischen [[Andalusien]] genutzt. Er ist von vielen Metropolen in Europa in ca. 3 Flugstunden zu erreichen. Allerdings ist die Frequenz von Direktflügen in den Wintermonaten teilweise eingeschränkt. Eine Ausweichmöglichkeit sind dann Flüge über Lissabon.
Nachdem man das Flughafengebäude auf der linken Seite verlassen hat, findet man am Ende des Vordaches die Bushaltestelle der Linie 16 nach Faro. Fahrtdauer 20 Minunten. Die Linie 16 fährt fährt von Faro (Terminal Rondoviario, in der Nähe des Bahnhofs) über den Flughafen (Aeroporto) zum Praia Faro (Strand). Eine Fahrt, egal von wo bis wo, kostet 2,85 € und wird direkt beim Busfahrer bezahlt. Der Bus fährt ca. 1 Mal pro Stunde. Die alternative Linie 14 und der Aerobus sind entweder teurer oder fahren seltener.
=== Mit der Bahn ===
Der {{Marker|type = station|name = Bahnhof von Faro|name-local= Estação da Faro|url=https://www.cp.pt/passageiros/pt |lat= 37.0185756|long =-7.939795 | wikidata=Q8779773 }} liegt wenige Gehminuten von der Innenstadt entfernt. Die Strecke ''Linha do Algarve'' wurde bis 2023 elektrifiziert und ausgebaut. Sie führt von Lagos im Westen bis zur spanischen Grenze im Osten der Algarve. Nach Lissabon gibt es 4x täglich eine schnelle Zugverbindung, Fahrzeit über 3–3,5 Stunden.
=== Mit dem Bus ===
Nahe dem Bahnhof liegt das Busterminal von [https://www.eva-bus.com/index.php?lang=uk EVA Transportes], die ein gut ausgebautes Liniennetz an der ganzen Algarve betreiben und bis nach Lissabon und Sevilla in Spanien fahren.
=== Auf der Straße ===
Faro ist über einen mehrspurigen Zubringer an die Autobahn A22 angebunden, die nach Osten ins benachbarte Spanien führt und nach Westen bis Lagos. Nach Lissabon sind es ca. 3 Fahrstunden. Die Maut wird auf der A22 ausschließlich elektronisch erhoben.
=== Mit dem Schiff ===
Faro verfügt über einen kleinen Bootshafen nahe der Altstadt. Wegen der engen und flachen Fahrrinne zwischen den Inseln der Ria Formosa ist eine Zufahrt nur für kleinere Boote möglich.
== Mobilität ==
{{Mapframe|37.01711|-7.93158}}
In der Innenstadt und der Umgebung verkehren verschiedene Buslinien, die Linien 14 und 16 führen auch zum Flughafen.
Zu den benachbarten Inseln Ilha da Barreta (Ilha Deserta) und Ilha da Culatra gibt es eine Fährverbindung.
== Sehenswürdigkeiten ==
'''Die historische Altstadt von Faro:'''
* {{vCard|name=Arco da Vila|type=see|wikidata=Q11906389|description=Stadttor, das Wahrzeichen der Stadt aus dem 18. Jahrhundert. Schönstes der Stadttore. Nebenan findet man die Tourismusinformation mit aktuellen Veranstaltungen, Ausflugsinformationen und Bahn-/ Buslinienplänen.}}
* {{vCard|name=Largo da Sé|type=cathedral|description=Platz vor der Kathedrale von Faro in der Altstadt}}
* {{vCard|type=town hall |name=Câmara Municipal |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Altes Rathaus.}}
* {{vCard | name = Paco Episcopal | type = palace | lat = 37.01384 | long = -7.93504 | description = Bischofspalast.
}}
=== Kirchen und Klöster ===
* {{vCard|name=Kathedrale|type=cathedral|wikidata=Q648397|description=Aus dem 13./14. Jahrhundert. Die Kathedrale steht auf einem Hügel in der Altstadt. Vom Glockenturm toller Blick über Faro|price=5 €|hours=Mo - Fr 10 - 17; Sa 9:30 - 13:00}}
** {{vCard | name = Nossa Senhore dos Prazeres | type = cathedral | description = Barocke Seitenkapelle der Kathedrale: Unsere liebe freudenreiche Frau.
}}
** {{vCard|type=see |name=Große Kirchenorgel |address=|phone=|email=|fax=|url=|hours=|wikidata = Q19297672 |price=|lat=|long= |lastedit=|description=Von 1751.}}
* {{vCard | name = Convento de Nossa Senhora da Assunção | type = cathedral | wikidata = Q17117537 | description = Kloster Maria Himmelfahrt.
}}
* {{vCard|name=Capela dos Ossos|type=cathedral|wikidata=Q38857497|lat=37.020485|long=-7.9348381|description=Knochenkapelle. Capela dos Ossos Sie gehört zur Barockkarmeliterkirche Nossa Senhora do Carmo aus dem 18. Jahrhundert. Im rechten Teil der Kirche befindet sich ein Durchgang zum Garten von dort gelangt man zur eigentlichen Knochenkapelle. Sehr beeindruckend.|price=2 €}}
* {{vCard | name = Santo Antonio Kirche | type = cathedral | description = Kirche auf höchster Erhebung im Osten der Stadt. Über Turmaufstieg toller Rundumblick möglich. Öffnungszeiten beachten.
}}
* {{vCard | name = Park Alameda | type = park | description = gepflegter Park mit Pfauen, der nachts geschlossen wird. Im Sommer Aktivitäten der nahegelegenen Bücherei.
}}
* {{vCard | name = Dachterrassen | type = bar | description = Abends bei Sonnenuntergang kann man den tollen Sonnenuntergang besonders von einer der Dachterrassen genießen. Einige befinden sich auf den umliegenden Hotels, eine direkt am Wasser auf dem gelbem Museum. Zugang auf der rechten Seite.
}}
<!--=== Burgen, Schlösser und Paläste ===-->
<!--=== Bauwerke ===-->
<!--=== Denkmäler ===-->
=== Museen ===
* {{vCard|type=museum |name=Museu Arqueologico |address=im Convento de Nossa Senhora de Assunco |phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit= |description=}}
** {{vCard|type=see |name=Ozeanmosaik |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard | name = Museu Marítimo Almirante Ramalho Ortigão | type = museum | lat = 37.01639 | long = -7.937494
}}
=== Sonstiges ===
<!--=== Straßen und Plätze ===-->
<!--=== Parks ===-->
<!--=== Verschiedenes ===-->
* {{vCard | name = Palácio de Estói | type = palace | wikidata = Q10344021 | alt = Casa de Estói, Quinta de Estói | description = Palast im Stil des Rokoko mit Elementen des Barock und Klassizismus. In dem Palast ist die Pousada Palácio Estói.
}}
* {{vCard | name = Ruínas romanas de Milreu | type = archaeological site | wikidata = Q429318 | description = Freilichtmuseum,in der Nähe der Gemeinde Estoi gelegen
}}
== Aktivitäten ==
An der Seeseite der vorgelagerten Inseln Ilha de Faro und Ilha da Barreta liegen kilometerlange Sandstrände hinter einer schönen Dünenlandschaft. Die Lagune eignet sich für zahlreiche Wassersportaktivitäten und ist ein lohnendes Ziel für Ausflüge mit dem Boot, um die reiche Fauna und Flora der Ria Formosa zu erkunden. Im Hafen von Faro am Jardim Manuel Bivar können nur kleinere Boote anlegen, da die Höhe der Zufahrt durch das Bahngleis der Linha do Algarve eingeschränkt ist.
Das {{marker|type = stadium|name = Estadio do Algarve |wikidata = Q646151 }} mit einem Fassungsvermögen von über 30.000 Zuschauern, unweit der Autobahn A22 zwischen Loulé und Faro gelegen, wurde eigens für die UEFA Fußball Europameisterschaft 2004 errichtet. Hier finden jährlich die wichtigsten Spiele des Algarve Cup, dem bedeutendsten Turnier im internationalen Frauenfußball außerhalb der Welt- und Europameisterschaften, statt. Es ist auch das Stadion der Nationalmannschaft von Gibraltar.
Die im Nachbarkreis Loulé gelegenen Golfresorts Quinta do Lago, Vale do Lobo und Vilamoura haben den Ruf der Algarve als eine der weltweit besten Golfdestinationen begründet.
Faro hat mit dem Moto Clube de Faro eine sehr lebendige Biker Szene. Die Stadt nennt sich selbst Hauptstadt des Motorradfahrens.
== Einkaufen ==
Am Ortseingang von Faro liegt das Forum Algarve, eines der größten Einkaufszentren der ganzen Algarve. Es ist täglich geöffnet und bietet auf zwei Ebenen eine reiche Auswahl an Geschäften und Restaurants und einen ausgezeichneten Supermarkt. Das kostenlose Parkplatzangebot ist großzügig.
Fangfrische Fische und Meeresfrüchte kauft man am besten frühmorgens in der Markthalle (Mercado Municipal) in der Stadtmitte. Das Gebäude beherbergt auch das hochmoderne Bürgerbüro (Loja do Cidadão) mit zahlreichen öffentlichen Dienstleistungen unter einem Dach und einer großen Tiefgarage.
Die Fußgängerzone zwischen dem Jardim Manuel Bivar und dem Stadtzentrum wurde anlässlich der Fußballeuropameisterschaft aufwendig gepflastert und renoviert. Sie lädt mit vielen guten Geschäften zu einem Einkaufsbummel und zum Verweilen in einem der zahlreichen Restaurants ein.
== Küche ==
=== Günstig ===
* {{vCard|type=restaurant |name=Pastelaria Coelho |address=Rua Brites de Almeida 2, 8000-404 Faro |phone=|email=|fax=|url=|hours=8.00–24.00 Uhr |price=Hauptgerichte ca. 15 €|lat=|long=|lastedit=2025-01-01|description=Ordentliches Lokal, nette Bedienung; Ausgezeichnetes Essen, sowohl traditionell als auch international.}}
=== Mittel ===
* {{vCard|type=restaurant |name=Adega Nova |address=Rua Francisco Barreto 24 |phone=|email=|fax=|url=https://restauranteadeganova.com/en/home/ |hours=11.30–23.00 Uhr |price=Hauptgerichte 6-16 € |lat=|long=|lastedit=2025-01-01|description=Gemütliches, nicht zu teures Restaurant mit traditionellen Gerichten.}}
=== Gehoben ===
== Nachtleben ==
== Unterkunft ==
Das Hotelangebot in Faro selbst ist überschaubar. Im benachbarten [[Almancil]] im sog. „goldenen Dreieck„ der Algarve ist das Angebot an Hotels und Ferienwohnungen aller Kategorien besonders groß.Es konzentriert sich auf die beiden Golf- und Ferienresorts [[Quinta do Lago]] und [[Vale do Lobo]].
Man bezahlt eine Übernachtungssteuer vom € 2 (Kinder erst ab 13) für die ersten sieben Nächte eines Aufenthalts. Von November bis Februar halbiert sich der Satz.
=== Günstig ===
* {{vCard|type=hotel |name=1878 Hostel |address=Rua Serpa Pinto n.º29, 8000-431 Faro |phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit= |description=Übernachtung 13 € (Stand März 2017), inkl. Wlan und Frühstück. Mehrbettzimmer, Gemeinschaftsraum- und Küche. Gemeinschaftsbad, Dachterasse. Kürzlich renoviert, Vintage-Look.}}
* {{vCard|type=hotel |name=Residencial Dandy |address=Rua Filipe Alistão 62 |phone=|email=|fax=|url=http://residencialdandy.pt/pt |hours=|price=DZ mit Gemeinschaftsbad und Balkon 35 € |lat=|long=|lastedit=|description=Über mehrere Häuser verteilte Pension mit sehr einfachen Zimmern, deren Einrichtung ziemlich in die Jahre gekommen ist und die mit allerlei Schnickschnack vollgestopft sind. Hat aber trotzdem oder gerade deswegen Charme. Betrunkene Nachtschwärmer, die stundenlang vor dem Fenster herumbrüllen, können die Nachtruhe empfindlich stören. Bahnhof und Busbahnhof sind vor hier in 20 Minuten zu Fuß zu erreichen.}}
<!--
=== Mittel ===
-->
=== Gehoben ===
* {{vCard|type=hotel |name=Hotel Eva | subtype = 4 |address=zentrumsnah direkt am kleinen Yachthafen und am Rande der historischen Altstadt |phone=|email=|fax= |url=http://hotel-eva-faro.h-rez.com |hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=hotel |name=Hotel Faro | subtype = 4 |address=zentrumsnah direkt am kleinen Yachthafen und am Rande der historischen Altstadt |phone=|email=|fax= |url=https://hotelfaro.pt |hours=|price=|lat=|long=|lastedit=|description=Von dort hat man einen herrlichen Blick auf die Lagunenlandschaft der Ria Formosa, die sich bis zum Flughafen Faro erstreckt, sowie über die Dächer der Stadt.}}
* {{vCard|type=hotel |name=Pousada Palacio de Estoi |address=|phone=|email=|fax=|url=https://www.pousadas.pt/de/hotel/pousada-estoi |hours=|price=|lat=|long= |lastedit=|description=Ein Juwel ist die Pousada Palacio de Estoi. Das ehemalige Rokoko Schlösschen des Grafen von Estoi, wenige km nördlich von Faro am Rande des Örtchens Estoi gelegen, wurde nach aufwendiger Restaurierung in eine stilvolle Pousada mit allem modernen Komfort umgewandelt.}}
<!--
== Lernen ==
* {{vCard|type=university |name=Universidade do Algarve |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Universität der Algarve in Faro und Portimão.}}
** {{vCard|type=university |name=Faculdade de Ciências Humanas e Sociais (FCHS) |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit= |description=}}
** {{vCard|type=university |name=Faculdade de Ciências e Technologia FCT) |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
** {{vCard|type=university |name=Faculdade de Economia (FE) |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
** {{vCard|type=university |name=Escola Superior de Educaço e Communicaço (ESEC)|address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit= |description=}}
** {{vCard|type=university |name=Escola Superior de Gestão, Hostelaria e Turismo (ESGHT)|address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit= |description=}}
** {{vCard|type=university |name=Escola Superior de Saude (ESS) |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
** {{vCard|type=university |name=Instituto Superior de Engenharia (ISE) |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
== Sicherheit ==
-->
== Gesundheit ==
Faro verfügt über mehrere Krankenhäuser:
* {{vCard|type=hospital |name=Hospital Distrital de Faro |address=|phone=|email=|fax=|url=|hours=|price=|lat=37.02467746597068|long=-7.928952503443417|lastedit=|description=Bezirkskrankenhaus in der Innenstadt von Faro.}}
* {{vCard|type=hospital |name=Hospital Lusíadas Faro |address=|directions=direkt am Markt|phone=|email=|fax=|url=|hours=|price=|lat=37.01971873918464|long=-7.9296185658461384|lastedit=|description=Ärztehaus und Privates Krankenhaus in der Innenstadt.}}
* {{vCard|type=hospital |name=Hospital Particular do Algarve |address=|phone=|email=|fax=|url=|hours=|price=|lat=37.04553025185382|long=-7.96863060528894|lastedit=|description=Privates Krankenhaus in Gambelas (Faro).}}
== Praktische Hinweise ==
== Ausflüge ==
Mit dem Auto lassen sich fast alle Orte an der Algarve innerhalb von ein bis zwei Stunden erreichen. In einer halben Stunde gelangt man nach [[Tavira]] und zum Traumstrand auf der [[Ilha de Tavira]]. Städteausflüge am besten nicht sonntags oder montags machen, da vieles geschlossen ist.
* Strand: z. B. mit der Fähre ab Altstadt (Porta Nova) zum Praia de Faro. Dort entweder auf der Hauptmeile und nach einem Spaziergang in ruhigerem Bereich den Strand genießen. Wer ein paar Stunden Zeit hat, kann nach Westen laufen und durch die Ria Formasa den Caminho Ludo laufen. Zurück geht es z. B. mit dem Bus Linie 16. Die Bushaltestelle befindet sich aufgrund einer Baustelle an der der Praia Haltestelle bereits vor dem Insel am Kreisverkehr.
* Olhao: Stadt östlich von Faro mit Markthallte am Wasser. Erreichbar in 10 Minunten per Bahn, aber auch per Bus. Von dort mit einer der zahlreichen Boostouren z. B. die Ilha da Culatra erkunden. Touren können an den Ständen am Fähranleger gebucht werden, z. B. 3 Stunden für 30 €. Die Touren richten sich nach Flut und Ebbe. Einmal pro Woche kann auch der Leuchtturm (Farol) als südlichster Punkt Portugals besichtigt werden. Wer etwas Zeit hat, kann im Osten den Ria Formosa Park zu Fuß erkunden. Vom Hafen mindestens 30 Minunten Fußweg einplanen, insgesamt mindestens 2 Stunden. Zu sehen sind Kiefernwälder, Sümpfe, viele Vögel und die Gezeitenmühle. Eintritt 2,80 €
== Literatur ==
== Weblinks ==
* {{Offizielle Webseite}}
{{class-2}}
{{GeoData| lat= 37.01711| long= -7.93158| radius= }}
{{IstInKat|Algarve}}
iez4q2kbm6safimjhij86eobkrwrtrt
Monkey Mia
0
15608
1769005
1469298
2026-04-16T13:16:35Z
Wowo2024
53507
1769005
wikitext
text/x-wiki
{{quickbar table begin|width:220px;}}
{{Quickbar position
| map= au
| maptype=relief
| lat=
| long=
}}
{{quickbar table end}}
'''Monkey Mia''' ist ein Touristen-Resort und befindet sich auf der östlichen Seite der zu [[Westaustralien]] gehörenden Halbinsel [[Shark Bay]], berühmt für seine zahmen Delfine. Diese kommen jeden Morgen ca. gegen 08:00 Uhr, um sich füttern zu lassen.
== Hintergrund ==
In den 1960er Jahren fingen Fischer an die dort lebenden wilden Delphine mit ihren Abfällen zu füttern. Diese gewöhnten sich daran und erschienen darauf regelmäßig. Was noch vor 30 Jahren ein Geheimtipp war ist jetzt leider sehr touristisch. Meist stehen, je nach Saison, 100-600 Touristen im knietiefen Wasser in einer Reihe, um sich das Spektakel ansehen zu können. Ein Ranger läuft diese Reihe entlang und erzählt mit Hilfe eines Megaphons ca. 20 Minuten etwas über die Delphine von Monkey Mia. Berichtet wird von den Jagd- und Lebensgewohnheiten der Delphine im allgemeinen und dann wird noch auf die einzelnen Delphine eingegangen. Die Ranger können die Delphine an ihrer Rückenflosse unterscheiden und haben ihnen sogar Namen gegeben. Danach müssen alle Touristen aus dem Wasser raus und sich auf den Strand stellen, damit dann wenige, von den Rangern ausgesuchte, Touristen die Delphine mit Fischen füttern können.
== Anreise ==
Zu den nördlich oder südlich gelegenen Orten siehe [[Nördliches Westaustralien#Route: Küste des nördlichen Westaustraliens|Nördliches Westaustralien]].
== Gebühren ==
Für die Delphinfütterung muss man nichts zahlen, es kommen lediglich die Übernachtungskosten und die Nationalpark-Gebühren hinzu.
== Aktivitäten ==
== Essen und Trinken ==
== Sicherheit ==
== Weblinks ==
* [http://www.monkeymia.com.au/ Monkey Mia Resort]
* [http://www.calm.wa.gov.au/national_parks/previous_parks_month/monkeymia_reserve.html Nationalpark Monkey Mia]
{{GeoData| lat= -25.79472| long= 113.71722| radius= 5000}}
{{IstInKat|Westaustralien}}
k9649nz8hm3egqpqer715bju5619f1n
West Cork
0
15637
1769036
1644351
2026-04-16T17:24:48Z
Qualitätssicherung
50648
/* Orte */
1769036
wikitext
text/x-wiki
'''West Cork''' liegt in der [[County Cork|Grafschaft Cork]] im [[Südwestirland|Südwesten]] der Republik [[Irland]].
== Regionen ==
* Halbinsel [[Beara]]
* Direkt südlich der Bantry Bay liegt die '''Sheep's Head Peninsula'''.
* Südlich der Sheep's Halbinsel liegt die '''Mizen Peninsula'''.
* Östlich der Stadt Bantry liegen der '''Guagane Forest Park''' und die '''Shehy Mountains'''.
* Ein Teil der Südküste Irlands wird ebenfalls in diesem Artikel beschrieben.
Zu der Region gehören unter anderem die Nebeninseln '''[[Bantry|Whiddy Island]]''', '''Sherkin Island''' und '''Clear Island'''.
== Orte ==
* [[Bantry]]
* [[Castletownbere]], Hafenstadt und bedeutendste Ortschaft auf der Halbinsel [[Beara]]
* [[Glengarriff]], im Norden der Bucht Bantry Bay auf der Halbinsel [[Beara]]
* [[Skibbereen]]
* [[Clonakilty]]
* [[Dunmanway]]
== Weitere Ziele ==
== Hintergrund ==
== Sprache ==
Englisch und Irisch
== Anreise ==
* Fährhafen [[Süd Cork|Cork]]
* Es besteht Fährservice zur '''Sherkin Island''' und zur '''Clear Island'''.
* Flughafen [[Süd Cork|Cork]]
* [[Kerry County Airport]]
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|type=see |name=Bantry House |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|type=island |name=Ilnacullin (Garinish Island) |address=bei [[Glengarriff]] |phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit= |description=}}
== Aktivitäten ==
== Küche ==
== Nachtleben ==
== Sicherheit ==
== Klima ==
== Literatur ==
== Weblinks ==
{{class-2}}
{{GeoData| lat= | long= | radius= }}
{{IstInKat|County Cork}}
1ccmsijbfudt9z7o45xs0aid42n1hv8
Benavente (Spanien)
0
16638
1769092
1497208
2026-04-16T21:00:32Z
Scholless
15050
/* Küche */ gestrafft
1769092
wikitext
text/x-wiki
{{quickbar Ort
| Karte= es
| Namen=
| Bild=
| Lage=
| Provinz= Zamora
| ProvinzLabel=
| Einwohner=
| TouriInfoWeb=
| TouriInfoTel=
}}
'''Benavente''' ist eine Stadt in der autonomen Region Kastilien und León und der [[Zamora (Provinz)]].
== Hintergrund ==
Benavente liegt in der Provinz Zamora der autonomen Region Kastilien und León. Die Stadt wurde unter dem König Ferdinand II wiederbesiedelt. 1167 erhielt sie Foralrechte (Derecho foral = Zivilrecht). Auch die Kirche Santa Maria de Azogue ist sehenswert. Benavente liegt an der [[Via de la Plata|Via de la Plata]].
== Anreise ==
=== Mit dem Flugzeug ===
Der nächste Flughafen ist in Salamanca-Matacan {{marker |type = airport |name = Flughafen Salamanca |wikidata = Q701561 |show = none}}) . Dort gibt es aber nur wenige Verbindungen. Bessere Verbindungen gibt es über den {{marker |type = airport |name = Flughafen Adolfo Suárez Madrid-Barajas |wikidata = Q166276 |show = none}}) und dann mit dem Bus (Fahrtzeit Madrid – Benavente ca. 3 Stunden, Preis knapp 16,00 €).
=== Mit der Bahn ===
=== Mit dem Bus ===
=== Auf der Straße ===
Benavente liegt an der alten Römerstraße [[Via de la Plata|Via de la Plata]]. Die moderne Straße heißt N-630 bzw. A-66.
=== Mit dem Schiff ===
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|type=castle |name=Burg Torra del Carracol |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Im repräsentativsten Gebäude des Orts liegt heute das Parador-Hotel Fernando II. Die Burg wurde auf Geheiß Fernandos II von León im Renaissancestil errichtet und liegt am Rande der ehemals von Stadtmauern eingefassten Stadt. Die breiten Flachbogenfenster erlauben eine schöne Aussicht. Im ersten Stock gibt es ein Speisezimmer für Veranstaltungen mit einer herrlichen Mudéjar-Decke. Die Burg wurde 1808 während des Unabhängigkeitskrieges geschleift.
}}
* {{vCard|type=church |name=Kirche Santa María de Azogue |wikidata=Q5911781 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Die Kirche hat bemerkenswerten Portale mit polychromen, gotischen Skulpturen und verschiedenen Pfeilern.
}}
* {{vCard|type=church |name=Kirche San Juan del Mercado |wikidata=Q5910582 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Die Kirche hat ein ebenso erwähnenswertes Portal.
}}
* {{vCard|type=hospital |name=Piedad-Hospital |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Eine alte Pilgerherberge.
}}
* {{vCard|type=church |name=Iglesia Santa Marta de Tera |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=In romanischem Stil 32 km vom Zentrum entfernt und die ebenfalls romanische Pfarrkirche in Villafafila 28 km.
}}
== Aktivitäten ==
== Einkaufen ==
== Küche ==
=== Gehoben ===
* {{vCard|type=restaurant |name=Restaurant des Paradors |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Das Restaurant bietet eine hervorragende lokale Küche wie z. B. Bacalao a la tranca (Kabeljau-Confit), Reis nach Zamora-Art, Dos y Pingada (Spiegeleier mit Speck), Tocino de Cielo (Eigelb mit Sirup). Es wird ein 4-gängiges Gourmet-Menü für 30,00 Euro (oder 40,00 Euro einschließlich Wein) angeboten. }}
== Nachtleben ==
== Unterkunft ==
<!--evtl. unterteilen in günstig, mittel und gehoben-->
=== Gehoben ===
* {{vCard|type=hotel |name=Parador Fernando II |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Der Parador Fernando II in der Burg Torra del Carracol aus dem 16. Jh. ist das repräsentativste Gebäude der Stadt. Der Parador liegt im Schneckenturm, der als einziges Gebäude der früheren Burg erhalten ist und in einem Neubau. Im Keller des Schneckenturms befindet sich hinter dicken Mauern die Bar und im ersten Stockwerk ein Speisezimmer mit einer alten wunderschönen Holzdecke und anderen alten Dekorationen.}} [[Bild:Benavente Decke verkl.jpg|thumb|right|300px|Mudejardecke im Speisezimmer des Schneckenturms]]
== Sicherheit ==
== Gesundheit ==
== Praktische Hinweise ==
== Ausflüge ==
== Literatur ==
== Weblinks ==
{{Offizielle_Webseite}}
{{class-2}}
{{GeoData| lat= 42.003| long= -5.674| radius= }}
{{IstInKat|Zamora (Provinz)}}
4wmex775c1jjbatts6ariaslzn2ypu4
1769093
1769092
2026-04-16T21:01:02Z
Scholless
15050
/* Unterkunft */ gestrafft
1769093
wikitext
text/x-wiki
{{quickbar Ort
| Karte= es
| Namen=
| Bild=
| Lage=
| Provinz= Zamora
| ProvinzLabel=
| Einwohner=
| TouriInfoWeb=
| TouriInfoTel=
}}
'''Benavente''' ist eine Stadt in der autonomen Region Kastilien und León und der [[Zamora (Provinz)]].
== Hintergrund ==
Benavente liegt in der Provinz Zamora der autonomen Region Kastilien und León. Die Stadt wurde unter dem König Ferdinand II wiederbesiedelt. 1167 erhielt sie Foralrechte (Derecho foral = Zivilrecht). Auch die Kirche Santa Maria de Azogue ist sehenswert. Benavente liegt an der [[Via de la Plata|Via de la Plata]].
== Anreise ==
=== Mit dem Flugzeug ===
Der nächste Flughafen ist in Salamanca-Matacan {{marker |type = airport |name = Flughafen Salamanca |wikidata = Q701561 |show = none}}) . Dort gibt es aber nur wenige Verbindungen. Bessere Verbindungen gibt es über den {{marker |type = airport |name = Flughafen Adolfo Suárez Madrid-Barajas |wikidata = Q166276 |show = none}}) und dann mit dem Bus (Fahrtzeit Madrid – Benavente ca. 3 Stunden, Preis knapp 16,00 €).
=== Mit der Bahn ===
=== Mit dem Bus ===
=== Auf der Straße ===
Benavente liegt an der alten Römerstraße [[Via de la Plata|Via de la Plata]]. Die moderne Straße heißt N-630 bzw. A-66.
=== Mit dem Schiff ===
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|type=castle |name=Burg Torra del Carracol |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Im repräsentativsten Gebäude des Orts liegt heute das Parador-Hotel Fernando II. Die Burg wurde auf Geheiß Fernandos II von León im Renaissancestil errichtet und liegt am Rande der ehemals von Stadtmauern eingefassten Stadt. Die breiten Flachbogenfenster erlauben eine schöne Aussicht. Im ersten Stock gibt es ein Speisezimmer für Veranstaltungen mit einer herrlichen Mudéjar-Decke. Die Burg wurde 1808 während des Unabhängigkeitskrieges geschleift.
}}
* {{vCard|type=church |name=Kirche Santa María de Azogue |wikidata=Q5911781 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Die Kirche hat bemerkenswerten Portale mit polychromen, gotischen Skulpturen und verschiedenen Pfeilern.
}}
* {{vCard|type=church |name=Kirche San Juan del Mercado |wikidata=Q5910582 |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Die Kirche hat ein ebenso erwähnenswertes Portal.
}}
* {{vCard|type=hospital |name=Piedad-Hospital |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Eine alte Pilgerherberge.
}}
* {{vCard|type=church |name=Iglesia Santa Marta de Tera |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=In romanischem Stil 32 km vom Zentrum entfernt und die ebenfalls romanische Pfarrkirche in Villafafila 28 km.
}}
== Aktivitäten ==
== Einkaufen ==
== Küche ==
=== Gehoben ===
* {{vCard|type=restaurant |name=Restaurant des Paradors |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Das Restaurant bietet eine hervorragende lokale Küche wie z. B. Bacalao a la tranca (Kabeljau-Confit), Reis nach Zamora-Art, Dos y Pingada (Spiegeleier mit Speck), Tocino de Cielo (Eigelb mit Sirup). Es wird ein 4-gängiges Gourmet-Menü für 30,00 Euro (oder 40,00 Euro einschließlich Wein) angeboten. }}
== Nachtleben ==
== Unterkunft ==
=== Gehoben ===
* {{vCard|type=hotel |name=Parador Fernando II |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Der Parador Fernando II in der Burg Torra del Carracol aus dem 16. Jh. ist das repräsentativste Gebäude der Stadt. Der Parador liegt im Schneckenturm, der als einziges Gebäude der früheren Burg erhalten ist und in einem Neubau. Im Keller des Schneckenturms befindet sich hinter dicken Mauern die Bar und im ersten Stockwerk ein Speisezimmer mit einer alten wunderschönen Holzdecke und anderen alten Dekorationen.}} [[Bild:Benavente Decke verkl.jpg|thumb|right|300px|Mudejardecke im Speisezimmer des Schneckenturms]]
== Sicherheit ==
== Gesundheit ==
== Praktische Hinweise ==
== Ausflüge ==
== Literatur ==
== Weblinks ==
{{Offizielle_Webseite}}
{{class-2}}
{{GeoData| lat= 42.003| long= -5.674| radius= }}
{{IstInKat|Zamora (Provinz)}}
3mw349r11phnohcvn66h9p8ifze0xil
Salierradweg
0
18074
1769147
1753571
2026-04-17T06:36:17Z
Dirk Schmidt
15181
1769147
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Rheinland-Pfalz}}
[[Datei:150906-Speyer-07.jpg|mini|Dom zu Speyer]]
[[Datei:Wormser Dom Westchor Westtürme.jpg|mini|Wormser Dom]]
Eine Route, die am 15. Juni 2007 eingeweiht wurde, lädt dazu ein die Geschichte der Salier zu entdecken. Als Gemeinschaftsprojekt der Städte [[Bad Dürkheim]], Frankenthal, [[Speyer]] und [[Worms]] sowie des Landkreises Bad Dürkheim und des Rhein-Pfalz-Kreises wurde der 120 km lange Salier-Radweg entwickelt. Ein dazu passender Flyer bietet weitere Informationen.
== Streckenprofil ==
*'''Länge:''' 120 km
*'''Ausschilderung:''' Vorhanden, das Logo zeigt eine gelbe Krone
*'''Steigungen:''' weitgehend eben
* '''Wegzustand:''' weitgehend gut ausgebaut. Zum Teil besitzen Wirtschsftswege ältere Decken.
* '''Verkehrsbelastung:''' außerorts meist verkehrsfrei
* '''Geeignetes Fahrrad:''' Tourenrad mit Gangschaltung
* '''Familieneignung:''' Die Strecke ist geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz radeln können.
* '''Inlinereignung: ''' nein
== Hintergrund ==
{{mapframe}}
{{Mapshape|wikidata= Q1739751|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
Der Salier-Radweg schließt zu einem Rundweg an den vorhandenen Kaiser-Konrad-Radweg an, der bisher schon die Städte Bad Dürkheim und Speyer verbunden hat. Von Speyer geht es über Schifferstadt, Dannstadt-Schauernheim nach Birkenheide/Maxdorf. Dort angekommen kann weiter nach Bad Dürkheim und über die Kaiser-Konrad-Rad-Route wieder nach Speyer geradelt werden. Dieser Teilrundkurs hat eine Länge von etwa 65,5 km.
Es hat die Form einer acht, und durch die Überschneidung in Höhe Birkenheide/Maxdorf, Lambsheim stehen somit zwei Teilstrecken zur Verfügung, die auch unabhängig von einander erradelt werden können und für kürzere Radtouren geeignet sind. Dadurch besteht aber auch die Möglichkeit ab Birkenheide/Maxdorf weiter zu fahren über Lambsheim nach Frankenthal-Flomersheim, Frankenthal, Frankenthal-Mörsch am Roxheimer Altrhein vorbei nach Worms.
In Worms verläuft der Salierradweg am Dom St. Peter vorbei. Der Wormser Dom, auf dem höchsten Punkt der Wormser Innenstadt gelegen, ist das bedeutendste Bauwerk der Wormser Romanik und eng mit dem Namen Bischof Burchards verbunden. Vorbei am Lutherdenkmal führt er über die Bahnstrecke und gelangt an die Pfrimm. Durch das Pfrimmtal führt er gemeinsam mit der [[Hiwwel-Route|Hiwwel-Route]] bis [[Pfeddersheim]], dort zweigt er nach Süden ab, kreuzt den [[Barbarossa-Radweg|Barbarossa-Radweg]] bei [[Heppenheim (Worms)|Heppenheim]], und gelangt über Dirmstein und Lambsheim wieder nach Frankenthal.
Diese Teilrundstrecke hat eine Länge von 54,4 km.
In Frankenthal verläuft der Salier-Radweg wie folgt:
Anschluss an den Rhein-Pfalz-Kreis nach dem Lambsheimer Weiher an der K 6 Richtung Flomersheim. Durch Flomersheim auf der Hauptstraße nach Frankenthal zum Westring. Nach dem Westring über die Carl-Benz-Straße, Industriestraße, K 2 am Wasserwerk Nord vorbei nach Mörsch. In Mörsch über die Straße Am Nussbaum, Kastanienweg, hinten am Friedhof vorbei zu den Kleingärten. Dort links halten und über die landwirtschaftlichen Wege Richtung Roxheimer Altrhein auf das Gebiet des Rhein-Pfalz-Kreises.
Auf der Frankenthaler Strecke gibt es eine Besonderheit. Von der Hauptroute besteht die Möglichkeit einen Abstecher in die Frankenthaler Innenstadt zu machen. Die Innenstadtabzweigungen sind von Flomersheim kommend am Carl-Bosch-Ring/Flomersheimer Straße über die Hans-Kopp-Brücke, Mahlastraße, Speyerer Straße ins Zentrum. Von Mörsch kommend beginnt der Innenstadtabzweig am Westring/Lambsheimer Straße durch die Unterführung am Bahnhof ins Zentrum. Der Radfahrer kann die Fußgängerzone auf der Umfahrungsroute befahren oder durch die Fußgängerzone sein Fahrrad schieben, um die Sehenswürdigkeiten im Stadtzentrum nicht zu verpassen. Hier ist das ehemalige Zuckerfabrikgelände zu nennen, heute mit CongressForum, Musikschule, Volkshochschule und Kinder- und Jugendbüro ?Zuckerfabrik?, das Speyerer Tor aus dem 18. Jahrhundert, der Rathausplatz mit der Ruine des ehemaligen Augustiner-Chorherrenstiftes mit prächtigem romanischem Portal aus dem 12. Jahrhundert, die barocke Dreifaltigkeitskirche und das Erkenbert-Museum mit seiner wertvollen Porzellansammlung der ehemaligen kurfürstlichen Manufaktur aus dem 18. Jahrhundert.
Die Gesamtroute des Salier-Radweg hat die Länge von ca. 120 km.
=== THEMA Salier ===
Die Familie der Herzöge der Salier, die zwischen 1024 und 1125 die deutschen Könige gestellt haben, ist historisch auf das Engste mit dem Raum um Worms, Speyer und Bad Dürkheim verbunden. Hier befanden sich seit der Zeit vor 1000 die Besitzschwerpunkte der Familie, von hier aus entwickelte sich ihre weiträumige Herrschaft über Forsten, Burgen, Klöster, kurz über Land und Leute, in der Region.
Der Wormser Dom wurde schon im 10. Jahrhundert zur ersten Familiengrablege, ein ganz ungewöhnlicher Vorgang in der damaligen Zeit. Die Saliergräber wurden 1906 aufgedeckt und sind begehbar. Zu Beginn der Übernahme der Königsherrschaft ließ Konrad II., der erste Salier auf dem deutschen Königsthron, die Burg Limburg in ein Benediktinerkloster umwandeln, das als Hauskloster der Familie konzipiert war.
Fast gleichzeitig begann der Ausbau der noch sehr bescheidenen Domkirche Speyers. Diese sollte im Laufe des weiteren 11. Jahrhunderts zur Grablege der nun königlichen Familie werden. Die Salier brachten die Stadt Speyer mit dem 1111 geweihten, monumentalen Dom zu einer Hochblüte, so dass die Stadt um 1125 als ‚metropolis Germaniae’ bezeichnet werden konnte.
Die Salier haben das Gesicht der Landschaft im Dreieck der Städte maßgeblich beeinflusst und vielfältige Spuren hinterlassen.
== Vorbereitung ==
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Worms, wie auch Speyer sind an das Deutsche Bahnnetz angeschlossen.
=== Fahrrad ===
Über den [[Rhein-Radweg]] können sowohl Worms wie Speyer erreicht werden.
=== Auto ===
Da es sich um eine Streckentour handelt, am besten mit der Bahn anreisen.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Strecke hat die Form einer Acht.
Städte und Gemeinden an der Route (Auswahl):
* {{Marker | name = Worms | type= city | wikidata = Q3852}}
* {{Marker | name = Frankenthal | type= city | wikidata = Q6905}}
* {{Marker | name = Maxdorf | type= city | wikidata = Q566946}}
* {{Marker | name = Bad Dürkheim | type= city | wikidata = Q22901}}
* {{Marker | name = Haßloch | type= city | wikidata = Q664857}}
* {{Marker | name = Schifferstadt | type= city | wikidata = Q23002}}
* {{Marker | name = Speyer | type= city | wikidata = Q6829}}
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z. B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* [[Rhein-Radweg]] Richtung Mainz und Karlsruhe
== GPS-Daten ==
* Streckenverlauf Salier-Radweg von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=167042&type=relation&map=10.0/49.4759/8.5251 GPX- und KML-Datei auf waymarkedtrails.org]
== Literatur- und Kartenhinweise ==
== Weblinks ==
* [https://www.pfalz.de/de/route/salier-radweg off. Infos auf pfalz.de]
{{IstIn|Radrouten in Rheinland-Pfalz}}
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-2}}
7fkn53jvnebmf6u0ketzxqgixpqe2t0
1769148
1769147
2026-04-17T06:37:23Z
Dirk Schmidt
15181
/* Hintergrund */
1769148
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Rheinland-Pfalz}}
[[Datei:150906-Speyer-07.jpg|mini|Dom zu Speyer]]
[[Datei:Wormser Dom Westchor Westtürme.jpg|mini|Wormser Dom]]
Eine Route, die am 15. Juni 2007 eingeweiht wurde, lädt dazu ein die Geschichte der Salier zu entdecken. Als Gemeinschaftsprojekt der Städte [[Bad Dürkheim]], Frankenthal, [[Speyer]] und [[Worms]] sowie des Landkreises Bad Dürkheim und des Rhein-Pfalz-Kreises wurde der 120 km lange Salier-Radweg entwickelt. Ein dazu passender Flyer bietet weitere Informationen.
== Streckenprofil ==
*'''Länge:''' 120 km
*'''Ausschilderung:''' Vorhanden, das Logo zeigt eine gelbe Krone
*'''Steigungen:''' weitgehend eben
* '''Wegzustand:''' weitgehend gut ausgebaut. Zum Teil besitzen Wirtschsftswege ältere Decken.
* '''Verkehrsbelastung:''' außerorts meist verkehrsfrei
* '''Geeignetes Fahrrad:''' Tourenrad mit Gangschaltung
* '''Familieneignung:''' Die Strecke ist geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz radeln können.
* '''Inlinereignung: ''' nein
== Hintergrund ==
{{mapframe}}
{{Mapshape|wikidata= Q1739751|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
Der Salier-Radweg schließt zu einem Rundweg an den vorhandenen Kaiser-Konrad-Radweg an, der bisher schon die Städte Bad Dürkheim und Speyer verbunden hat. Von Speyer geht es über Schifferstadt, Dannstadt-Schauernheim nach Birkenheide/Maxdorf. Dort angekommen kann weiter nach Bad Dürkheim und über die Kaiser-Konrad-Rad-Route wieder nach Speyer geradelt werden. Dieser Teilrundkurs hat eine Länge von etwa 65,5 km.
Es hat die Form einer acht, und durch die Überschneidung in Höhe Birkenheide/Maxdorf, Lambsheim stehen somit zwei Teilstrecken zur Verfügung, die auch unabhängig von einander erradelt werden können und für kürzere Radtouren geeignet sind. Dadurch besteht aber auch die Möglichkeit ab Birkenheide/Maxdorf weiter zu fahren über Lambsheim nach Frankenthal-Flomersheim, Frankenthal, Frankenthal-Mörsch am Roxheimer Altrhein vorbei nach Worms.
In Worms verläuft der Salierradweg am Dom St. Peter vorbei. Der Wormser Dom, auf dem höchsten Punkt der Wormser Innenstadt gelegen, ist das bedeutendste Bauwerk der Wormser Romanik und eng mit dem Namen Bischof Burchards verbunden. Vorbei am Lutherdenkmal führt er über die Bahnstrecke und gelangt an die Pfrimm. Durch das Pfrimmtal führt er gemeinsam mit der [[Hiwwel-Route|Hiwwel-Route]] bis '''Pfeddersheim''', dort zweigt er nach Süden ab, kreuzt den [[Barbarossa-Radweg|Barbarossa-Radweg]] bei '''Heppenheim''', und gelangt über Dirmstein und Lambsheim wieder nach Frankenthal.
Diese Teilrundstrecke hat eine Länge von 54,4 km.
In Frankenthal verläuft der Salier-Radweg wie folgt:
Anschluss an den Rhein-Pfalz-Kreis nach dem Lambsheimer Weiher an der K 6 Richtung Flomersheim. Durch Flomersheim auf der Hauptstraße nach Frankenthal zum Westring. Nach dem Westring über die Carl-Benz-Straße, Industriestraße, K 2 am Wasserwerk Nord vorbei nach Mörsch. In Mörsch über die Straße Am Nussbaum, Kastanienweg, hinten am Friedhof vorbei zu den Kleingärten. Dort links halten und über die landwirtschaftlichen Wege Richtung Roxheimer Altrhein auf das Gebiet des Rhein-Pfalz-Kreises.
Auf der Frankenthaler Strecke gibt es eine Besonderheit. Von der Hauptroute besteht die Möglichkeit einen Abstecher in die Frankenthaler Innenstadt zu machen. Die Innenstadtabzweigungen sind von Flomersheim kommend am Carl-Bosch-Ring/Flomersheimer Straße über die Hans-Kopp-Brücke, Mahlastraße, Speyerer Straße ins Zentrum. Von Mörsch kommend beginnt der Innenstadtabzweig am Westring/Lambsheimer Straße durch die Unterführung am Bahnhof ins Zentrum. Der Radfahrer kann die Fußgängerzone auf der Umfahrungsroute befahren oder durch die Fußgängerzone sein Fahrrad schieben, um die Sehenswürdigkeiten im Stadtzentrum nicht zu verpassen. Hier ist das ehemalige Zuckerfabrikgelände zu nennen, heute mit CongressForum, Musikschule, Volkshochschule und Kinder- und Jugendbüro ?Zuckerfabrik?, das Speyerer Tor aus dem 18. Jahrhundert, der Rathausplatz mit der Ruine des ehemaligen Augustiner-Chorherrenstiftes mit prächtigem romanischem Portal aus dem 12. Jahrhundert, die barocke Dreifaltigkeitskirche und das Erkenbert-Museum mit seiner wertvollen Porzellansammlung der ehemaligen kurfürstlichen Manufaktur aus dem 18. Jahrhundert.
Die Gesamtroute des Salier-Radweg hat die Länge von ca. 120 km.
=== THEMA Salier ===
Die Familie der Herzöge der Salier, die zwischen 1024 und 1125 die deutschen Könige gestellt haben, ist historisch auf das Engste mit dem Raum um Worms, Speyer und Bad Dürkheim verbunden. Hier befanden sich seit der Zeit vor 1000 die Besitzschwerpunkte der Familie, von hier aus entwickelte sich ihre weiträumige Herrschaft über Forsten, Burgen, Klöster, kurz über Land und Leute, in der Region.
Der Wormser Dom wurde schon im 10. Jahrhundert zur ersten Familiengrablege, ein ganz ungewöhnlicher Vorgang in der damaligen Zeit. Die Saliergräber wurden 1906 aufgedeckt und sind begehbar. Zu Beginn der Übernahme der Königsherrschaft ließ Konrad II., der erste Salier auf dem deutschen Königsthron, die Burg Limburg in ein Benediktinerkloster umwandeln, das als Hauskloster der Familie konzipiert war.
Fast gleichzeitig begann der Ausbau der noch sehr bescheidenen Domkirche Speyers. Diese sollte im Laufe des weiteren 11. Jahrhunderts zur Grablege der nun königlichen Familie werden. Die Salier brachten die Stadt Speyer mit dem 1111 geweihten, monumentalen Dom zu einer Hochblüte, so dass die Stadt um 1125 als ‚metropolis Germaniae’ bezeichnet werden konnte.
Die Salier haben das Gesicht der Landschaft im Dreieck der Städte maßgeblich beeinflusst und vielfältige Spuren hinterlassen.
== Vorbereitung ==
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Worms, wie auch Speyer sind an das Deutsche Bahnnetz angeschlossen.
=== Fahrrad ===
Über den [[Rhein-Radweg]] können sowohl Worms wie Speyer erreicht werden.
=== Auto ===
Da es sich um eine Streckentour handelt, am besten mit der Bahn anreisen.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Strecke hat die Form einer Acht.
Städte und Gemeinden an der Route (Auswahl):
* {{Marker | name = Worms | type= city | wikidata = Q3852}}
* {{Marker | name = Frankenthal | type= city | wikidata = Q6905}}
* {{Marker | name = Maxdorf | type= city | wikidata = Q566946}}
* {{Marker | name = Bad Dürkheim | type= city | wikidata = Q22901}}
* {{Marker | name = Haßloch | type= city | wikidata = Q664857}}
* {{Marker | name = Schifferstadt | type= city | wikidata = Q23002}}
* {{Marker | name = Speyer | type= city | wikidata = Q6829}}
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z. B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* [[Rhein-Radweg]] Richtung Mainz und Karlsruhe
== GPS-Daten ==
* Streckenverlauf Salier-Radweg von Openstreetmap zum Herunterladen als [https://cycling.waymarkedtrails.org/#route?id=167042&type=relation&map=10.0/49.4759/8.5251 GPX- und KML-Datei auf waymarkedtrails.org]
== Literatur- und Kartenhinweise ==
== Weblinks ==
* [https://www.pfalz.de/de/route/salier-radweg off. Infos auf pfalz.de]
{{IstIn|Radrouten in Rheinland-Pfalz}}
[[Kategorie:Radwege in Rheinland-Pfalz]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-2}}
qj16pvu9bn8jsfm8okp93w7i9prk6gc
Diskussion:Rhein-Radweg
1
19097
1768998
1768916
2026-04-16T13:06:03Z
Dirk Schmidt
15181
1768998
wikitext
text/x-wiki
== Steigungen ==
Es heißt: "Ab [[Chur]] in der Schweiz ist die Strecke bis [[Schaffhausen]] weitgehend eben." Ich würde das so verstehen, dass unterhalb von Schaffhausen eher mit Steigungen zu rechnen ist als oberhalb? Wenn es auch eine kleine Schwelle gibt beim Rheinfall,
so gehe ich dennoch von einer weitgehend steigungsarmen Route - zumindest jeweils auf einer Rheinseite - bis nach Rotterdam aus. [[Benutzer:(WV-de) Eifelyeti|(WV-de) Eifelyeti]] 10:27, 6. Jul. 2009 (CEST)
:So klarer ? Auf dem Abschnitt Andermatt bis Chur gibt es größere Steigungen. Ab [[Chur]] in der Schweiz ist die Strecke bis [[Rotterdam]] weitgehend eben. --[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 13:38, 6. Jul. 2009 (CEST)
::Zwischen Schaffhausen nd Basel gibt es eine Stelle in der Schweiz, wo es mal so 100 m rauf geht. -[[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 23:07, 6. Jul. 2009 (CEST)
:::Dann müssen wir das ändern.--[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 23:51, 6. Jul. 2009 (CEST)
Wir hatten ja auch geschrieben: weitgehend eben. Auch am Oberrhein gibt es Steigungen, wenn der Weg vom Tiefgestade zum Hochufer wechselt, vielleicht so etwa 40 m.
Ein Flußtal-Radwanderweg entfernt sich oftmals etwas vom Flußlauf, weil sich Industrieanlagen und touristische Einrichtungen die Uferzone in Beschlag nehmen. Auch gibt es manchmal ökologisch empflindliche Zonen direkt am Ufer. Im Bereich des Hochrhein führt der Rhein an Mittelgebirgsregionen vorbei; daher sind spürbare Steigungen manchmal unvermeidbar.
Dennoch sind die Steigungen unterhalb von Schaffhausen wahrscheinlich harmloser, als die im Bereich des Alpenrhein.[[Benutzer:(WV-de) Eifelyeti|(WV-de) Eifelyeti]] 11:14, 7. Jul. 2009 (CEST)
:Hinter Schaffhausen: "Hinter [[Rheinau ZH]] (391 m) geht es auf den Berghang am Irchel (449 m) und hinab nach Tössegg (346 m). Von jetzt ab haben Sie nur noch leichte Steigungen." [[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 01:43, 8. Jul. 2009 (CEST)
In die Streckenbeschreibung gehört der Hinweis auf die Steigung, wie von Pedelecs umgesetzt. Dies ändert ja nichts an der zusammenfassenden Kurzcharakterisierung als "weitgehend eben".[[Benutzer:(WV-de) Eifelyeti|(WV-de) Eifelyeti]] 13:51, 8. Jul. 2009 (CEST)
== Oberrhein ==
Der Oberrhein geht von Basel bis Bingen/Rüdesheim
Er ist bis auf den nördlichen Bereich von Karlsruhe beidseitig.
Ber Abschnitt "Mainzer Becken (Mainz -Bingen und Mainz-Kastel - Rüdesheim] muss also verlegt werden.
Siehe auch Wikipedia Rheinradweg. [[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 13:49, 19. Jun. 2009 (CEST)
:Stimmt ist ein Fehler. Wäre schön, wenn du das ändern würdest. Gruss. --[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 13:55, 19. Jun. 2009 (CEST)
== Mittelrhein ==
Dieser beginnt erst ab Bingen/Rüdesheim, muss also ein Teil nach oben verschoben werden.
Ist nun dier Genze zum Niederrhein die Landesgrenze zu NRW, Bad Godesberg oder Bonn-Mitte? [[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 13:49, 19. Jun. 2009 (CEST)
:Ich würde Bonn-Mitte nehmen, das ist für Radtouristen sinnvoller als die Landesgrenze --[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 13:52, 19. Jun. 2009 (CEST)
Ich schlage vor, auch hier die geografische Grenze zu wählen: Wenn der Mittelrhein an der Nahemündung beginnt (Bingen / Rüdesheim), dann kann man ihn an der Siegmündung enden lassen, also an der unteren / nördlichen Grenze der Stadt Bonn. Rechtsrheinisch wird dann an der Siegfähre, linksrheinisch bei der Rheinfähre nach Mondorf an den Niederrhein abgegeben. Dafür spricht auch das eindeutig zusammenhängende Panorama am rechten Ufer unterhalb von Siebengebirge / Westerwald. Auch linksrheinisch öffnet sich das Mittelrheintal erst ab Bonn; den Venusberg könnte man als "letzten Eifelberg" wahrnehmen. [[Benutzer:(WV-de) Eifelyeti|(WV-de) Eifelyeti]] 14:45, 19. Jun. 2009 (CEST)
:Die Grenze ist rechts: Bad Honnef und links: Bonn-Bad Godesberg. Ab dort beginnt der Erlebnisweg Rheinschiene. Ganz deutlich zu sehen in den Routenplanern von Hessen und NRW. Da ist beim Rhein-Radweg eine riesen Lücke. [[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 23:11, 6. Jul. 2009 (CEST)
Wenn als Einstiegspunkte Koblenz und Bonn empfohlen werden, ist es eigentlich offensichtlich, dass Koblenz-Bonn ein Fahrtabschnitt sein kann. Wenn WV die Vorgaben der Scheuklappen-Touristiker beachten sollte, müssten Remagen und Honnef als untere Einstiegspunkte empfohlen werden. Übrigens: Hessen verabschiedet sich schon unterhalb von Lorch von der Rheinstrecke. Die Lücke zwischen Hessen und NRW ist also tatsächlich beachtlich (etwa 95 km).
Ich stehe nach wie vor auf dem Standpunkt, dass wir vernünftige Reisen empfehlen sollen und nicht die politischen Vorgaben umsetzen müssen. Eine Mittelrhein-Radtour aus Bingen oder Koblenz ist unvollständig, wenn sie in Rolandseck oder Bad Honnef beendet wird, und das urbane Zentrum am unteren Mittelrhein unbeachtet bleibt.[[Benutzer:(WV-de) Eifelyeti|(WV-de) Eifelyeti]] 10:16, 23. Jul. 2009 (CEST)
== Niederrhein ==
Zwischen Bonn und Duisburg heißt der Rheinradweg: "Erlebnisweg Rheinschiene".
Wie sollen wir das einordnen?
[[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 13:49, 19. Jun. 2009 (CEST)
:Hmm. Gute Frage. Ich würde die Infos trotzdem unter dem Rhein- bzw. Niederrheinradweg ablegen. Hier am besten ein Hinweis bei Niederrhein. --[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 13:58, 19. Jun. 2009 (CEST)
== Niederrheindelta in den Niederlanden ==
Bis Arnheim ist der Rhein-Radweg auf beiden Seiten geführt. Am Arnheim gibt es nur noch einen Weg bis Rotterdam. Wie werden die Alternativrouten bezeichnet? - Hans-Jürgen - [[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 23:15, 6. Jul. 2009 (CEST)
:Keine Ahnung, ich war da noch nicht --[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 23:49, 6. Jul. 2009 (CEST)
==Aus der Louge: Rhein-Radweg --- Anreise - Einstigspunkte - weiter gehts ==
In den letzten Wochen habe ich ein paar neue Radwege angelegt, bei "Thema:Deutschland per Rad" die Flussrouten angelegt und bei "Radrouten in Rheinland-Pfalz" eine Regionalgliederung eingefügt, die dann Dirk für Hessen auch angewandt hatte. Jetzt will ich mir Südhessen und den Rhein-Radweg weiter vornehmen. Er ist nach dem Fulda-Radweg ist zweit-meistbesuchte Radwegbeschreibung mit 10.000 Aufrufen. Die Quallität der Beschreibung ist bis jetzt dürftig, gerade weil es reizvolle Abschnitte und öde Abschnitte gibt. Der Oberrhein ist in weiten Teilen kanalisiert. Der Mittelrhein größtenteils wegen des Autolärm unangenehm. Bei anderen Abschnitten führt der ausgeschilderte Weg weit weg vom Rhein, obwohl es Alternativen gibt.
Diese Information sind für den Interessenten wichtig. Welche will ich befahren, welche lasse ich aus? Das gilt auch für den Lahntal-Radweg. Ich wohne in Wiesbaden, in dieser Gegend kenne ich mich aus. Ich kann also nur eine Teilstrecke aus eigener Erfahrung beschreiben. In Hessen lässt sich vieles aus dem Routenplaner entnehmen, aber nicht alles. Wegen der Beliebtheit dieser Seite sollten wir hier besonders unser Augenmerk richten. Wer kennt sich mit dem Rhein aus und kann etwas beitragen?
'''Struktur des Aufbaus''': Jede Fahrradseite sollte einen "Anreise"-Teil und einen "weiter gehts"-Teil haben. Oft werden viele Einstiegs- und Kreuzungspunkte in die Anreise geworfen. Der Leser wird mit den langen Texten zugemüllt und verliert das Interesse weiterzulesen. Anreisebeschreibungen mit dem Auto halte ich für überflüssig, die meisten haben heute ein Navi. Auch einen Bahnhof kann ich relativ einfach ausfindig machen. Interessant sind die Haltepunkte der Regional-Express-Züge, und wie komme ich vom Bahnhof zum Radweg. In Deutschland wird dieser Weg selten ausgeschildert. Welche ausgeschilderten Fahrradwege kreuzen meine gewünschte Fahradroute? an welcher Stelle soll diese Information stehen. Oben sollte nur das Wichtigste stehen, nur das was für den Anfang der Route von Belang ist.
Sollen die weiteren Einstiegspunkte in die laufenden Streckenbeschreibung eingefügt werden, oder danach als weiteren Münü-Punkt ==Einstiegspunkte== vor dem Münü-Punkt ==weiter gehts==?
Ich finde, hier sollte der Schreiber die Wahl haben, aber oben bei der "Anreise" gehört das nicht hin! Das ist mir beim "Thema:Rhein-Radweg" klar geworden. Ich habe die alte "Anreise" deshalb komplett nach unten verschoben und eine neue Anreise für den Startpunkt Andermatt geschrieben.
Ich bitte um Eure Stellungnahme, damit wir klare Stukturen weiterentwickeln können. Das Wichtige muss immer nach oben! - Hans-Jürgen - [[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 01:09, 6. Jul. 2009 (CEST)
:Hallo Hans-Jürgen das mit den Einstiegspunkten ist ok. Die sind nicht so wichtig. Können ruhig nach hinten. Am besten wir diskutieren mal auf der Seite vom Rhein-Radweg weiter. --[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 12:56, 6. Jul. 2009 (CEST)
:Also: die Fulda ist wohl nur deswegen 1. Stelle, da Sie die Beispielseite für eine fertige Radroute war und noch ist. Der Rhein-Radweg ist im Prinzip damit die wichtigste. Daher ist wäre es sehr schön, wenn Sie verbessert werden könnte.
:Bezüglich der Seitenstruktur gibt es ja noch die Vorlage, die ich mal zusammen mit Putschli (er ist derzeit nicht mehr aktiv hier) aus der Schweiz entworfen hatte.
*[[Wikivoyage:Vorgabe für Radrouten]]
*[[Wikivoyage:Skelett für Radrouten]]
Wir können die gerne ändern, wenn wir beim Rhein-Radweg neue bessere Erkennnisse gewinnen. Allerding ist der Rhein-Radweg auch eine sehr lange Radroute. Grüsse --[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 13:24, 6. Jul. 2009 (CEST)
== Ausgliederung der Schweizer Rhein-Route ==
Den Artikel ''':Thema:Rhein-Route''' gibt es bereits. Er ist der Schweizer Teil des Rhein-Radweges. Dieser Abschnitt ist ausschließlich als '''Nationalradweg 2 - Rhein-Route''' ausgeschildert. Das blaue Europäische Loge des Rheinradweges wird erst nördich von Basel verwendet. · Der jetzige Artikel :Thema:Rhein-Route überschneidet sich völlig mit dem östlichen Abschnitt des Rheinradweges. Für den auf deutscher Seite liegenden Radweg am Bodensee und Hochrhein besteht der Artikel ''':Thema:Rheintal-Weg'''. Also auch hier eine saubere Trennung. Allerding geht nördlich von Basel der Rheintal-Weg gemeinsam mit dem rechtsrheinischen Rheinradweg bis [[Breisach am Rhein]] im [[Kaiserstuhl]].
'''Mein Vorschlag''': Den östlichen Abschnitt des Rehinradweges in die Artikel :Thema:Rhein-Route und :Thema:Rheintal-Weg auszulagern und nur noch Kurzinfos zu hinterlassen, natürlich mit der Verlinkung zu den beiden anderen Rheinradwegen. Der ''':Thema:Bodensee-Radweg''' wird im schweizerischen Abschnitt auch nur kurz gefasst.
'''Folge''': Der Artikel :Thema:Rhein-Route würde dabei zum größenteil überschrieben, die alte Einteilung verschwindet dabei. Beim :Thema:Rheintal-Weg tritt dieser Effekt nicht auf, da dieser Abschnitt kaum Informationen enthält. · · [[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 13:50, 6. Feb. 2010 (CET)
== Km-Angaben ==
In diesem Artikel fehlen genauere Kilometerangaben. Langfristig muss der Artikel geteilt werden. Der schweizerische Abschnitt bis Basel ist doppelt angelegt (siehe Rheinroute).
Wo soll die Kilometrierung beginnen?
* in [[Andermatt]] und dann durchgängig bis Rotterdam?
* in Andermatt (Vorderrhein, Alpenrhein, Bodensee, Hochrhein), [[Basel]] (Oberrhein), [[Rüdesheim]] / [[Bingen]] (Mittelrhein), [[Bonn]] (Niederrhein) und Emmerich / Kleve (Niederländisches Rheindelta)?
* in jedem neuen Abschnitt wie: Basel, Mannheim / Ludwigshafen und Mainz-Kastel / Mainz?
Durch die Doppelwegweisung auf beiden Rheinseiten mit abweichenden Kilometern scheint wohl die Letztere die bessere Lösung zu sein, zumal hinter Karlsruhe und hinter Bingen nur eine Wegweisung vorhanden ist. Beispiel: linksrheinisch: Wörth - Ludwigshafen: 80 km
Die Kilometerangaben in den Überschriften bleibt von der Detail-kilometrierung unberührt.
Höhenmeterangaben unterhalb Basel sind nicht notwendig, da ab hier alle flach ist.
Bei allen anderen Radfernwegen bin ich für eine durchgehende Kilometerangabe.
- - [[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 11:27, 25. Apr. 2011 (CEST)
== Teilung ? /TDM Mai 2011 ==
Eine durchgehende Kilometrierung muß hier nicht unbedingt sein. Im Gegenteil. Ist sehr kompliziert, wenn sich mal was ändert. Dann muß alles z.B. über vier Artikel angepasst werden. Ich kann daher nur davon abraten. Ich glaube auch nicht, das es eine offizielle, durchgehende Kilometrierung gibt. Lasse mich aber gerne eine besseren Belehren. Teilung des Artikels wäre aber sinnvoll in:
*in Alpen- und Hochrhein (bis Basel) -> langfristig evtl. noch in Alpen- und Hochrhein unterteilen.
*Oberrhein
*Mittelrhein
*Niederrhein (Deutschland)
*bzw. Niederrhein (Niederrhein Niederlande)
da bei mir im Ausdrck bereits jetzt 27 Seiten.
Momentan habe ich aber andere Baustellen...also vom mir kommt da die nächste Zeit nichts groß. Ein paar Bilder habe ich aber noch ergänzt. Das war's dann aber. Grundlegend den Artikel erweitern und Teilen - was dringend notwendig ist - werde ich aus Zeitgründen erst einmal nicht. Auch wenn der Artikel jetzt im Mai 2011 auf der Hauptseite ist. Gruß --[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 10:22, 1. Mai 2011 (CEST)
: Ich bin für die Teilung, weiß aber nicht wann ich das machen soll, wird wahrscheinlich erst im Herbst was. Zunächst möchte ich einige „Auflistungsstrecken“ aufwerten, allerdings fehlen mir da die Ortskenntnisse. Von Baden-Württemberg weiß ich, dass der Abschnitt Basel - Staustufe Ifzesheim ziemlich eintönig ist, da der Weg entweder an der begradigten Altrheinrinnsal oder als Hochdamm aufgestaut ist ÷ ursprüngliche Natur: Fehlanzeige. Auf der französischen Seite entfernt sich gleich von der kanalisierten Betonrinne. Meine Empfehlung: Diesen großen Abschnitt auslassen und dafür den Kaiserstuhl genießen. Wie sehen das die anderen Autoren und Leser? · · Gruß Hans-Jürgen · [[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 12:59, 1. Mai 2011 (CEST)
== Einteilung Rheinabchnitte ==
Zukünftigen '''Teilungspunkte''' − Diese sollen hier mal abgeklärt werden
=== 1. Vorder- Alpen- und Hochrhein ===
Vorderrhein, Alpenrhein, schweizerischer Bodenseeabschnitt und Hochrhein sollten vorerst zusammenbleiben. Damit wäre '''Basel''' der '''1. Teilungspunkt.''' Das ist auch der Abschnitt, der von der Thema:Rhein-Route abgedeckt ist, aber völlig unzureichend ist. Mein Vorschlage ist, den entsprechenden Abschnitt vom Artikel Rhein-Radweg in den Artikel Rhein-Route zu kopieren und damit den alten Inhalt außer der Karte zu überschreiben. Dabei könnte der Name Rhein-Route in den Namen '''Vorder- Alpen- und Hochrhein''' oder Alpenrhein und Hochrhein verschoben werden. Was passiert mit dem Artikel Thema:Rheintal-Weg? Dieser Radweg ist von [[Stein am Rhein]] bis kurz vor dem Kaiserstuhl identisch mit dem Rhein-Radweg. Welcher Artikel hat Vorrang und soll ausführlicher beschrieben werden. Da man oft von der rechten zur Linken Seite und umgekehrt wechseln kann, ist es sinnvoll auch beide Seiten in einem Artikel zu beschreiben. So kann man sich die schönere Route auswählen oder für die Rücktour die andere Seite nehmen. Das heißt: in dem Artikel Vorder- Alpen- und Hochrhein müsste die Deutsche Seite des Hochrheins, die überwiegend als Rheintal-Weg ausgeschildert ist, detailiert mit aufgenommen werden.
:völlig unzureichend ? Für mich ist eher das Gegenteil ist der Fall. Im Thema:Rhein-Route stehen recht viele Daten drin die auf jeden Fall erhalten werden sollten. Klar muß der Artikel noch erweiteret und ausformuliert werden. Also nicht einfach überschreiben, sondern besser die Detailinfos, aus dem Artikel Rhein-Radweg (rechts-, linksrheinisch) ergänzen und dann Artikel in z. B. :Thema: Alpen- und Hochrhein-Radweg (länderübergreifend) umbenennen. Die Karte kann man dann ergänzen. --[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 15:57, 1. Mai 2011 (CEST)
:'''Sonst ist Basel als erster Teilungspunkt sinnvoll.''' Wenn es mal mehr wird teilt man halt noch mal zusätzlich am Bodensee. --[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 16:02, 1. Mai 2011 (CEST)
::Der Artikel Rhein-Radweg geht über die Informationen des Artikels Thema:Rhein-Route weit hinaus, was die Streckenbeschreibung betrifft. Die Einteilung ist unterschiedlich, daher entstehen unterschiedliche Daten und viel zu langen Abschnitten. Die Strukturierung kann allerdings beim Rheinradweg verbessert werden. · · [[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 17:36, 1. Mai 2011 (CEST)
=== 2. Oberrhein ===
Der Oberrhein endet in Bingen-Bingerbrück am Binger Loch. Mache lassen ihn auch an der Nahemündung zwischen Bingen und Bingerbrück enden.
Bahnmäßig sind der Hauptbahnhof Mainz und der direkt neben dem Rheinradweg liegende Regional- und S-Bahnhof Mainz-Kastel besser zu erreichen als Bingen Stadt, Bingen Hbf und Rüdesheim.hier endet auch der Main-Radweg. Hier beginnt auch der wunderschöne Rheingauabschnitt und vom radtauglichen Uferweg (nicht Rhein-Radweg) der anderen Seiten hat man wunderschöne Blicke auf den Rheingau. '''Touristisch''' spricht einiges dafür den 2. '''Teilungspunkt''' in '''Mainz''' zu legen. '''Geologisch''' gesehen müsste man den '''2. Teilungspunkt''' in '''Bingen/Rüdesheim''' legen, da auch erst hier das [[Mittelrheintal]] beginnt.
:'''Mainz / Wiesbaden''' ist besser, da hier der Main-Radweg endet (besserer Übergang der Routenbeschreibungen). In der Regel steigen Radreisende auch dort in die Route ein, wenn sie auf mehrtägigen Touren das Mittelrheintal duchfahren. Sonst gibt es natürlich überregional gesehen auch besserer Zugverbindungen nach Mainz/ Wiesbaden, als nach Bingen und Rüdesheim. Geologisch wäre natürlich Bingen richtig, aber wir sind ja ein Reiseführer und nicht die WP. --[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 15:24, 1. Mai 2011 (CEST)
Der Oberrheinabschnitt endet also schon besser in '''Mainz / Wiesbaden''' --[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 15:50, 1. Mai 2011 (CEST)
=== 3. Mittelrhein ===
Der Mittelrhein endet in Bonn-Bad Godesberg und rechtsrheinisch in Bonn-Oberkassel. Gegenüber von Bad Godesberg liegt [[Königswinter]]. Die Bonner Innenstadt liegt eindeutig bereits am Niederrhein.
Ich plädiere den '''3. Teilungspunkt''' in ''' Bad Godesberg/Königswinter''' zu setzen. Bahnmäßig wäre wohl Bonn/Bonn-Beul zweckmäßiger.
:'''Dagegen:''' Auch hier ist das geografische bzw. geologische nicht wichtig. ''Wir sind ein Reiseführer und schreiben für den Reisenden und nicht für ein Lexikon.'' Wie schon oben festgestellt ist Bonn/Bonn-Beul für die Anreise per Bahn zweckmäßiger. Also wird dort analog wie in Mainz/ Wiesbaden geteilt und nicht in irgendeinem Vorort. Der Blick aus Sicht des Reisenden zählt. Von Königswinter bis Bonn-Zentrum sind es eh nur etwa 10 km. Hier gibt es auch direkt eine Rheinbrücke. Das passt auch gut. Ferner mündet nur wenige Kilometer nördlich auch die Sieg in den Rhein. Bonn-Zentrum ist wie Mainz also auch ein guter Ansatzpunkt für die Routenbeschreibungen. '''Unterer Endpunkt des Mittelrhein sollte daher Bonn /Bonn-Beul sein.''' Grüße--[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 15:45, 1. Mai 2011 (CEST)--[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 15:45, 1. Mai 2011 (CEST)
=== 4. Niederrhein ===
Besteht aus dem Erlebnisweg Rheinschiene von Bad Godesberg und [[Bad Honnef]] bis [[Duisburg]] und dem Rheinradweg im Norden von Duisbrg und Emmerich / Kleve.
:Beginn des Artikels zum Niederrhein-Radweg dann in '''Bonn-Zentrum/Bonn-Beul.''' --[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 15:48, 1. Mai 2011 (CEST)
=== 5. Rheindeltaroute (Rijndeltaroute) − Rhein-Maas-Delta ===
An der deutsch-Niederländischen Grenze ändert der Rhein-Radweg seinen Namen und heißt von dort an „Rijndeltaroute“. die Niederländer haben ein völlig anderes Wegweisungssystem. Die Rijndeltaroute führt nur noch an wenigen Punkten an eines der Rheinarme entlang. Die Namen der Rheinarme ändern sich laufend. Oft ist es besser einen Regionalweg zu nehmen, um an das Wasser zu kommen.an jedem Knotenpunkt kann man sich neu entscheiden. Tafeln verschaffen Orientierung. Im niederländischen Rheindelta sind viele Alternativwege möglich. Deshalb halte ich einen eigenen Artikel für das Rheindelta für sinnvoll. Der '''4. Teilungspunkt''' sollte nicht Millingen an der Niederländischen Grenze sein, sondern '''Emmerich/Kleve'''. In Emmerich endet der rechtsrheinische Radfernweg und der Regionalexpress aus Koblenz (3h 05min), also der letzte „Express“-Bahnhof aus Deutschland. Die ICE's nehmen keine Fahrräder mit. Nach [[Arnheim]] wird man über Nebenstrecken umgeleitet.
· · [[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 12:59, 1. Mai 2011 (CEST)
:Schlüssige Argumentation. '''Emmerich/Kleve würde ich dann auch unterstützen.''' Zumal es hier auch eine der seltenen Rheinbrücken gibt, wo man ganz einfach die Seite wechseln kann.--[[Benutzer:(WV-de) Celsius|(WV-de) Dirk]] 15:30, 1. Mai 2011 (CEST)
=== Artikelnamen ===
Vorschlag der Namenwahl der Unterartikel:
* Tema:Rheinradweg/Vorder- Alpen- und Hochrhein: Andermatt − Basel
* Tema:Rheinradweg/Oberrhein: Basel ÷ Mainz
* Tema:Rheinradweg/Mittelrhein: Mainz − Bingen − Bonn
* Tema:Rheinradweg/Niederrhein: Bonn − Duisburg − Kleve / Emmerich
* Tema:Rheinradweg/Rhein-Maas-Delta Rijndeltaroute: Kleve − Arnheim − Rotterdam − Hoek van Holland (Anmerkung: ist zu lang)
· [[Benutzer:(WV-de) Pedelecs|(WV-de) Pedelecs]] 16:53, 1. Mai 2011 (CEST)
== Anmerkung Rhein-Radweg stand 04-2026 ==
Der Artikel ist ein leider großer Sanierungsfall. Ich habe mal angefangen im Bereich Mittelrheintal Ordnung zu schaffen. -> extra Artikel [[Rhein-Radweg (Mittelrhein): Mainz − Bonn]] halbwegs in Form gebracht.
Den Abschnitt Basel - Mainz am Oberrhein sollte man auch auslagern, bzw. es ist wohl einfacher das alles gleich neu in extra Artikel zu schreiben: [[Rhein-Radweg (Oberrhein): Basel − Mainz]]. [[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 05:16, 15. Apr. 2026 (CEST)
So Artikel Halbwegs mit Etappen in Form gebracht. NL-Bereich noch Sanierungsfall, da hat wieder jemand probiert eine Karte in Textform zu fassen... da Blicke selbst ich nicht durch. Das alles gleich noch neu kurz fassen auf die EV15 in NL, das ist auch dort der Rhein-Radweg...--[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 07:25, 16. Apr. 2026 (CEST)
Damit jetzt soweit komplett in sinnvolle Etappen für die Mehrheit der Radreisenden aufgeteilt. --[[Benutzer:Dirk Schmidt|Dirk Schmidt]] ([[Benutzer Diskussion:Dirk Schmidt|Diskussion]]) 15:06, 16. Apr. 2026 (CEST)
8olmagjng2082qvens6qvsachuuwny3
Wolfhagen
0
19617
1769043
1742657
2026-04-16T19:33:32Z
Dirk Schmidt
15181
/* Aktivitäten */ Geänderte vCard für Waldbühne Niederelsungen
1769043
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Wolfhagen''' ist eine Kleinstadt in [[Nordhessen]] etwa 30 km westlich von Kassel gelegen.
Das "Wolfhager Land" liegt landschaftlich schön im [[Naturpark Habichtswald]]. Besonders einen Besuch wert ist die [[Weidelsburg]] oberhalb des Stadtteils Ippinghausen.
== Hintergrund ==
{{Mapframe|51.32809|9.16843|zoom=14|type=geoline}}
Die Stadt wurde 1231 unter Landgraf [[w:Konrad von Thüringen|Konrad von Thüringen]] gegründet.
1264 erhielt Wolfhagen das Stadtrecht. 1302 konnte die Stadtbefestigung fertiggestellt werden.
Im Dreißigjährigen Krieg wurde die Stadt fast vollständig dem Erdboden gleich gemacht.
=== Stadtgliederung ===
Neben der Kernstadt besteht Wolfhagen (mit dem Weiler Elmarshausen) aus elf weiteren Ortsteilen, die sich jeweils als Dorf rund um die Kernstadt erstrecken:
{{3 Spalten|
;{{Marker | type = quarter | name =Altenhasungen|wikidata=Q437180| styles = normal }}
;{{Marker | type = quarter | name =Bründersen|wikidata=Q997012| styles = normal }}
;{{Marker | type = quarter | name =Gasterfeld|wikidata=Q1495410| styles = normal }}
;{{Marker | type = quarter | name =Ippinghausen|wikidata=Q1672275| styles = normal }}
;{{Marker | type = quarter | name =Istha|wikidata=Q1674843| styles = normal }}
;{{Marker | type = quarter | name =Leckringhausen|wikidata=Q1811416| styles = normal }}
;{{Marker | type = quarter | name =Niederelsungen|wikidata=Q1987742| styles = normal }}
;{{Marker | type = quarter | name =Nothfelden|wikidata=Q1688879| styles = normal }}
;{{Marker | type = quarter | name =Philippinenburg und -thal|wikidata=Q1543020| styles = normal }}
;{{Marker | type = quarter | name =Viesebeck|wikidata=Q2523788| styles = normal }}
;{{Marker | type = quarter | name =Wenigenhasungen|wikidata=Q2559437| styles = normal }}.
}}
=== Nachbargemeinden ===
Wolfhagen grenzt im Nordwesten an {{Marker| type = town| name = Volkmarsen|wikidata=Q533535|styles = normal }},
im Norden an {{Marker | type = town| name = Breuna |wikidata=Q503830| styles = normal }},
im Osten an {{Marker | type = town| name = Zierenberg|wikidata=Q199094| styles = normal }} und {{Marker | type = town| name = Habichtswald|wikidata=Q624629| styles = normal }},
im Südosten an {{Marker | type = town| name = Schauenburg|wikidata=Q175419| styles = normal }},
im Süden an {{Marker | type = town| name = Bad Emstal |wikidata=Q291091| styles = normal }} und {{Marker | type = town| name = Naumburg|wikidata=Q641014| styles = normal }},
im Südwesten an {{Marker | type = town| name = Waldeck|wikidata=Q540107| styles = normal }},
sowie im Westen an {{Marker | type = town| name = Bad Arolsen |wikidata=Q498078| styles = normal }}.
== Anreise ==
=== Mit dem Flugzeug ===
* Der nächste Flughafen ist der {{marker|type = airport|name = Flughafen Kassel-Calden |wikidata = Q529143}} etwa 26 km nordwestlich von Wolfhagen, danach folgt der {{marker|type = airport|name = Flughafen Paderborn Lippstadt|wikidata = Q685536}}, der ca. 55 km nordwestlich liegt (gut über die Autobahn A 44 zu erreichen). Die meisten Flugoptionen hat man allerdings vom {{marker|type = airport|name = Flughafen Frankfurt am Main |wikidata = Q46033}}, welcher etwa 220 km entfernt ist.
=== Mit der Bahn ===
* {{vCard | type = train | name = Bahnhof Wolfhagen | wikidata = Q55637849 | description = Wolfhagen liegt an der [[Kurhessenbahn]] [[Korbach]] - [[Kassel]]. Mit dem Regionalexpress bestehen direkte Verbindungen zum ICE in Kassel-Wilhelmshöhe. Des weiteren kann man mit der Regiotram direkt bis ins Stadtzentrum von Kassel fahren.
}}
=== Auf der Straße ===
* Die Autobahn {{RSIGN|DE|A |44}} Kassel - Dortmund an der Anschlussstellen Zierenberg (aus Richtung Kassel) bzw. Breuna (aus Richtung Dortmund) verlassen.
* Die [[Deutsche Fachwerkstraße]] führt durch den Ort.
=== Mit dem Fahrrad ===
[[File:Wolfhagen stadtblick von Sueden vom radfernweg r 4.jpg|thumb|Am hess. Radfernweg R 4: Blick von Süden auf Wolfhagen]]
* Die Stadt liegt am '''[[Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen|Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen]]''' der die Stadt in Nord-Süd Richtung für den Radurlauber erschließt. Im Bereich von Zierenberg über Wolfhagen nach Naumburg ist die Strecke allerdings recht bergig und verläuft zun großen Teilen auf Landstraßen, die zum Teil schnell und auch stärker befahren sind. Die verkehrsfreien Strecken sind öfter geschottert.
*Gut zu wissen: Wer auf der Durchreise per Rad auf dem R 4 ist und seinen Pedelec-Akku während einer Pause laden möchte, findet am Rathaus einem Fahrradständer mit frei zugänglichen Steckdosen.
== Mobilität ==
* {{vCard|type=taxi|name= Taxi Brandau Wolfhagen|address=|phone=+49(0)5692 997700|url=http://www.taxi-brandau-kassel.de|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard | type = parking | name = Parkhaus Mittelstraße / Schäferstraße | lat = 51.32604 | long = 9.17097 | price = frei | lastedit = 2018-06-26 | description = Parkhaus in der Altstadt mit zwei Ebenen, die von verschiedenen Seiten angefahren werden. }}
* {{vCard | type = parking | name = Tiefgarage Rathaus | lat = 51.324124| long = 9.168018 | price = frei | lastedit = 2020-03-29 | description = Parkhaus in der Altstadt, unterhalb des neuen Rathaus. Die Tiefgarage verfügt über eine Ebene und kann nur von der kleinen Straße zwischen Landgrafen und Burgstraße aus angefahren werden. }}
* {{vCard | type = parking | name = Parkaus Torstraße/Wilhelmsstraße | lat = 51.327147| long = 9.172285 | price = frei | lastedit = 2020-03-29 | description = Parkhaus unterhalb der Altstadt, nahe der Sparkasse. Das Parkhaus verfügt über mehrere Ebenen und kann von Wilhelms- und Torstraße aus angefahren werden. Das Gebäude ist als Drogentreffpunkt der Stadt bekannt. }}
== Sehenswürdigkeiten ==
[[Bild:wolfhagen_von_sueden_ds_wv_07_2009.jpg|thumb|Wolfhagen - Blick auf die Altstadt von Süden]]
Wolfhagen besitzt eine sehenswerte '''Altstadt mit Fachwerkbauten'''. Kleinere Reste der Stadtmauer sind ebenfalls noch vorhanden.
* Der {{marker| type = square | name = Marktplatz | lat = 51.32489 | long = 9.16846 }} ist ein gemütlicher Stadtraum mit Café und der Stadtkirche. Prächtigstes Haus am Platz ist der Fachwerkbau des „Alten Rathauses”. Das Haus beherbergt heute ein Hotel mit Restaurant. Auf dem Platz befindet sich ferner der Märchenbrunnen, der eine Szene aus dem Märchen "Der Wolf und die sieben Geislein" zeigt.
* {{vCard | type = church | name = Stadtkirche Wolfhagen | url = http://www.stadtkirche-wolfhagen.de | wikidata = Q83797087 | hours = Sommer 8-18 Uhr, Winter 9-17 Uhr | description = Die weithin sichtbare evangelische Kirche steht am Marktplatz. Bei der Stadtgründung im Jahr 1231 wurde mit dem Bau der Kirche als gotische Hallenkirche begonnen. Das Gebäude ist allerdings nicht rein gotisch. Im Laufe der baulichen Veränderungen haben verschiedene Stile das Gebäude geprägt. Sehenswert sind unter anderem die Chorfenster aus dem Jahr 1691, die Glasfenster von Hans-Gottfried von Stockhausen sowie das Westportal am Turm.}}
* {{vCard | type = church | name =St. Maria|lat =51.325212 |long =9.176246 |url=https://www.katholische-kirche-wolfhagen.de/ |description=Die katholische Kirche wurde 1966 erbaut und ersetzte die Notkirche am Koppenberg, die nach dem Zweiten Weltkrieg errichtet wurde. }}
* {{vCard | type = church | name =Friedhofskapelle|lat =51.325593 |long =9.173586 |description=Die heutige Friedhofskapelle ist die ursprüngliche [[w:Wolfhagen#Hospitalkapelle|Hospitalkapelle]]. Sie ist ein einschiffiges, hochgotisches Gebäude aus Sandsteinquadern.}}
* {{vCard | type = castle| name=Burg Wolfhagen| wikidata=Q1014646| lat =51.3227|long =9.165|description =Im Jahre 1513 wurde ein Neubau der Burg erstellt. Ende des 16. Jahrhunderts war sie verfallen, Anfang des 17. Jahrhunderts wurde sie abgerissen. Erhalten geblieben sind lediglich Reste.}}
* {{vCard | type = castle| name=Burgruine Helfenberg| wikidata=Q1015331| lat =51.329722|long =9.209167| description =Die Überreste der Burg befinden sich rund 2,5 km östlich der Kernstadt.}}
* {{marker| type = tower | name = Chattenturm | lat = 51.32766 | long = 9.17167 }} Als Rest der Stadtbefestigung kann der Wehrturm bestiegen werden. Der Schlüssel ist in der Tourist-Information im Rathaus erhältlich.
* Der frei zugängliche {{marker | type = tower | name = Ofenberg-Turm |wikidata=Q1800311 |lat = 51.32749 | long = 9.18990 }} liegt etwa 1,5 km östlich der Stadtmitte. Schöne kleine Wanderung von der Stadtmitte: Hier zu am besten via Mittelstraße und Treppenanlage "Am Hospitalgarten" die Altstadt nach Osten verlassen. Von hier an der Brücke der Karlstraße die Umgehungsstraße queren. Am Ende der Karlstraße in eine Links-Rechts-Kombination in die Ofenbergstraße wechseln. Vom Ende der Ofenbergstraße gibt es Wanderpfade durch den Wald zum Turm hoch. Strecke ab Marktplatz etwa 5 km Retour mit rund 150 Höhenmetern.
* Der {{marker | type = park | name = Stadtpark | name-map = Kattenturm | lat = 51.32477 | long = 9.16522 }} liegt westlich der Altstadt in einem kleinen Tal. Der Park ist nicht spektakulär. Wer aber einen kleinen, altstadtnahen Spaziergang unternehmen möchte, für den ist der Park mit Teich und Spielplatz ein nettes Ziel.
* {{vCard | type = museum | name = Regionalmuseum Wolfhager Land | url = http://www.regionalmuseum-wolfhagen.de/ | address = Ritterstr. 1 | lat = 51.32297 | long = 9.16540 | phone = +49 (0)5692 992431 | hours = Di bis Do 10-13 und 14-17 Uhr, Sa und So 14-17 Uhr | price = Erwachsene: 3 €, Familienkarte: 6 € | lastedit = 2017-11-04 | description = Das Museum in der alten Burg informiert über die Geschichte der Stadt und Region.}}
* {{vCard | type = museum | name = Museum für Film- und Videotechnik | url = http://www.filmmuseum-wolfhagen.de | address = Triangelstraße 19 | lat = 51.32669 | long = 9.17041 | phone = +49(0)5692 994956 | hours = Sonntags von 11-12:30 Uhr, Gruppenbesuche mit Führung nach Vereinbarung | price = Eintritt frei, Spende erwünscht | lastedit = 2017-11-04 | description = Das Museum beschäftigt sich mit filmtechnischen Gerätschaften bis zum 35-mm Format. Die Ausstellung ist noch im Aufbau.}}
* {{vCard | type = rock | name = Felsgruppe Rauensteine | lat = 51.2895 | long = 9.1666 | lastedit = 2018-06-26 | description = Die nicht spektakuläre, aber sehenswerte Felsgruppe findet sich etwa 5 km südlich der Kernstadt zwischen den Ortsteilen Ippinghausen und Bründersen. Die Sandsteine liegen in einem Waldgebiet und sind 4 bis 5 m hoch. Das Naturdenkmal ist von beiden Dörfern über den Wanderweg "Wolfsfährte" erreichbar (Markierung Wolfssysmbol auf kleinen Metallschildern, [https://www.openstreetmap.org/relation/3764717#map=13/51.2904/9.1690 Streckenverlauf auf Openstreetmap]). }}
* {{vCard | type = cave | name = Felskeller "Drachenhöhle" | lat = 51.3073546 | long = 9.1715908 | lastedit = 2018-06-26 | description = Der künstlich angelegte Felsenkeller findet sich am Graner Berg. Für eine Expedition in die Keller benötigt man eine Lichtquelle. Die Drachenhöhle ist direkt nur zu Fuß über Pfade zugänglich und kann bis zum Graner Berg gut per Fahrrad angefahren werden. Mit Stand 2014 ist die vor allem für Familien mit größeren Kindern interessante Sehenswürdigkeit nicht ausgeschildert. }}
== Aktivitäten ==
* '''Wandern''' - Die grüne Landschaft rund am Wolfhagen lädt zu vielfältigen Wanderungen ein, wie zum Beispiel auf [[Habichtswaldsteig]] und [[Eco Pfad Kulturgeschichte Wolfhagen]]. Ein schönes Wanderrevier sind z. B. die Wälder rund um das obere Elbetal bei Ippinghausen. Es gibt hier ab dem Wanderparkplatz unterhalb der Weidelsburg ausgeschilderte Rundwanderwege. Höhepunkt einer Wanderung kann hier der Besuch der [[Weidelsburg]] sein. Im Elbetal kann man schön in der Hasenmühle einkehren.
* '''Radwandern''' - Rund um Wolfhagen gibt es landschaftliche schöne Routen zum Radwandern. Die Touren sind meist bergig und die Strecken öfter geschottert. Die Schilder für das flächige Radwegweisungsnetz sollen bis Ende 2018 aufgestellt werden. Wer möchte kann z. B. über den Hessischen Radfernweg R 4 in das 10 km südlich liegende Fachwerkstädtchen [[Naumburg (Hessen)]] radeln (z. T. Schotterwege). Überregionale Radwanderkarte siehe Abschnitt [[#Literatur|Literatur]]
* {{marker|type=swimming|name=Erlebnis-Freibad|lat=51.3245|long=9.1827}} - das zwischen Mai und August geöffnete Bad besitzt eine 36 m lange Wasserrutsche. Lage: Nördlich der Umgehungsstraße in der Sudetenstraße.
* '''Rundflüge''' - können über die [http://www.edgw.de/ Luftsportvereinigung Wolfhagen e. V.] individuell erfragt/ gebucht werden. Der kleine Flugplatz liegt landschaftlich sehr schön auf dem [[w:Graner Berg|Graner Berg]] etwa 2 km südlich der Stadt.
* {{vCard | name = Cinema Wolfhagen | type = cinema | url = https://kino-wolfhagen.de | address = Schützebergerstr. 37, 34466 Wolfhagen | lat = 51.32582 | long = 9.16842 | phone = 05692 995099 | description = Das Kino liegt in einem der ältesten Häuser der Stadt. Es gibt immer aktuelle Filme, auch in neuester 3D-Technik. Ferner werden besondere Aktionen wie "Café und Kino", "Kulinarisches Kino" und "Der besondere Film" (Programmkino) angeboten. Preise sind fair, Personal ist freundlich, Aktionen und Kino sind gut besucht. Reservierungen und Kartenkauf können über das Onlinesystem vorgenommen werden.
}}
* {{vCard | name = Waldbühne Niederelsungen | type = theater | url = http://www.waldbuehne.niederelsungen.de | lat = 51.38328 | long = 9.18952 | description = Etwa 8 km außerhalb liegt im Ortsteil Niederelsungen die Waldbühne. Alle zwei Jahre wird in der Freiluftbühne im Sommer Theater gespielt. Die Preise sind moderat und es ist oft gar nicht einfach eins der 1300 Ticket zu bekommen.
}}
=== Feste ===
* {{vCard|name=Vieh- und Krammarkt |wikidata=|type=festival |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Das traditionsreiche und größte Fest der Stadt findet alljährlich im Juli auf der Liemecke statt und besteht aus Viehschau und Vergnügungspark.}}
* {{vCard|name=Kulturzelt Wolfhagen |wikidata=|type=festival |address=|phone=|email=|url=http://www.kulturzelt.de |hours=|price=|lat=|long=|lastedit=|description=Das große Kleinkunstfestival im Juni im Stadtpark Teichwiesen wartet auch mit bekannten Namen auf und findet mittlerweile auch überregional Beachtung.}}
== Einkaufen ==
* '''Lebensmitteleinkauf:''' Zwei Lebensmittelmärkte finden sich bei {{Marker | name = zwei Lebensmittelmärkte | type= shop | lat = 51.329824 | long = 9.173756| show =noname }} an der Schützeberger Straße.
== Küche ==
* {{vCard|type=restaurant|name=Zum Chattenturm|wikidata= Q57021087| lastedit = 2018-01-01 |description=}}
* {{vCard|type=restaurant|name=„Zum Schiffchen“|address=Hans-Staden-Straße 27|phone=+49 05692 9875-0|email=besucher@hotel-zum-schiffchen.de|fax=+49 05692 9875-11|url=https://www.hotel-zum-schiffchen.de/|hours=Mo.-Sa.: 17-24 Uhr; So.: 11-15 Uhr; jeden 2. Sonntagabend: 17-23 Uhr; Feiertage: 11-15 Uhr und 17-23 Uhr; Küche: 11:30-14 Uhr und 17:30-22 Uhr|price=|lat=51.32279|long=9.16664}}
* {{vCard|type=restaurant|name=Gasthaus Hotel Pfeifferling|address=Waldecker Straße 7|phone=+49 05692 5980|email=info@gasthaus-pfeifferling.de|fax=+49 05692 8111|url=https://www.gasthaus-pfeifferling.de/|hours=|price=|lat=51.28106|long=9.14285}}
* {{vCard|name=Konditorei Oliev |wikidata=|type=pastry shop |address=Schützeberger Str. 49 |phone=+49 05692 993971 |email=|url=|hours=|price=|lat=51.32660 |long=9.16939 |lastedit=|description=Gemütliche Kaffee-Atmosphäre drinnen und draußen in der Altstadt, freundliche Bedienung, faire Preise, vom Frühstück bis zum späten Nachmittag durchgehend geöffnet.}}
* {{vCard|name=Ristorante San Remo |wikidata=|type=restaurant |address=Schützeberger Str. 37 |phone=+49 05692 5920 |email=|url=https://www.restaurant-san-remo.eu/ |hours=|price=|lat=51.32579 |long=9.16829 |lastedit=|description=Italienische Küche in der Altstadt, wie man sie gerne isst. Ein gemütliches Lokal, im Sommer auch draußen, mit angemessenen Preisen, freundlichem Service und saisonaler Küche. Abends und am Wochenende ist Tischbestellung zu empfehlen.}}
* {{vCard | name = Eiscafe Da Peppo | type = ice cream | address = Schützeberger Str. 47 | lat = 51.32651 | long = 9.16931 | phone = +49 05692 9968484 | description = Hier erhält man im Straßenverkauf recht große Kugeln Eis zu 1,20 Cent das Stück (Frühjahr 2020).
}}
== Nachtleben ==
Die Landruhe mit klarem Sternenhimmel genießen.
* {{vCard | type = bar | name = Mamounia Lounge/Shisha bar| facebook = MAMOUNIALOUNGEWOLFHAGEN | address = Kurfürstenstraße 47, 34466 Wolfhagen | lat = 51.3216698 | long = 9.1813215 | phone = +49 160 8980069 | hours = Mo bis Do 18:00 - 0:00 Uhr; Fr bis Sa 17:00 - 0:00 Uhr; So 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Einzige Shisha bar der Stadt, die bislang überlebt hat. Klein aber gemütlich.}}
* {{vCard | type = bar | name = Zottels Pub | url = http://www.zottels-kneipe.de/ | facebook = zottels.pub | address = Mittelstraße 22-24, 34466 Wolfhagen | lat = 51.325656 | long = 9.171556 | phone = +49 172 5704415 | hours = So bis Mo geschlossen; Di bis Sa 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Raucherbar mit langer Tradition und gewissem Ruf in Wolfhagen. Fußballspiele werden live übertragen. Es gibt einen Dartsroom mit einigen Scheiben und eigener Mannschaft. Es werden Turniere in der Kai Schumacher Dartliga abgehalten }}
* {{vCard | type = bar | name = Gaststätte zur Knackenburg| address = Burgstraße 12, 34466 Wolfhagen | lat = 51.325162 | long = 9.170854 | phone = +49 5692 2566| hours = Mo bis Mi 17 - 22 Uhr; Fr 17 - 23 Uhr; Sa 10 - 22 Uhr, Do und So geschlossen | price = | lastedit = 2020-03-30 | facebook = knacke.woh | description = Beste Kneipe in Wolfhagen, mit langer Tradition. Bringt Alt und Jung zusammen. }}
== Unterkunft ==
* Zum Unterkunftsverzeichnis der [https://wolfhagen.de/stadtplan/?jsf=jet-engine&meta=typ!is_custom_checkbox:Unterkuenfte Stadt Wolfhagen] (mit Unterkünften in den Stadtteilen.)
* {{vCard | type = caravan site | name = Wohnmobilstellplatz Wolfhagen | lat = 51.33014444 | long = 9.17102222 | lastedit = 2018-06-26 | description = Der Platz mit 34 Stellplätzen liegt nur wenige Meter nördlich der Altstadt in den Bruchwiesen. Stellplatzgebühren: keine; Spenden erwünscht. Zu Hauptbesuchszeiten (z. B. Ostern) kann der Platz ausgelastet sein. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Altes Rathaus" | url = https://www.hotel-altes-rathaus-wolfhagen.de/ | address = Kirchplatz 1, 34466 Wolfhagen | lat = 51.3250835 | long = 9.1668356 | phone = +49 (0)5692 - 997906 | fax = +49 (0)5692 - 997908 | price = EZ ab 43 €, DZ ab 70 € | lastedit = 2019-03-01 | description = Erst nach dem Umzug der Stadtverwaltung in die Burgstraße 33 wurde das alte Rathaus, das direkt im Stadtkern liegt, in ein Hotel und Restaurant umgebaut. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zum Schiffchen" | url = https://www.hotel-zum-schiffchen.de/ | email = besucher@hotel-zum-schiffchen.de | address = Hans-Staden-Straße 27, 34466 Wolfhagen | lat = 51.322827 | long = 9.166625 | phone = +49 (0)5692 - 98750 | fax = +49 (0)5692 - 987511 | price = EZ ab 44,90 €, DZ ab 63 € | lastedit = 2019-03-01 | description = 11 Hotelzimmer in 2 Kategorien }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zum Chattenturm" | url = https://zum-chattenturm.de/ | email = info@hotel-zum-chattenturm.de | address = Schützeberger Straße 67, Wolfhagen | lat = 51.327464 | long = 9.171051 | phone = +49 (0)5692 - 2387 | fax = +49 (0)5692 - 8503 | price = EZ ab 45 €, DZ ab 75 € | lastedit = 2019-03-01 | description = Die Gästezimmer befinden sich in den starken, historischen Mauern. Das sorgt für den ungestörten Schlaf der Gäste. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zur Stadt Wolfhagen" | address = Mittelstraße 9, 34466 Wolfhagen | lat = 51.3254633 | long = 9.1667513 | phone = +49 (0)5692 - 993064 | fax = +49 (0)5692 - 993111 | price = ab 34 € | lastedit = 2019-03-01 | mobile = +49 (0)176 32822214 | description = Hotel, Restaurant und Cafe }}
== Sicherheit ==
Wolfhagen ist eine sichere Stadt. Besondere Verhaltensregeln über die üblichen Vorsichtsmaßnahmen hinaus, wie Fahrrad abschließen usw., sind nicht notwendig.
== Gesundheit ==
* {{vCard|name=Kreiskliniken Kassel - Standort Wolfhagen|type=hospital|lat=51.32015|long=9.19085|lastedit=2022-03-28|description=Das Krankenhaus wurde von Gesundheit Nordhessen durch den Landkreis Kassel übernommen. Weiterer Standort ist Hofgeismar.}}
== Praktische Hinweise ==
* {{vCard | name = Stadt- und Tourist-Information | type = tourist information | url = https://wolfhagen.de/tourismus/ | address = Burgstraße 33-35, 34466 Wolfhagen | lat = 51.32442 | long = 9.16848 | phone = +49 (0)5692 602102 | fax = +49 (0)5692 602190 | email = tourist-info@wolfhagen.de
}}
* {{vCard | name = öffentliche Toilette am Rathaus | type = toilet | lat = 51.32421 | long = 9.16822 | lastedit = 2018-06-26 | description = Eine frei zugängliche, öffentliche Toilettenanlage befindet sich am Rathaus oberhalb des Marktplatzes.
}}
== Ausflüge ==
=== Bis 10 km Entfernung ===
* {{vCard | type = castle| name=Weidelsburg|wikidata=Q1621311|lat =51.272917| long =9.144319| description = Die große Burgruine mit sehr schöner Aussicht liegt etwa 5 km südlich von Wolfhagen oberhalb des Stadtteils Ippinghausen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Festberg|lat =51.335032 |long = 9.217336 | description =Bergrücken mit Kalkmagerrasen und schönem Landschaftsblick zwischen Philippinenthal und Altenhasungen. Zwei Bänke laden zum Entspannen ein. Die Erhebung liegt etwa 4 km nordöstlich von Wolfhagen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Glockenborn|lat =51.305722 |long = 9.18775 | description =Künstlich angelegtes Feuchtgebiet mit zwei Seen, kleineren Stillgewässern und Extensivgrünland. Insgesamt drei Aussichtspunkte mit guter Beobachtungsposition für seltene Vogel- und Amphibienartenn. Das Gebiet liegt etwa 3 km südöstlich der Innenstadt}}
=== Bis 30 km Entfernung ===
* an den '''[[Edersee]]''' (etwa 25 km südlich)
* nach [[Fritzlar]] (etwa 25 km südlich)
* nach [[Bad Arolsen]] (etwa 15 km nordwestlich)
* nach [[Warburg]] (etwa 20 km nördlich)
* nach Kassel in den '''[[Bergpark Wilhelmshöhe]]''' (etwa 25 km östlich)
* [[Eco Pfad Kulturgeschichte Wolfhagen]]
{{Panorama|bild=Weidelsberg_pano_nordostblick_ds_08_2009.jpg|unterschrift='''Nordostblick von der [[Weidelsburg]]:''' Links vorne im Panorama ist Ippinghausen zu erkennen. Schräg rechts darüber sieht man [[Wolfhagen]]. Am Horizont in der Bildmitte ist der [[Großer Bärenberg|Große Bärenberg]] mit Funk- und Aussichtsturm sehen. Weiter rechts oberhalb der Windkraftanlagen liegt der [[Habichtswald (Gebirge)|Habichtswald]]|breite=1400px}}
== Literatur ==
'''Radwanderkarte:'''
* '''ADFC Regionalkarte "Kassel / Nordhessen"''' - Maßstab 1: 75.000; {{ISBN|978-3870736392}}; Preis: 8,95 €. Die spezielle Radwanderkarte mit detaillierter Routendarstellung auf reißfestem und wasserabweisendem Papier bildet Nordhessen hinsichtlich Oberflächenbeschaffenheit, Verkehrsbelastung und Tourenvorschlägen fast vollständig ab. Ab Wolfhagen auch für größere Touren z. B. zum Edersee, nach Fritzlar, Warburg usw. nutzbar.
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.31667| long= 9.16667| radius= }}
{{IstInKat|Naturpark Habichtswald}}
ndbpn9w0g3n9uvossjlps5frh5uzret
1769044
1769043
2026-04-16T19:36:31Z
Dirk Schmidt
15181
/* Unterkunft */
1769044
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Wolfhagen''' ist eine Kleinstadt in [[Nordhessen]] etwa 30 km westlich von Kassel gelegen.
Das "Wolfhager Land" liegt landschaftlich schön im [[Naturpark Habichtswald]]. Besonders einen Besuch wert ist die [[Weidelsburg]] oberhalb des Stadtteils Ippinghausen.
== Hintergrund ==
{{Mapframe|51.32809|9.16843|zoom=14|type=geoline}}
Die Stadt wurde 1231 unter Landgraf [[w:Konrad von Thüringen|Konrad von Thüringen]] gegründet.
1264 erhielt Wolfhagen das Stadtrecht. 1302 konnte die Stadtbefestigung fertiggestellt werden.
Im Dreißigjährigen Krieg wurde die Stadt fast vollständig dem Erdboden gleich gemacht.
=== Stadtgliederung ===
Neben der Kernstadt besteht Wolfhagen (mit dem Weiler Elmarshausen) aus elf weiteren Ortsteilen, die sich jeweils als Dorf rund um die Kernstadt erstrecken:
{{3 Spalten|
;{{Marker | type = quarter | name =Altenhasungen|wikidata=Q437180| styles = normal }}
;{{Marker | type = quarter | name =Bründersen|wikidata=Q997012| styles = normal }}
;{{Marker | type = quarter | name =Gasterfeld|wikidata=Q1495410| styles = normal }}
;{{Marker | type = quarter | name =Ippinghausen|wikidata=Q1672275| styles = normal }}
;{{Marker | type = quarter | name =Istha|wikidata=Q1674843| styles = normal }}
;{{Marker | type = quarter | name =Leckringhausen|wikidata=Q1811416| styles = normal }}
;{{Marker | type = quarter | name =Niederelsungen|wikidata=Q1987742| styles = normal }}
;{{Marker | type = quarter | name =Nothfelden|wikidata=Q1688879| styles = normal }}
;{{Marker | type = quarter | name =Philippinenburg und -thal|wikidata=Q1543020| styles = normal }}
;{{Marker | type = quarter | name =Viesebeck|wikidata=Q2523788| styles = normal }}
;{{Marker | type = quarter | name =Wenigenhasungen|wikidata=Q2559437| styles = normal }}.
}}
=== Nachbargemeinden ===
Wolfhagen grenzt im Nordwesten an {{Marker| type = town| name = Volkmarsen|wikidata=Q533535|styles = normal }},
im Norden an {{Marker | type = town| name = Breuna |wikidata=Q503830| styles = normal }},
im Osten an {{Marker | type = town| name = Zierenberg|wikidata=Q199094| styles = normal }} und {{Marker | type = town| name = Habichtswald|wikidata=Q624629| styles = normal }},
im Südosten an {{Marker | type = town| name = Schauenburg|wikidata=Q175419| styles = normal }},
im Süden an {{Marker | type = town| name = Bad Emstal |wikidata=Q291091| styles = normal }} und {{Marker | type = town| name = Naumburg|wikidata=Q641014| styles = normal }},
im Südwesten an {{Marker | type = town| name = Waldeck|wikidata=Q540107| styles = normal }},
sowie im Westen an {{Marker | type = town| name = Bad Arolsen |wikidata=Q498078| styles = normal }}.
== Anreise ==
=== Mit dem Flugzeug ===
* Der nächste Flughafen ist der {{marker|type = airport|name = Flughafen Kassel-Calden |wikidata = Q529143}} etwa 26 km nordwestlich von Wolfhagen, danach folgt der {{marker|type = airport|name = Flughafen Paderborn Lippstadt|wikidata = Q685536}}, der ca. 55 km nordwestlich liegt (gut über die Autobahn A 44 zu erreichen). Die meisten Flugoptionen hat man allerdings vom {{marker|type = airport|name = Flughafen Frankfurt am Main |wikidata = Q46033}}, welcher etwa 220 km entfernt ist.
=== Mit der Bahn ===
* {{vCard | type = train | name = Bahnhof Wolfhagen | wikidata = Q55637849 | description = Wolfhagen liegt an der [[Kurhessenbahn]] [[Korbach]] - [[Kassel]]. Mit dem Regionalexpress bestehen direkte Verbindungen zum ICE in Kassel-Wilhelmshöhe. Des weiteren kann man mit der Regiotram direkt bis ins Stadtzentrum von Kassel fahren.
}}
=== Auf der Straße ===
* Die Autobahn {{RSIGN|DE|A |44}} Kassel - Dortmund an der Anschlussstellen Zierenberg (aus Richtung Kassel) bzw. Breuna (aus Richtung Dortmund) verlassen.
* Die [[Deutsche Fachwerkstraße]] führt durch den Ort.
=== Mit dem Fahrrad ===
[[File:Wolfhagen stadtblick von Sueden vom radfernweg r 4.jpg|thumb|Am hess. Radfernweg R 4: Blick von Süden auf Wolfhagen]]
* Die Stadt liegt am '''[[Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen|Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen]]''' der die Stadt in Nord-Süd Richtung für den Radurlauber erschließt. Im Bereich von Zierenberg über Wolfhagen nach Naumburg ist die Strecke allerdings recht bergig und verläuft zun großen Teilen auf Landstraßen, die zum Teil schnell und auch stärker befahren sind. Die verkehrsfreien Strecken sind öfter geschottert.
*Gut zu wissen: Wer auf der Durchreise per Rad auf dem R 4 ist und seinen Pedelec-Akku während einer Pause laden möchte, findet am Rathaus einem Fahrradständer mit frei zugänglichen Steckdosen.
== Mobilität ==
* {{vCard|type=taxi|name= Taxi Brandau Wolfhagen|address=|phone=+49(0)5692 997700|url=http://www.taxi-brandau-kassel.de|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard | type = parking | name = Parkhaus Mittelstraße / Schäferstraße | lat = 51.32604 | long = 9.17097 | price = frei | lastedit = 2018-06-26 | description = Parkhaus in der Altstadt mit zwei Ebenen, die von verschiedenen Seiten angefahren werden. }}
* {{vCard | type = parking | name = Tiefgarage Rathaus | lat = 51.324124| long = 9.168018 | price = frei | lastedit = 2020-03-29 | description = Parkhaus in der Altstadt, unterhalb des neuen Rathaus. Die Tiefgarage verfügt über eine Ebene und kann nur von der kleinen Straße zwischen Landgrafen und Burgstraße aus angefahren werden. }}
* {{vCard | type = parking | name = Parkaus Torstraße/Wilhelmsstraße | lat = 51.327147| long = 9.172285 | price = frei | lastedit = 2020-03-29 | description = Parkhaus unterhalb der Altstadt, nahe der Sparkasse. Das Parkhaus verfügt über mehrere Ebenen und kann von Wilhelms- und Torstraße aus angefahren werden. Das Gebäude ist als Drogentreffpunkt der Stadt bekannt. }}
== Sehenswürdigkeiten ==
[[Bild:wolfhagen_von_sueden_ds_wv_07_2009.jpg|thumb|Wolfhagen - Blick auf die Altstadt von Süden]]
Wolfhagen besitzt eine sehenswerte '''Altstadt mit Fachwerkbauten'''. Kleinere Reste der Stadtmauer sind ebenfalls noch vorhanden.
* Der {{marker| type = square | name = Marktplatz | lat = 51.32489 | long = 9.16846 }} ist ein gemütlicher Stadtraum mit Café und der Stadtkirche. Prächtigstes Haus am Platz ist der Fachwerkbau des „Alten Rathauses”. Das Haus beherbergt heute ein Hotel mit Restaurant. Auf dem Platz befindet sich ferner der Märchenbrunnen, der eine Szene aus dem Märchen "Der Wolf und die sieben Geislein" zeigt.
* {{vCard | type = church | name = Stadtkirche Wolfhagen | url = http://www.stadtkirche-wolfhagen.de | wikidata = Q83797087 | hours = Sommer 8-18 Uhr, Winter 9-17 Uhr | description = Die weithin sichtbare evangelische Kirche steht am Marktplatz. Bei der Stadtgründung im Jahr 1231 wurde mit dem Bau der Kirche als gotische Hallenkirche begonnen. Das Gebäude ist allerdings nicht rein gotisch. Im Laufe der baulichen Veränderungen haben verschiedene Stile das Gebäude geprägt. Sehenswert sind unter anderem die Chorfenster aus dem Jahr 1691, die Glasfenster von Hans-Gottfried von Stockhausen sowie das Westportal am Turm.}}
* {{vCard | type = church | name =St. Maria|lat =51.325212 |long =9.176246 |url=https://www.katholische-kirche-wolfhagen.de/ |description=Die katholische Kirche wurde 1966 erbaut und ersetzte die Notkirche am Koppenberg, die nach dem Zweiten Weltkrieg errichtet wurde. }}
* {{vCard | type = church | name =Friedhofskapelle|lat =51.325593 |long =9.173586 |description=Die heutige Friedhofskapelle ist die ursprüngliche [[w:Wolfhagen#Hospitalkapelle|Hospitalkapelle]]. Sie ist ein einschiffiges, hochgotisches Gebäude aus Sandsteinquadern.}}
* {{vCard | type = castle| name=Burg Wolfhagen| wikidata=Q1014646| lat =51.3227|long =9.165|description =Im Jahre 1513 wurde ein Neubau der Burg erstellt. Ende des 16. Jahrhunderts war sie verfallen, Anfang des 17. Jahrhunderts wurde sie abgerissen. Erhalten geblieben sind lediglich Reste.}}
* {{vCard | type = castle| name=Burgruine Helfenberg| wikidata=Q1015331| lat =51.329722|long =9.209167| description =Die Überreste der Burg befinden sich rund 2,5 km östlich der Kernstadt.}}
* {{marker| type = tower | name = Chattenturm | lat = 51.32766 | long = 9.17167 }} Als Rest der Stadtbefestigung kann der Wehrturm bestiegen werden. Der Schlüssel ist in der Tourist-Information im Rathaus erhältlich.
* Der frei zugängliche {{marker | type = tower | name = Ofenberg-Turm |wikidata=Q1800311 |lat = 51.32749 | long = 9.18990 }} liegt etwa 1,5 km östlich der Stadtmitte. Schöne kleine Wanderung von der Stadtmitte: Hier zu am besten via Mittelstraße und Treppenanlage "Am Hospitalgarten" die Altstadt nach Osten verlassen. Von hier an der Brücke der Karlstraße die Umgehungsstraße queren. Am Ende der Karlstraße in eine Links-Rechts-Kombination in die Ofenbergstraße wechseln. Vom Ende der Ofenbergstraße gibt es Wanderpfade durch den Wald zum Turm hoch. Strecke ab Marktplatz etwa 5 km Retour mit rund 150 Höhenmetern.
* Der {{marker | type = park | name = Stadtpark | name-map = Kattenturm | lat = 51.32477 | long = 9.16522 }} liegt westlich der Altstadt in einem kleinen Tal. Der Park ist nicht spektakulär. Wer aber einen kleinen, altstadtnahen Spaziergang unternehmen möchte, für den ist der Park mit Teich und Spielplatz ein nettes Ziel.
* {{vCard | type = museum | name = Regionalmuseum Wolfhager Land | url = http://www.regionalmuseum-wolfhagen.de/ | address = Ritterstr. 1 | lat = 51.32297 | long = 9.16540 | phone = +49 (0)5692 992431 | hours = Di bis Do 10-13 und 14-17 Uhr, Sa und So 14-17 Uhr | price = Erwachsene: 3 €, Familienkarte: 6 € | lastedit = 2017-11-04 | description = Das Museum in der alten Burg informiert über die Geschichte der Stadt und Region.}}
* {{vCard | type = museum | name = Museum für Film- und Videotechnik | url = http://www.filmmuseum-wolfhagen.de | address = Triangelstraße 19 | lat = 51.32669 | long = 9.17041 | phone = +49(0)5692 994956 | hours = Sonntags von 11-12:30 Uhr, Gruppenbesuche mit Führung nach Vereinbarung | price = Eintritt frei, Spende erwünscht | lastedit = 2017-11-04 | description = Das Museum beschäftigt sich mit filmtechnischen Gerätschaften bis zum 35-mm Format. Die Ausstellung ist noch im Aufbau.}}
* {{vCard | type = rock | name = Felsgruppe Rauensteine | lat = 51.2895 | long = 9.1666 | lastedit = 2018-06-26 | description = Die nicht spektakuläre, aber sehenswerte Felsgruppe findet sich etwa 5 km südlich der Kernstadt zwischen den Ortsteilen Ippinghausen und Bründersen. Die Sandsteine liegen in einem Waldgebiet und sind 4 bis 5 m hoch. Das Naturdenkmal ist von beiden Dörfern über den Wanderweg "Wolfsfährte" erreichbar (Markierung Wolfssysmbol auf kleinen Metallschildern, [https://www.openstreetmap.org/relation/3764717#map=13/51.2904/9.1690 Streckenverlauf auf Openstreetmap]). }}
* {{vCard | type = cave | name = Felskeller "Drachenhöhle" | lat = 51.3073546 | long = 9.1715908 | lastedit = 2018-06-26 | description = Der künstlich angelegte Felsenkeller findet sich am Graner Berg. Für eine Expedition in die Keller benötigt man eine Lichtquelle. Die Drachenhöhle ist direkt nur zu Fuß über Pfade zugänglich und kann bis zum Graner Berg gut per Fahrrad angefahren werden. Mit Stand 2014 ist die vor allem für Familien mit größeren Kindern interessante Sehenswürdigkeit nicht ausgeschildert. }}
== Aktivitäten ==
* '''Wandern''' - Die grüne Landschaft rund am Wolfhagen lädt zu vielfältigen Wanderungen ein, wie zum Beispiel auf [[Habichtswaldsteig]] und [[Eco Pfad Kulturgeschichte Wolfhagen]]. Ein schönes Wanderrevier sind z. B. die Wälder rund um das obere Elbetal bei Ippinghausen. Es gibt hier ab dem Wanderparkplatz unterhalb der Weidelsburg ausgeschilderte Rundwanderwege. Höhepunkt einer Wanderung kann hier der Besuch der [[Weidelsburg]] sein. Im Elbetal kann man schön in der Hasenmühle einkehren.
* '''Radwandern''' - Rund um Wolfhagen gibt es landschaftliche schöne Routen zum Radwandern. Die Touren sind meist bergig und die Strecken öfter geschottert. Die Schilder für das flächige Radwegweisungsnetz sollen bis Ende 2018 aufgestellt werden. Wer möchte kann z. B. über den Hessischen Radfernweg R 4 in das 10 km südlich liegende Fachwerkstädtchen [[Naumburg (Hessen)]] radeln (z. T. Schotterwege). Überregionale Radwanderkarte siehe Abschnitt [[#Literatur|Literatur]]
* {{marker|type=swimming|name=Erlebnis-Freibad|lat=51.3245|long=9.1827}} - das zwischen Mai und August geöffnete Bad besitzt eine 36 m lange Wasserrutsche. Lage: Nördlich der Umgehungsstraße in der Sudetenstraße.
* '''Rundflüge''' - können über die [http://www.edgw.de/ Luftsportvereinigung Wolfhagen e. V.] individuell erfragt/ gebucht werden. Der kleine Flugplatz liegt landschaftlich sehr schön auf dem [[w:Graner Berg|Graner Berg]] etwa 2 km südlich der Stadt.
* {{vCard | name = Cinema Wolfhagen | type = cinema | url = https://kino-wolfhagen.de | address = Schützebergerstr. 37, 34466 Wolfhagen | lat = 51.32582 | long = 9.16842 | phone = 05692 995099 | description = Das Kino liegt in einem der ältesten Häuser der Stadt. Es gibt immer aktuelle Filme, auch in neuester 3D-Technik. Ferner werden besondere Aktionen wie "Café und Kino", "Kulinarisches Kino" und "Der besondere Film" (Programmkino) angeboten. Preise sind fair, Personal ist freundlich, Aktionen und Kino sind gut besucht. Reservierungen und Kartenkauf können über das Onlinesystem vorgenommen werden.
}}
* {{vCard | name = Waldbühne Niederelsungen | type = theater | url = http://www.waldbuehne.niederelsungen.de | lat = 51.38328 | long = 9.18952 | description = Etwa 8 km außerhalb liegt im Ortsteil Niederelsungen die Waldbühne. Alle zwei Jahre wird in der Freiluftbühne im Sommer Theater gespielt. Die Preise sind moderat und es ist oft gar nicht einfach eins der 1300 Ticket zu bekommen.
}}
=== Feste ===
* {{vCard|name=Vieh- und Krammarkt |wikidata=|type=festival |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Das traditionsreiche und größte Fest der Stadt findet alljährlich im Juli auf der Liemecke statt und besteht aus Viehschau und Vergnügungspark.}}
* {{vCard|name=Kulturzelt Wolfhagen |wikidata=|type=festival |address=|phone=|email=|url=http://www.kulturzelt.de |hours=|price=|lat=|long=|lastedit=|description=Das große Kleinkunstfestival im Juni im Stadtpark Teichwiesen wartet auch mit bekannten Namen auf und findet mittlerweile auch überregional Beachtung.}}
== Einkaufen ==
* '''Lebensmitteleinkauf:''' Zwei Lebensmittelmärkte finden sich bei {{Marker | name = zwei Lebensmittelmärkte | type= shop | lat = 51.329824 | long = 9.173756| show =noname }} an der Schützeberger Straße.
== Küche ==
* {{vCard|type=restaurant|name=Zum Chattenturm|wikidata= Q57021087| lastedit = 2018-01-01 |description=}}
* {{vCard|type=restaurant|name=„Zum Schiffchen“|address=Hans-Staden-Straße 27|phone=+49 05692 9875-0|email=besucher@hotel-zum-schiffchen.de|fax=+49 05692 9875-11|url=https://www.hotel-zum-schiffchen.de/|hours=Mo.-Sa.: 17-24 Uhr; So.: 11-15 Uhr; jeden 2. Sonntagabend: 17-23 Uhr; Feiertage: 11-15 Uhr und 17-23 Uhr; Küche: 11:30-14 Uhr und 17:30-22 Uhr|price=|lat=51.32279|long=9.16664}}
* {{vCard|type=restaurant|name=Gasthaus Hotel Pfeifferling|address=Waldecker Straße 7|phone=+49 05692 5980|email=info@gasthaus-pfeifferling.de|fax=+49 05692 8111|url=https://www.gasthaus-pfeifferling.de/|hours=|price=|lat=51.28106|long=9.14285}}
* {{vCard|name=Konditorei Oliev |wikidata=|type=pastry shop |address=Schützeberger Str. 49 |phone=+49 05692 993971 |email=|url=|hours=|price=|lat=51.32660 |long=9.16939 |lastedit=|description=Gemütliche Kaffee-Atmosphäre drinnen und draußen in der Altstadt, freundliche Bedienung, faire Preise, vom Frühstück bis zum späten Nachmittag durchgehend geöffnet.}}
* {{vCard|name=Ristorante San Remo |wikidata=|type=restaurant |address=Schützeberger Str. 37 |phone=+49 05692 5920 |email=|url=https://www.restaurant-san-remo.eu/ |hours=|price=|lat=51.32579 |long=9.16829 |lastedit=|description=Italienische Küche in der Altstadt, wie man sie gerne isst. Ein gemütliches Lokal, im Sommer auch draußen, mit angemessenen Preisen, freundlichem Service und saisonaler Küche. Abends und am Wochenende ist Tischbestellung zu empfehlen.}}
* {{vCard | name = Eiscafe Da Peppo | type = ice cream | address = Schützeberger Str. 47 | lat = 51.32651 | long = 9.16931 | phone = +49 05692 9968484 | description = Hier erhält man im Straßenverkauf recht große Kugeln Eis zu 1,20 Cent das Stück (Frühjahr 2020).
}}
== Nachtleben ==
Die Landruhe mit klarem Sternenhimmel genießen.
* {{vCard | type = bar | name = Mamounia Lounge/Shisha bar| facebook = MAMOUNIALOUNGEWOLFHAGEN | address = Kurfürstenstraße 47, 34466 Wolfhagen | lat = 51.3216698 | long = 9.1813215 | phone = +49 160 8980069 | hours = Mo bis Do 18:00 - 0:00 Uhr; Fr bis Sa 17:00 - 0:00 Uhr; So 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Einzige Shisha bar der Stadt, die bislang überlebt hat. Klein aber gemütlich.}}
* {{vCard | type = bar | name = Zottels Pub | url = http://www.zottels-kneipe.de/ | facebook = zottels.pub | address = Mittelstraße 22-24, 34466 Wolfhagen | lat = 51.325656 | long = 9.171556 | phone = +49 172 5704415 | hours = So bis Mo geschlossen; Di bis Sa 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Raucherbar mit langer Tradition und gewissem Ruf in Wolfhagen. Fußballspiele werden live übertragen. Es gibt einen Dartsroom mit einigen Scheiben und eigener Mannschaft. Es werden Turniere in der Kai Schumacher Dartliga abgehalten }}
* {{vCard | type = bar | name = Gaststätte zur Knackenburg| address = Burgstraße 12, 34466 Wolfhagen | lat = 51.325162 | long = 9.170854 | phone = +49 5692 2566| hours = Mo bis Mi 17 - 22 Uhr; Fr 17 - 23 Uhr; Sa 10 - 22 Uhr, Do und So geschlossen | price = | lastedit = 2020-03-30 | facebook = knacke.woh | description = Beste Kneipe in Wolfhagen, mit langer Tradition. Bringt Alt und Jung zusammen. }}
== Unterkunft ==
* Zum Unterkunftsverzeichnis der [https://wolfhagen.de/stadtplan/?jsf=jet-engine&meta=typ!is_custom_checkbox:Unterkuenfte Stadt Wolfhagen] (mit Ferienwohnungen und Unterkünften in den Stadtteilen.)
* {{vCard | type = caravan site | name = Wohnmobilstellplatz Wolfhagen | lat = 51.33014444 | long = 9.17102222 | lastedit = 2018-06-26 | description = Der Platz mit 34 Stellplätzen liegt nur wenige Meter nördlich der Altstadt in den Bruchwiesen. Stellplatzgebühren: keine; Spenden erwünscht. Zu Hauptbesuchszeiten (z. B. Ostern) kann der Platz ausgelastet sein. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Altes Rathaus" | url = https://www.hotel-altes-rathaus-wolfhagen.de/ | address = Kirchplatz 1, 34466 Wolfhagen | lat = 51.3250835 | long = 9.1668356 | phone = +49 (0)5692 - 997906 | fax = +49 (0)5692 - 997908 | price = EZ ab 43 €, DZ ab 70 € | lastedit = 2019-03-01 | description = Erst nach dem Umzug der Stadtverwaltung in die Burgstraße 33 wurde das alte Rathaus, das direkt im Stadtkern liegt, in ein Hotel und Restaurant umgebaut. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zum Schiffchen" | url = https://www.hotel-zum-schiffchen.de/ | email = besucher@hotel-zum-schiffchen.de | address = Hans-Staden-Straße 27, 34466 Wolfhagen | lat = 51.322827 | long = 9.166625 | phone = +49 (0)5692 - 98750 | fax = +49 (0)5692 - 987511 | price = EZ ab 44,90 €, DZ ab 63 € | lastedit = 2019-03-01 | description = 11 Hotelzimmer in 2 Kategorien }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zum Chattenturm" | url = https://zum-chattenturm.de/ | email = info@hotel-zum-chattenturm.de | address = Schützeberger Straße 67, Wolfhagen | lat = 51.327464 | long = 9.171051 | phone = +49 (0)5692 - 2387 | fax = +49 (0)5692 - 8503 | price = EZ ab 60 € (mit Frühstück 75 €), DZ ab 80 € (mit Frühstück 110 €) | lastedit = 2019-03-01 | description = Die Gästezimmer befinden sich in den starken, historischen Mauern. Das sorgt für den ungestörten Schlaf der Gäste. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zur Stadt Wolfhagen" | address = Mittelstraße 9, 34466 Wolfhagen | lat = 51.3254633 | long = 9.1667513 | phone = +49 (0)5692 - 993064 | fax = +49 (0)5692 - 993111 | price = ab 34 € | lastedit = 2019-03-01 | mobile = +49 (0)176 32822214 | description = Hotel, Restaurant und Cafe }}
== Sicherheit ==
Wolfhagen ist eine sichere Stadt. Besondere Verhaltensregeln über die üblichen Vorsichtsmaßnahmen hinaus, wie Fahrrad abschließen usw., sind nicht notwendig.
== Gesundheit ==
* {{vCard|name=Kreiskliniken Kassel - Standort Wolfhagen|type=hospital|lat=51.32015|long=9.19085|lastedit=2022-03-28|description=Das Krankenhaus wurde von Gesundheit Nordhessen durch den Landkreis Kassel übernommen. Weiterer Standort ist Hofgeismar.}}
== Praktische Hinweise ==
* {{vCard | name = Stadt- und Tourist-Information | type = tourist information | url = https://wolfhagen.de/tourismus/ | address = Burgstraße 33-35, 34466 Wolfhagen | lat = 51.32442 | long = 9.16848 | phone = +49 (0)5692 602102 | fax = +49 (0)5692 602190 | email = tourist-info@wolfhagen.de
}}
* {{vCard | name = öffentliche Toilette am Rathaus | type = toilet | lat = 51.32421 | long = 9.16822 | lastedit = 2018-06-26 | description = Eine frei zugängliche, öffentliche Toilettenanlage befindet sich am Rathaus oberhalb des Marktplatzes.
}}
== Ausflüge ==
=== Bis 10 km Entfernung ===
* {{vCard | type = castle| name=Weidelsburg|wikidata=Q1621311|lat =51.272917| long =9.144319| description = Die große Burgruine mit sehr schöner Aussicht liegt etwa 5 km südlich von Wolfhagen oberhalb des Stadtteils Ippinghausen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Festberg|lat =51.335032 |long = 9.217336 | description =Bergrücken mit Kalkmagerrasen und schönem Landschaftsblick zwischen Philippinenthal und Altenhasungen. Zwei Bänke laden zum Entspannen ein. Die Erhebung liegt etwa 4 km nordöstlich von Wolfhagen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Glockenborn|lat =51.305722 |long = 9.18775 | description =Künstlich angelegtes Feuchtgebiet mit zwei Seen, kleineren Stillgewässern und Extensivgrünland. Insgesamt drei Aussichtspunkte mit guter Beobachtungsposition für seltene Vogel- und Amphibienartenn. Das Gebiet liegt etwa 3 km südöstlich der Innenstadt}}
=== Bis 30 km Entfernung ===
* an den '''[[Edersee]]''' (etwa 25 km südlich)
* nach [[Fritzlar]] (etwa 25 km südlich)
* nach [[Bad Arolsen]] (etwa 15 km nordwestlich)
* nach [[Warburg]] (etwa 20 km nördlich)
* nach Kassel in den '''[[Bergpark Wilhelmshöhe]]''' (etwa 25 km östlich)
* [[Eco Pfad Kulturgeschichte Wolfhagen]]
{{Panorama|bild=Weidelsberg_pano_nordostblick_ds_08_2009.jpg|unterschrift='''Nordostblick von der [[Weidelsburg]]:''' Links vorne im Panorama ist Ippinghausen zu erkennen. Schräg rechts darüber sieht man [[Wolfhagen]]. Am Horizont in der Bildmitte ist der [[Großer Bärenberg|Große Bärenberg]] mit Funk- und Aussichtsturm sehen. Weiter rechts oberhalb der Windkraftanlagen liegt der [[Habichtswald (Gebirge)|Habichtswald]]|breite=1400px}}
== Literatur ==
'''Radwanderkarte:'''
* '''ADFC Regionalkarte "Kassel / Nordhessen"''' - Maßstab 1: 75.000; {{ISBN|978-3870736392}}; Preis: 8,95 €. Die spezielle Radwanderkarte mit detaillierter Routendarstellung auf reißfestem und wasserabweisendem Papier bildet Nordhessen hinsichtlich Oberflächenbeschaffenheit, Verkehrsbelastung und Tourenvorschlägen fast vollständig ab. Ab Wolfhagen auch für größere Touren z. B. zum Edersee, nach Fritzlar, Warburg usw. nutzbar.
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.31667| long= 9.16667| radius= }}
{{IstInKat|Naturpark Habichtswald}}
88d1zu9i9qvddc0062o8to2j2daiubj
1769045
1769044
2026-04-16T19:36:55Z
Dirk Schmidt
15181
/* Unterkunft */ Geänderte vCard für Hotel und Restaurant "Zum Chattenturm"
1769045
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Wolfhagen''' ist eine Kleinstadt in [[Nordhessen]] etwa 30 km westlich von Kassel gelegen.
Das "Wolfhager Land" liegt landschaftlich schön im [[Naturpark Habichtswald]]. Besonders einen Besuch wert ist die [[Weidelsburg]] oberhalb des Stadtteils Ippinghausen.
== Hintergrund ==
{{Mapframe|51.32809|9.16843|zoom=14|type=geoline}}
Die Stadt wurde 1231 unter Landgraf [[w:Konrad von Thüringen|Konrad von Thüringen]] gegründet.
1264 erhielt Wolfhagen das Stadtrecht. 1302 konnte die Stadtbefestigung fertiggestellt werden.
Im Dreißigjährigen Krieg wurde die Stadt fast vollständig dem Erdboden gleich gemacht.
=== Stadtgliederung ===
Neben der Kernstadt besteht Wolfhagen (mit dem Weiler Elmarshausen) aus elf weiteren Ortsteilen, die sich jeweils als Dorf rund um die Kernstadt erstrecken:
{{3 Spalten|
;{{Marker | type = quarter | name =Altenhasungen|wikidata=Q437180| styles = normal }}
;{{Marker | type = quarter | name =Bründersen|wikidata=Q997012| styles = normal }}
;{{Marker | type = quarter | name =Gasterfeld|wikidata=Q1495410| styles = normal }}
;{{Marker | type = quarter | name =Ippinghausen|wikidata=Q1672275| styles = normal }}
;{{Marker | type = quarter | name =Istha|wikidata=Q1674843| styles = normal }}
;{{Marker | type = quarter | name =Leckringhausen|wikidata=Q1811416| styles = normal }}
;{{Marker | type = quarter | name =Niederelsungen|wikidata=Q1987742| styles = normal }}
;{{Marker | type = quarter | name =Nothfelden|wikidata=Q1688879| styles = normal }}
;{{Marker | type = quarter | name =Philippinenburg und -thal|wikidata=Q1543020| styles = normal }}
;{{Marker | type = quarter | name =Viesebeck|wikidata=Q2523788| styles = normal }}
;{{Marker | type = quarter | name =Wenigenhasungen|wikidata=Q2559437| styles = normal }}.
}}
=== Nachbargemeinden ===
Wolfhagen grenzt im Nordwesten an {{Marker| type = town| name = Volkmarsen|wikidata=Q533535|styles = normal }},
im Norden an {{Marker | type = town| name = Breuna |wikidata=Q503830| styles = normal }},
im Osten an {{Marker | type = town| name = Zierenberg|wikidata=Q199094| styles = normal }} und {{Marker | type = town| name = Habichtswald|wikidata=Q624629| styles = normal }},
im Südosten an {{Marker | type = town| name = Schauenburg|wikidata=Q175419| styles = normal }},
im Süden an {{Marker | type = town| name = Bad Emstal |wikidata=Q291091| styles = normal }} und {{Marker | type = town| name = Naumburg|wikidata=Q641014| styles = normal }},
im Südwesten an {{Marker | type = town| name = Waldeck|wikidata=Q540107| styles = normal }},
sowie im Westen an {{Marker | type = town| name = Bad Arolsen |wikidata=Q498078| styles = normal }}.
== Anreise ==
=== Mit dem Flugzeug ===
* Der nächste Flughafen ist der {{marker|type = airport|name = Flughafen Kassel-Calden |wikidata = Q529143}} etwa 26 km nordwestlich von Wolfhagen, danach folgt der {{marker|type = airport|name = Flughafen Paderborn Lippstadt|wikidata = Q685536}}, der ca. 55 km nordwestlich liegt (gut über die Autobahn A 44 zu erreichen). Die meisten Flugoptionen hat man allerdings vom {{marker|type = airport|name = Flughafen Frankfurt am Main |wikidata = Q46033}}, welcher etwa 220 km entfernt ist.
=== Mit der Bahn ===
* {{vCard | type = train | name = Bahnhof Wolfhagen | wikidata = Q55637849 | description = Wolfhagen liegt an der [[Kurhessenbahn]] [[Korbach]] - [[Kassel]]. Mit dem Regionalexpress bestehen direkte Verbindungen zum ICE in Kassel-Wilhelmshöhe. Des weiteren kann man mit der Regiotram direkt bis ins Stadtzentrum von Kassel fahren.
}}
=== Auf der Straße ===
* Die Autobahn {{RSIGN|DE|A |44}} Kassel - Dortmund an der Anschlussstellen Zierenberg (aus Richtung Kassel) bzw. Breuna (aus Richtung Dortmund) verlassen.
* Die [[Deutsche Fachwerkstraße]] führt durch den Ort.
=== Mit dem Fahrrad ===
[[File:Wolfhagen stadtblick von Sueden vom radfernweg r 4.jpg|thumb|Am hess. Radfernweg R 4: Blick von Süden auf Wolfhagen]]
* Die Stadt liegt am '''[[Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen|Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen]]''' der die Stadt in Nord-Süd Richtung für den Radurlauber erschließt. Im Bereich von Zierenberg über Wolfhagen nach Naumburg ist die Strecke allerdings recht bergig und verläuft zun großen Teilen auf Landstraßen, die zum Teil schnell und auch stärker befahren sind. Die verkehrsfreien Strecken sind öfter geschottert.
*Gut zu wissen: Wer auf der Durchreise per Rad auf dem R 4 ist und seinen Pedelec-Akku während einer Pause laden möchte, findet am Rathaus einem Fahrradständer mit frei zugänglichen Steckdosen.
== Mobilität ==
* {{vCard|type=taxi|name= Taxi Brandau Wolfhagen|address=|phone=+49(0)5692 997700|url=http://www.taxi-brandau-kassel.de|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard | type = parking | name = Parkhaus Mittelstraße / Schäferstraße | lat = 51.32604 | long = 9.17097 | price = frei | lastedit = 2018-06-26 | description = Parkhaus in der Altstadt mit zwei Ebenen, die von verschiedenen Seiten angefahren werden. }}
* {{vCard | type = parking | name = Tiefgarage Rathaus | lat = 51.324124| long = 9.168018 | price = frei | lastedit = 2020-03-29 | description = Parkhaus in der Altstadt, unterhalb des neuen Rathaus. Die Tiefgarage verfügt über eine Ebene und kann nur von der kleinen Straße zwischen Landgrafen und Burgstraße aus angefahren werden. }}
* {{vCard | type = parking | name = Parkaus Torstraße/Wilhelmsstraße | lat = 51.327147| long = 9.172285 | price = frei | lastedit = 2020-03-29 | description = Parkhaus unterhalb der Altstadt, nahe der Sparkasse. Das Parkhaus verfügt über mehrere Ebenen und kann von Wilhelms- und Torstraße aus angefahren werden. Das Gebäude ist als Drogentreffpunkt der Stadt bekannt. }}
== Sehenswürdigkeiten ==
[[Bild:wolfhagen_von_sueden_ds_wv_07_2009.jpg|thumb|Wolfhagen - Blick auf die Altstadt von Süden]]
Wolfhagen besitzt eine sehenswerte '''Altstadt mit Fachwerkbauten'''. Kleinere Reste der Stadtmauer sind ebenfalls noch vorhanden.
* Der {{marker| type = square | name = Marktplatz | lat = 51.32489 | long = 9.16846 }} ist ein gemütlicher Stadtraum mit Café und der Stadtkirche. Prächtigstes Haus am Platz ist der Fachwerkbau des „Alten Rathauses”. Das Haus beherbergt heute ein Hotel mit Restaurant. Auf dem Platz befindet sich ferner der Märchenbrunnen, der eine Szene aus dem Märchen "Der Wolf und die sieben Geislein" zeigt.
* {{vCard | type = church | name = Stadtkirche Wolfhagen | url = http://www.stadtkirche-wolfhagen.de | wikidata = Q83797087 | hours = Sommer 8-18 Uhr, Winter 9-17 Uhr | description = Die weithin sichtbare evangelische Kirche steht am Marktplatz. Bei der Stadtgründung im Jahr 1231 wurde mit dem Bau der Kirche als gotische Hallenkirche begonnen. Das Gebäude ist allerdings nicht rein gotisch. Im Laufe der baulichen Veränderungen haben verschiedene Stile das Gebäude geprägt. Sehenswert sind unter anderem die Chorfenster aus dem Jahr 1691, die Glasfenster von Hans-Gottfried von Stockhausen sowie das Westportal am Turm.}}
* {{vCard | type = church | name =St. Maria|lat =51.325212 |long =9.176246 |url=https://www.katholische-kirche-wolfhagen.de/ |description=Die katholische Kirche wurde 1966 erbaut und ersetzte die Notkirche am Koppenberg, die nach dem Zweiten Weltkrieg errichtet wurde. }}
* {{vCard | type = church | name =Friedhofskapelle|lat =51.325593 |long =9.173586 |description=Die heutige Friedhofskapelle ist die ursprüngliche [[w:Wolfhagen#Hospitalkapelle|Hospitalkapelle]]. Sie ist ein einschiffiges, hochgotisches Gebäude aus Sandsteinquadern.}}
* {{vCard | type = castle| name=Burg Wolfhagen| wikidata=Q1014646| lat =51.3227|long =9.165|description =Im Jahre 1513 wurde ein Neubau der Burg erstellt. Ende des 16. Jahrhunderts war sie verfallen, Anfang des 17. Jahrhunderts wurde sie abgerissen. Erhalten geblieben sind lediglich Reste.}}
* {{vCard | type = castle| name=Burgruine Helfenberg| wikidata=Q1015331| lat =51.329722|long =9.209167| description =Die Überreste der Burg befinden sich rund 2,5 km östlich der Kernstadt.}}
* {{marker| type = tower | name = Chattenturm | lat = 51.32766 | long = 9.17167 }} Als Rest der Stadtbefestigung kann der Wehrturm bestiegen werden. Der Schlüssel ist in der Tourist-Information im Rathaus erhältlich.
* Der frei zugängliche {{marker | type = tower | name = Ofenberg-Turm |wikidata=Q1800311 |lat = 51.32749 | long = 9.18990 }} liegt etwa 1,5 km östlich der Stadtmitte. Schöne kleine Wanderung von der Stadtmitte: Hier zu am besten via Mittelstraße und Treppenanlage "Am Hospitalgarten" die Altstadt nach Osten verlassen. Von hier an der Brücke der Karlstraße die Umgehungsstraße queren. Am Ende der Karlstraße in eine Links-Rechts-Kombination in die Ofenbergstraße wechseln. Vom Ende der Ofenbergstraße gibt es Wanderpfade durch den Wald zum Turm hoch. Strecke ab Marktplatz etwa 5 km Retour mit rund 150 Höhenmetern.
* Der {{marker | type = park | name = Stadtpark | name-map = Kattenturm | lat = 51.32477 | long = 9.16522 }} liegt westlich der Altstadt in einem kleinen Tal. Der Park ist nicht spektakulär. Wer aber einen kleinen, altstadtnahen Spaziergang unternehmen möchte, für den ist der Park mit Teich und Spielplatz ein nettes Ziel.
* {{vCard | type = museum | name = Regionalmuseum Wolfhager Land | url = http://www.regionalmuseum-wolfhagen.de/ | address = Ritterstr. 1 | lat = 51.32297 | long = 9.16540 | phone = +49 (0)5692 992431 | hours = Di bis Do 10-13 und 14-17 Uhr, Sa und So 14-17 Uhr | price = Erwachsene: 3 €, Familienkarte: 6 € | lastedit = 2017-11-04 | description = Das Museum in der alten Burg informiert über die Geschichte der Stadt und Region.}}
* {{vCard | type = museum | name = Museum für Film- und Videotechnik | url = http://www.filmmuseum-wolfhagen.de | address = Triangelstraße 19 | lat = 51.32669 | long = 9.17041 | phone = +49(0)5692 994956 | hours = Sonntags von 11-12:30 Uhr, Gruppenbesuche mit Führung nach Vereinbarung | price = Eintritt frei, Spende erwünscht | lastedit = 2017-11-04 | description = Das Museum beschäftigt sich mit filmtechnischen Gerätschaften bis zum 35-mm Format. Die Ausstellung ist noch im Aufbau.}}
* {{vCard | type = rock | name = Felsgruppe Rauensteine | lat = 51.2895 | long = 9.1666 | lastedit = 2018-06-26 | description = Die nicht spektakuläre, aber sehenswerte Felsgruppe findet sich etwa 5 km südlich der Kernstadt zwischen den Ortsteilen Ippinghausen und Bründersen. Die Sandsteine liegen in einem Waldgebiet und sind 4 bis 5 m hoch. Das Naturdenkmal ist von beiden Dörfern über den Wanderweg "Wolfsfährte" erreichbar (Markierung Wolfssysmbol auf kleinen Metallschildern, [https://www.openstreetmap.org/relation/3764717#map=13/51.2904/9.1690 Streckenverlauf auf Openstreetmap]). }}
* {{vCard | type = cave | name = Felskeller "Drachenhöhle" | lat = 51.3073546 | long = 9.1715908 | lastedit = 2018-06-26 | description = Der künstlich angelegte Felsenkeller findet sich am Graner Berg. Für eine Expedition in die Keller benötigt man eine Lichtquelle. Die Drachenhöhle ist direkt nur zu Fuß über Pfade zugänglich und kann bis zum Graner Berg gut per Fahrrad angefahren werden. Mit Stand 2014 ist die vor allem für Familien mit größeren Kindern interessante Sehenswürdigkeit nicht ausgeschildert. }}
== Aktivitäten ==
* '''Wandern''' - Die grüne Landschaft rund am Wolfhagen lädt zu vielfältigen Wanderungen ein, wie zum Beispiel auf [[Habichtswaldsteig]] und [[Eco Pfad Kulturgeschichte Wolfhagen]]. Ein schönes Wanderrevier sind z. B. die Wälder rund um das obere Elbetal bei Ippinghausen. Es gibt hier ab dem Wanderparkplatz unterhalb der Weidelsburg ausgeschilderte Rundwanderwege. Höhepunkt einer Wanderung kann hier der Besuch der [[Weidelsburg]] sein. Im Elbetal kann man schön in der Hasenmühle einkehren.
* '''Radwandern''' - Rund um Wolfhagen gibt es landschaftliche schöne Routen zum Radwandern. Die Touren sind meist bergig und die Strecken öfter geschottert. Die Schilder für das flächige Radwegweisungsnetz sollen bis Ende 2018 aufgestellt werden. Wer möchte kann z. B. über den Hessischen Radfernweg R 4 in das 10 km südlich liegende Fachwerkstädtchen [[Naumburg (Hessen)]] radeln (z. T. Schotterwege). Überregionale Radwanderkarte siehe Abschnitt [[#Literatur|Literatur]]
* {{marker|type=swimming|name=Erlebnis-Freibad|lat=51.3245|long=9.1827}} - das zwischen Mai und August geöffnete Bad besitzt eine 36 m lange Wasserrutsche. Lage: Nördlich der Umgehungsstraße in der Sudetenstraße.
* '''Rundflüge''' - können über die [http://www.edgw.de/ Luftsportvereinigung Wolfhagen e. V.] individuell erfragt/ gebucht werden. Der kleine Flugplatz liegt landschaftlich sehr schön auf dem [[w:Graner Berg|Graner Berg]] etwa 2 km südlich der Stadt.
* {{vCard | name = Cinema Wolfhagen | type = cinema | url = https://kino-wolfhagen.de | address = Schützebergerstr. 37, 34466 Wolfhagen | lat = 51.32582 | long = 9.16842 | phone = 05692 995099 | description = Das Kino liegt in einem der ältesten Häuser der Stadt. Es gibt immer aktuelle Filme, auch in neuester 3D-Technik. Ferner werden besondere Aktionen wie "Café und Kino", "Kulinarisches Kino" und "Der besondere Film" (Programmkino) angeboten. Preise sind fair, Personal ist freundlich, Aktionen und Kino sind gut besucht. Reservierungen und Kartenkauf können über das Onlinesystem vorgenommen werden.
}}
* {{vCard | name = Waldbühne Niederelsungen | type = theater | url = http://www.waldbuehne.niederelsungen.de | lat = 51.38328 | long = 9.18952 | description = Etwa 8 km außerhalb liegt im Ortsteil Niederelsungen die Waldbühne. Alle zwei Jahre wird in der Freiluftbühne im Sommer Theater gespielt. Die Preise sind moderat und es ist oft gar nicht einfach eins der 1300 Ticket zu bekommen.
}}
=== Feste ===
* {{vCard|name=Vieh- und Krammarkt |wikidata=|type=festival |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Das traditionsreiche und größte Fest der Stadt findet alljährlich im Juli auf der Liemecke statt und besteht aus Viehschau und Vergnügungspark.}}
* {{vCard|name=Kulturzelt Wolfhagen |wikidata=|type=festival |address=|phone=|email=|url=http://www.kulturzelt.de |hours=|price=|lat=|long=|lastedit=|description=Das große Kleinkunstfestival im Juni im Stadtpark Teichwiesen wartet auch mit bekannten Namen auf und findet mittlerweile auch überregional Beachtung.}}
== Einkaufen ==
* '''Lebensmitteleinkauf:''' Zwei Lebensmittelmärkte finden sich bei {{Marker | name = zwei Lebensmittelmärkte | type= shop | lat = 51.329824 | long = 9.173756| show =noname }} an der Schützeberger Straße.
== Küche ==
* {{vCard|type=restaurant|name=Zum Chattenturm|wikidata= Q57021087| lastedit = 2018-01-01 |description=}}
* {{vCard|type=restaurant|name=„Zum Schiffchen“|address=Hans-Staden-Straße 27|phone=+49 05692 9875-0|email=besucher@hotel-zum-schiffchen.de|fax=+49 05692 9875-11|url=https://www.hotel-zum-schiffchen.de/|hours=Mo.-Sa.: 17-24 Uhr; So.: 11-15 Uhr; jeden 2. Sonntagabend: 17-23 Uhr; Feiertage: 11-15 Uhr und 17-23 Uhr; Küche: 11:30-14 Uhr und 17:30-22 Uhr|price=|lat=51.32279|long=9.16664}}
* {{vCard|type=restaurant|name=Gasthaus Hotel Pfeifferling|address=Waldecker Straße 7|phone=+49 05692 5980|email=info@gasthaus-pfeifferling.de|fax=+49 05692 8111|url=https://www.gasthaus-pfeifferling.de/|hours=|price=|lat=51.28106|long=9.14285}}
* {{vCard|name=Konditorei Oliev |wikidata=|type=pastry shop |address=Schützeberger Str. 49 |phone=+49 05692 993971 |email=|url=|hours=|price=|lat=51.32660 |long=9.16939 |lastedit=|description=Gemütliche Kaffee-Atmosphäre drinnen und draußen in der Altstadt, freundliche Bedienung, faire Preise, vom Frühstück bis zum späten Nachmittag durchgehend geöffnet.}}
* {{vCard|name=Ristorante San Remo |wikidata=|type=restaurant |address=Schützeberger Str. 37 |phone=+49 05692 5920 |email=|url=https://www.restaurant-san-remo.eu/ |hours=|price=|lat=51.32579 |long=9.16829 |lastedit=|description=Italienische Küche in der Altstadt, wie man sie gerne isst. Ein gemütliches Lokal, im Sommer auch draußen, mit angemessenen Preisen, freundlichem Service und saisonaler Küche. Abends und am Wochenende ist Tischbestellung zu empfehlen.}}
* {{vCard | name = Eiscafe Da Peppo | type = ice cream | address = Schützeberger Str. 47 | lat = 51.32651 | long = 9.16931 | phone = +49 05692 9968484 | description = Hier erhält man im Straßenverkauf recht große Kugeln Eis zu 1,20 Cent das Stück (Frühjahr 2020).
}}
== Nachtleben ==
Die Landruhe mit klarem Sternenhimmel genießen.
* {{vCard | type = bar | name = Mamounia Lounge/Shisha bar| facebook = MAMOUNIALOUNGEWOLFHAGEN | address = Kurfürstenstraße 47, 34466 Wolfhagen | lat = 51.3216698 | long = 9.1813215 | phone = +49 160 8980069 | hours = Mo bis Do 18:00 - 0:00 Uhr; Fr bis Sa 17:00 - 0:00 Uhr; So 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Einzige Shisha bar der Stadt, die bislang überlebt hat. Klein aber gemütlich.}}
* {{vCard | type = bar | name = Zottels Pub | url = http://www.zottels-kneipe.de/ | facebook = zottels.pub | address = Mittelstraße 22-24, 34466 Wolfhagen | lat = 51.325656 | long = 9.171556 | phone = +49 172 5704415 | hours = So bis Mo geschlossen; Di bis Sa 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Raucherbar mit langer Tradition und gewissem Ruf in Wolfhagen. Fußballspiele werden live übertragen. Es gibt einen Dartsroom mit einigen Scheiben und eigener Mannschaft. Es werden Turniere in der Kai Schumacher Dartliga abgehalten }}
* {{vCard | type = bar | name = Gaststätte zur Knackenburg| address = Burgstraße 12, 34466 Wolfhagen | lat = 51.325162 | long = 9.170854 | phone = +49 5692 2566| hours = Mo bis Mi 17 - 22 Uhr; Fr 17 - 23 Uhr; Sa 10 - 22 Uhr, Do und So geschlossen | price = | lastedit = 2020-03-30 | facebook = knacke.woh | description = Beste Kneipe in Wolfhagen, mit langer Tradition. Bringt Alt und Jung zusammen. }}
== Unterkunft ==
* Zum Unterkunftsverzeichnis der [https://wolfhagen.de/stadtplan/?jsf=jet-engine&meta=typ!is_custom_checkbox:Unterkuenfte Stadt Wolfhagen] (mit Ferienwohnungen und Unterkünften in den Stadtteilen.)
* {{vCard | type = caravan site | name = Wohnmobilstellplatz Wolfhagen | lat = 51.33014444 | long = 9.17102222 | lastedit = 2018-06-26 | description = Der Platz mit 34 Stellplätzen liegt nur wenige Meter nördlich der Altstadt in den Bruchwiesen. Stellplatzgebühren: keine; Spenden erwünscht. Zu Hauptbesuchszeiten (z. B. Ostern) kann der Platz ausgelastet sein. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Altes Rathaus" | url = https://www.hotel-altes-rathaus-wolfhagen.de/ | address = Kirchplatz 1, 34466 Wolfhagen | lat = 51.3250835 | long = 9.1668356 | phone = +49 (0)5692 - 997906 | fax = +49 (0)5692 - 997908 | price = EZ ab 43 €, DZ ab 70 € | lastedit = 2019-03-01 | description = Erst nach dem Umzug der Stadtverwaltung in die Burgstraße 33 wurde das alte Rathaus, das direkt im Stadtkern liegt, in ein Hotel und Restaurant umgebaut. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zum Schiffchen" | url = https://www.hotel-zum-schiffchen.de/ | email = besucher@hotel-zum-schiffchen.de | address = Hans-Staden-Straße 27, 34466 Wolfhagen | lat = 51.322827 | long = 9.166625 | phone = +49 (0)5692 - 98750 | fax = +49 (0)5692 - 987511 | price = EZ ab 44,90 €, DZ ab 63 € | lastedit = 2019-03-01 | description = 11 Hotelzimmer in 2 Kategorien }}
* {{vCard | name = Hotel und Restaurant "Zum Chattenturm" | type = hotel | url = https://zum-chattenturm.de/ | address = Schützeberger Straße 67, Wolfhagen | lat = 51.32746 | long = 9.17105 | phone = +49 (0)5692 - 2387 | fax = +49 (0)5692 - 8503 | email = info@hotel-zum-chattenturm.de | price = EZ ab 60 € (mit Frühstück 75 €), DZ ab 80 € (mit Frühstück 110 €) | lastedit = 2026-04-16 | description = Die Gästezimmer befinden sich in den starken, historischen Mauern. Das sorgt für den ungestörten Schlaf der Gäste.
}}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zur Stadt Wolfhagen" | address = Mittelstraße 9, 34466 Wolfhagen | lat = 51.3254633 | long = 9.1667513 | phone = +49 (0)5692 - 993064 | fax = +49 (0)5692 - 993111 | price = ab 34 € | lastedit = 2019-03-01 | mobile = +49 (0)176 32822214 | description = Hotel, Restaurant und Cafe }}
== Sicherheit ==
Wolfhagen ist eine sichere Stadt. Besondere Verhaltensregeln über die üblichen Vorsichtsmaßnahmen hinaus, wie Fahrrad abschließen usw., sind nicht notwendig.
== Gesundheit ==
* {{vCard|name=Kreiskliniken Kassel - Standort Wolfhagen|type=hospital|lat=51.32015|long=9.19085|lastedit=2022-03-28|description=Das Krankenhaus wurde von Gesundheit Nordhessen durch den Landkreis Kassel übernommen. Weiterer Standort ist Hofgeismar.}}
== Praktische Hinweise ==
* {{vCard | name = Stadt- und Tourist-Information | type = tourist information | url = https://wolfhagen.de/tourismus/ | address = Burgstraße 33-35, 34466 Wolfhagen | lat = 51.32442 | long = 9.16848 | phone = +49 (0)5692 602102 | fax = +49 (0)5692 602190 | email = tourist-info@wolfhagen.de
}}
* {{vCard | name = öffentliche Toilette am Rathaus | type = toilet | lat = 51.32421 | long = 9.16822 | lastedit = 2018-06-26 | description = Eine frei zugängliche, öffentliche Toilettenanlage befindet sich am Rathaus oberhalb des Marktplatzes.
}}
== Ausflüge ==
=== Bis 10 km Entfernung ===
* {{vCard | type = castle| name=Weidelsburg|wikidata=Q1621311|lat =51.272917| long =9.144319| description = Die große Burgruine mit sehr schöner Aussicht liegt etwa 5 km südlich von Wolfhagen oberhalb des Stadtteils Ippinghausen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Festberg|lat =51.335032 |long = 9.217336 | description =Bergrücken mit Kalkmagerrasen und schönem Landschaftsblick zwischen Philippinenthal und Altenhasungen. Zwei Bänke laden zum Entspannen ein. Die Erhebung liegt etwa 4 km nordöstlich von Wolfhagen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Glockenborn|lat =51.305722 |long = 9.18775 | description =Künstlich angelegtes Feuchtgebiet mit zwei Seen, kleineren Stillgewässern und Extensivgrünland. Insgesamt drei Aussichtspunkte mit guter Beobachtungsposition für seltene Vogel- und Amphibienartenn. Das Gebiet liegt etwa 3 km südöstlich der Innenstadt}}
=== Bis 30 km Entfernung ===
* an den '''[[Edersee]]''' (etwa 25 km südlich)
* nach [[Fritzlar]] (etwa 25 km südlich)
* nach [[Bad Arolsen]] (etwa 15 km nordwestlich)
* nach [[Warburg]] (etwa 20 km nördlich)
* nach Kassel in den '''[[Bergpark Wilhelmshöhe]]''' (etwa 25 km östlich)
* [[Eco Pfad Kulturgeschichte Wolfhagen]]
{{Panorama|bild=Weidelsberg_pano_nordostblick_ds_08_2009.jpg|unterschrift='''Nordostblick von der [[Weidelsburg]]:''' Links vorne im Panorama ist Ippinghausen zu erkennen. Schräg rechts darüber sieht man [[Wolfhagen]]. Am Horizont in der Bildmitte ist der [[Großer Bärenberg|Große Bärenberg]] mit Funk- und Aussichtsturm sehen. Weiter rechts oberhalb der Windkraftanlagen liegt der [[Habichtswald (Gebirge)|Habichtswald]]|breite=1400px}}
== Literatur ==
'''Radwanderkarte:'''
* '''ADFC Regionalkarte "Kassel / Nordhessen"''' - Maßstab 1: 75.000; {{ISBN|978-3870736392}}; Preis: 8,95 €. Die spezielle Radwanderkarte mit detaillierter Routendarstellung auf reißfestem und wasserabweisendem Papier bildet Nordhessen hinsichtlich Oberflächenbeschaffenheit, Verkehrsbelastung und Tourenvorschlägen fast vollständig ab. Ab Wolfhagen auch für größere Touren z. B. zum Edersee, nach Fritzlar, Warburg usw. nutzbar.
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.31667| long= 9.16667| radius= }}
{{IstInKat|Naturpark Habichtswald}}
78x5n5orl2yhbe72reuijdoei1brfx2
1769046
1769045
2026-04-16T19:37:50Z
Dirk Schmidt
15181
/* Unterkunft */
1769046
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Wolfhagen''' ist eine Kleinstadt in [[Nordhessen]] etwa 30 km westlich von Kassel gelegen.
Das "Wolfhager Land" liegt landschaftlich schön im [[Naturpark Habichtswald]]. Besonders einen Besuch wert ist die [[Weidelsburg]] oberhalb des Stadtteils Ippinghausen.
== Hintergrund ==
{{Mapframe|51.32809|9.16843|zoom=14|type=geoline}}
Die Stadt wurde 1231 unter Landgraf [[w:Konrad von Thüringen|Konrad von Thüringen]] gegründet.
1264 erhielt Wolfhagen das Stadtrecht. 1302 konnte die Stadtbefestigung fertiggestellt werden.
Im Dreißigjährigen Krieg wurde die Stadt fast vollständig dem Erdboden gleich gemacht.
=== Stadtgliederung ===
Neben der Kernstadt besteht Wolfhagen (mit dem Weiler Elmarshausen) aus elf weiteren Ortsteilen, die sich jeweils als Dorf rund um die Kernstadt erstrecken:
{{3 Spalten|
;{{Marker | type = quarter | name =Altenhasungen|wikidata=Q437180| styles = normal }}
;{{Marker | type = quarter | name =Bründersen|wikidata=Q997012| styles = normal }}
;{{Marker | type = quarter | name =Gasterfeld|wikidata=Q1495410| styles = normal }}
;{{Marker | type = quarter | name =Ippinghausen|wikidata=Q1672275| styles = normal }}
;{{Marker | type = quarter | name =Istha|wikidata=Q1674843| styles = normal }}
;{{Marker | type = quarter | name =Leckringhausen|wikidata=Q1811416| styles = normal }}
;{{Marker | type = quarter | name =Niederelsungen|wikidata=Q1987742| styles = normal }}
;{{Marker | type = quarter | name =Nothfelden|wikidata=Q1688879| styles = normal }}
;{{Marker | type = quarter | name =Philippinenburg und -thal|wikidata=Q1543020| styles = normal }}
;{{Marker | type = quarter | name =Viesebeck|wikidata=Q2523788| styles = normal }}
;{{Marker | type = quarter | name =Wenigenhasungen|wikidata=Q2559437| styles = normal }}.
}}
=== Nachbargemeinden ===
Wolfhagen grenzt im Nordwesten an {{Marker| type = town| name = Volkmarsen|wikidata=Q533535|styles = normal }},
im Norden an {{Marker | type = town| name = Breuna |wikidata=Q503830| styles = normal }},
im Osten an {{Marker | type = town| name = Zierenberg|wikidata=Q199094| styles = normal }} und {{Marker | type = town| name = Habichtswald|wikidata=Q624629| styles = normal }},
im Südosten an {{Marker | type = town| name = Schauenburg|wikidata=Q175419| styles = normal }},
im Süden an {{Marker | type = town| name = Bad Emstal |wikidata=Q291091| styles = normal }} und {{Marker | type = town| name = Naumburg|wikidata=Q641014| styles = normal }},
im Südwesten an {{Marker | type = town| name = Waldeck|wikidata=Q540107| styles = normal }},
sowie im Westen an {{Marker | type = town| name = Bad Arolsen |wikidata=Q498078| styles = normal }}.
== Anreise ==
=== Mit dem Flugzeug ===
* Der nächste Flughafen ist der {{marker|type = airport|name = Flughafen Kassel-Calden |wikidata = Q529143}} etwa 26 km nordwestlich von Wolfhagen, danach folgt der {{marker|type = airport|name = Flughafen Paderborn Lippstadt|wikidata = Q685536}}, der ca. 55 km nordwestlich liegt (gut über die Autobahn A 44 zu erreichen). Die meisten Flugoptionen hat man allerdings vom {{marker|type = airport|name = Flughafen Frankfurt am Main |wikidata = Q46033}}, welcher etwa 220 km entfernt ist.
=== Mit der Bahn ===
* {{vCard | type = train | name = Bahnhof Wolfhagen | wikidata = Q55637849 | description = Wolfhagen liegt an der [[Kurhessenbahn]] [[Korbach]] - [[Kassel]]. Mit dem Regionalexpress bestehen direkte Verbindungen zum ICE in Kassel-Wilhelmshöhe. Des weiteren kann man mit der Regiotram direkt bis ins Stadtzentrum von Kassel fahren.
}}
=== Auf der Straße ===
* Die Autobahn {{RSIGN|DE|A |44}} Kassel - Dortmund an der Anschlussstellen Zierenberg (aus Richtung Kassel) bzw. Breuna (aus Richtung Dortmund) verlassen.
* Die [[Deutsche Fachwerkstraße]] führt durch den Ort.
=== Mit dem Fahrrad ===
[[File:Wolfhagen stadtblick von Sueden vom radfernweg r 4.jpg|thumb|Am hess. Radfernweg R 4: Blick von Süden auf Wolfhagen]]
* Die Stadt liegt am '''[[Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen|Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen]]''' der die Stadt in Nord-Süd Richtung für den Radurlauber erschließt. Im Bereich von Zierenberg über Wolfhagen nach Naumburg ist die Strecke allerdings recht bergig und verläuft zun großen Teilen auf Landstraßen, die zum Teil schnell und auch stärker befahren sind. Die verkehrsfreien Strecken sind öfter geschottert.
*Gut zu wissen: Wer auf der Durchreise per Rad auf dem R 4 ist und seinen Pedelec-Akku während einer Pause laden möchte, findet am Rathaus einem Fahrradständer mit frei zugänglichen Steckdosen.
== Mobilität ==
* {{vCard|type=taxi|name= Taxi Brandau Wolfhagen|address=|phone=+49(0)5692 997700|url=http://www.taxi-brandau-kassel.de|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard | type = parking | name = Parkhaus Mittelstraße / Schäferstraße | lat = 51.32604 | long = 9.17097 | price = frei | lastedit = 2018-06-26 | description = Parkhaus in der Altstadt mit zwei Ebenen, die von verschiedenen Seiten angefahren werden. }}
* {{vCard | type = parking | name = Tiefgarage Rathaus | lat = 51.324124| long = 9.168018 | price = frei | lastedit = 2020-03-29 | description = Parkhaus in der Altstadt, unterhalb des neuen Rathaus. Die Tiefgarage verfügt über eine Ebene und kann nur von der kleinen Straße zwischen Landgrafen und Burgstraße aus angefahren werden. }}
* {{vCard | type = parking | name = Parkaus Torstraße/Wilhelmsstraße | lat = 51.327147| long = 9.172285 | price = frei | lastedit = 2020-03-29 | description = Parkhaus unterhalb der Altstadt, nahe der Sparkasse. Das Parkhaus verfügt über mehrere Ebenen und kann von Wilhelms- und Torstraße aus angefahren werden. Das Gebäude ist als Drogentreffpunkt der Stadt bekannt. }}
== Sehenswürdigkeiten ==
[[Bild:wolfhagen_von_sueden_ds_wv_07_2009.jpg|thumb|Wolfhagen - Blick auf die Altstadt von Süden]]
Wolfhagen besitzt eine sehenswerte '''Altstadt mit Fachwerkbauten'''. Kleinere Reste der Stadtmauer sind ebenfalls noch vorhanden.
* Der {{marker| type = square | name = Marktplatz | lat = 51.32489 | long = 9.16846 }} ist ein gemütlicher Stadtraum mit Café und der Stadtkirche. Prächtigstes Haus am Platz ist der Fachwerkbau des „Alten Rathauses”. Das Haus beherbergt heute ein Hotel mit Restaurant. Auf dem Platz befindet sich ferner der Märchenbrunnen, der eine Szene aus dem Märchen "Der Wolf und die sieben Geislein" zeigt.
* {{vCard | type = church | name = Stadtkirche Wolfhagen | url = http://www.stadtkirche-wolfhagen.de | wikidata = Q83797087 | hours = Sommer 8-18 Uhr, Winter 9-17 Uhr | description = Die weithin sichtbare evangelische Kirche steht am Marktplatz. Bei der Stadtgründung im Jahr 1231 wurde mit dem Bau der Kirche als gotische Hallenkirche begonnen. Das Gebäude ist allerdings nicht rein gotisch. Im Laufe der baulichen Veränderungen haben verschiedene Stile das Gebäude geprägt. Sehenswert sind unter anderem die Chorfenster aus dem Jahr 1691, die Glasfenster von Hans-Gottfried von Stockhausen sowie das Westportal am Turm.}}
* {{vCard | type = church | name =St. Maria|lat =51.325212 |long =9.176246 |url=https://www.katholische-kirche-wolfhagen.de/ |description=Die katholische Kirche wurde 1966 erbaut und ersetzte die Notkirche am Koppenberg, die nach dem Zweiten Weltkrieg errichtet wurde. }}
* {{vCard | type = church | name =Friedhofskapelle|lat =51.325593 |long =9.173586 |description=Die heutige Friedhofskapelle ist die ursprüngliche [[w:Wolfhagen#Hospitalkapelle|Hospitalkapelle]]. Sie ist ein einschiffiges, hochgotisches Gebäude aus Sandsteinquadern.}}
* {{vCard | type = castle| name=Burg Wolfhagen| wikidata=Q1014646| lat =51.3227|long =9.165|description =Im Jahre 1513 wurde ein Neubau der Burg erstellt. Ende des 16. Jahrhunderts war sie verfallen, Anfang des 17. Jahrhunderts wurde sie abgerissen. Erhalten geblieben sind lediglich Reste.}}
* {{vCard | type = castle| name=Burgruine Helfenberg| wikidata=Q1015331| lat =51.329722|long =9.209167| description =Die Überreste der Burg befinden sich rund 2,5 km östlich der Kernstadt.}}
* {{marker| type = tower | name = Chattenturm | lat = 51.32766 | long = 9.17167 }} Als Rest der Stadtbefestigung kann der Wehrturm bestiegen werden. Der Schlüssel ist in der Tourist-Information im Rathaus erhältlich.
* Der frei zugängliche {{marker | type = tower | name = Ofenberg-Turm |wikidata=Q1800311 |lat = 51.32749 | long = 9.18990 }} liegt etwa 1,5 km östlich der Stadtmitte. Schöne kleine Wanderung von der Stadtmitte: Hier zu am besten via Mittelstraße und Treppenanlage "Am Hospitalgarten" die Altstadt nach Osten verlassen. Von hier an der Brücke der Karlstraße die Umgehungsstraße queren. Am Ende der Karlstraße in eine Links-Rechts-Kombination in die Ofenbergstraße wechseln. Vom Ende der Ofenbergstraße gibt es Wanderpfade durch den Wald zum Turm hoch. Strecke ab Marktplatz etwa 5 km Retour mit rund 150 Höhenmetern.
* Der {{marker | type = park | name = Stadtpark | name-map = Kattenturm | lat = 51.32477 | long = 9.16522 }} liegt westlich der Altstadt in einem kleinen Tal. Der Park ist nicht spektakulär. Wer aber einen kleinen, altstadtnahen Spaziergang unternehmen möchte, für den ist der Park mit Teich und Spielplatz ein nettes Ziel.
* {{vCard | type = museum | name = Regionalmuseum Wolfhager Land | url = http://www.regionalmuseum-wolfhagen.de/ | address = Ritterstr. 1 | lat = 51.32297 | long = 9.16540 | phone = +49 (0)5692 992431 | hours = Di bis Do 10-13 und 14-17 Uhr, Sa und So 14-17 Uhr | price = Erwachsene: 3 €, Familienkarte: 6 € | lastedit = 2017-11-04 | description = Das Museum in der alten Burg informiert über die Geschichte der Stadt und Region.}}
* {{vCard | type = museum | name = Museum für Film- und Videotechnik | url = http://www.filmmuseum-wolfhagen.de | address = Triangelstraße 19 | lat = 51.32669 | long = 9.17041 | phone = +49(0)5692 994956 | hours = Sonntags von 11-12:30 Uhr, Gruppenbesuche mit Führung nach Vereinbarung | price = Eintritt frei, Spende erwünscht | lastedit = 2017-11-04 | description = Das Museum beschäftigt sich mit filmtechnischen Gerätschaften bis zum 35-mm Format. Die Ausstellung ist noch im Aufbau.}}
* {{vCard | type = rock | name = Felsgruppe Rauensteine | lat = 51.2895 | long = 9.1666 | lastedit = 2018-06-26 | description = Die nicht spektakuläre, aber sehenswerte Felsgruppe findet sich etwa 5 km südlich der Kernstadt zwischen den Ortsteilen Ippinghausen und Bründersen. Die Sandsteine liegen in einem Waldgebiet und sind 4 bis 5 m hoch. Das Naturdenkmal ist von beiden Dörfern über den Wanderweg "Wolfsfährte" erreichbar (Markierung Wolfssysmbol auf kleinen Metallschildern, [https://www.openstreetmap.org/relation/3764717#map=13/51.2904/9.1690 Streckenverlauf auf Openstreetmap]). }}
* {{vCard | type = cave | name = Felskeller "Drachenhöhle" | lat = 51.3073546 | long = 9.1715908 | lastedit = 2018-06-26 | description = Der künstlich angelegte Felsenkeller findet sich am Graner Berg. Für eine Expedition in die Keller benötigt man eine Lichtquelle. Die Drachenhöhle ist direkt nur zu Fuß über Pfade zugänglich und kann bis zum Graner Berg gut per Fahrrad angefahren werden. Mit Stand 2014 ist die vor allem für Familien mit größeren Kindern interessante Sehenswürdigkeit nicht ausgeschildert. }}
== Aktivitäten ==
* '''Wandern''' - Die grüne Landschaft rund am Wolfhagen lädt zu vielfältigen Wanderungen ein, wie zum Beispiel auf [[Habichtswaldsteig]] und [[Eco Pfad Kulturgeschichte Wolfhagen]]. Ein schönes Wanderrevier sind z. B. die Wälder rund um das obere Elbetal bei Ippinghausen. Es gibt hier ab dem Wanderparkplatz unterhalb der Weidelsburg ausgeschilderte Rundwanderwege. Höhepunkt einer Wanderung kann hier der Besuch der [[Weidelsburg]] sein. Im Elbetal kann man schön in der Hasenmühle einkehren.
* '''Radwandern''' - Rund um Wolfhagen gibt es landschaftliche schöne Routen zum Radwandern. Die Touren sind meist bergig und die Strecken öfter geschottert. Die Schilder für das flächige Radwegweisungsnetz sollen bis Ende 2018 aufgestellt werden. Wer möchte kann z. B. über den Hessischen Radfernweg R 4 in das 10 km südlich liegende Fachwerkstädtchen [[Naumburg (Hessen)]] radeln (z. T. Schotterwege). Überregionale Radwanderkarte siehe Abschnitt [[#Literatur|Literatur]]
* {{marker|type=swimming|name=Erlebnis-Freibad|lat=51.3245|long=9.1827}} - das zwischen Mai und August geöffnete Bad besitzt eine 36 m lange Wasserrutsche. Lage: Nördlich der Umgehungsstraße in der Sudetenstraße.
* '''Rundflüge''' - können über die [http://www.edgw.de/ Luftsportvereinigung Wolfhagen e. V.] individuell erfragt/ gebucht werden. Der kleine Flugplatz liegt landschaftlich sehr schön auf dem [[w:Graner Berg|Graner Berg]] etwa 2 km südlich der Stadt.
* {{vCard | name = Cinema Wolfhagen | type = cinema | url = https://kino-wolfhagen.de | address = Schützebergerstr. 37, 34466 Wolfhagen | lat = 51.32582 | long = 9.16842 | phone = 05692 995099 | description = Das Kino liegt in einem der ältesten Häuser der Stadt. Es gibt immer aktuelle Filme, auch in neuester 3D-Technik. Ferner werden besondere Aktionen wie "Café und Kino", "Kulinarisches Kino" und "Der besondere Film" (Programmkino) angeboten. Preise sind fair, Personal ist freundlich, Aktionen und Kino sind gut besucht. Reservierungen und Kartenkauf können über das Onlinesystem vorgenommen werden.
}}
* {{vCard | name = Waldbühne Niederelsungen | type = theater | url = http://www.waldbuehne.niederelsungen.de | lat = 51.38328 | long = 9.18952 | description = Etwa 8 km außerhalb liegt im Ortsteil Niederelsungen die Waldbühne. Alle zwei Jahre wird in der Freiluftbühne im Sommer Theater gespielt. Die Preise sind moderat und es ist oft gar nicht einfach eins der 1300 Ticket zu bekommen.
}}
=== Feste ===
* {{vCard|name=Vieh- und Krammarkt |wikidata=|type=festival |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Das traditionsreiche und größte Fest der Stadt findet alljährlich im Juli auf der Liemecke statt und besteht aus Viehschau und Vergnügungspark.}}
* {{vCard|name=Kulturzelt Wolfhagen |wikidata=|type=festival |address=|phone=|email=|url=http://www.kulturzelt.de |hours=|price=|lat=|long=|lastedit=|description=Das große Kleinkunstfestival im Juni im Stadtpark Teichwiesen wartet auch mit bekannten Namen auf und findet mittlerweile auch überregional Beachtung.}}
== Einkaufen ==
* '''Lebensmitteleinkauf:''' Zwei Lebensmittelmärkte finden sich bei {{Marker | name = zwei Lebensmittelmärkte | type= shop | lat = 51.329824 | long = 9.173756| show =noname }} an der Schützeberger Straße.
== Küche ==
* {{vCard|type=restaurant|name=Zum Chattenturm|wikidata= Q57021087| lastedit = 2018-01-01 |description=}}
* {{vCard|type=restaurant|name=„Zum Schiffchen“|address=Hans-Staden-Straße 27|phone=+49 05692 9875-0|email=besucher@hotel-zum-schiffchen.de|fax=+49 05692 9875-11|url=https://www.hotel-zum-schiffchen.de/|hours=Mo.-Sa.: 17-24 Uhr; So.: 11-15 Uhr; jeden 2. Sonntagabend: 17-23 Uhr; Feiertage: 11-15 Uhr und 17-23 Uhr; Küche: 11:30-14 Uhr und 17:30-22 Uhr|price=|lat=51.32279|long=9.16664}}
* {{vCard|type=restaurant|name=Gasthaus Hotel Pfeifferling|address=Waldecker Straße 7|phone=+49 05692 5980|email=info@gasthaus-pfeifferling.de|fax=+49 05692 8111|url=https://www.gasthaus-pfeifferling.de/|hours=|price=|lat=51.28106|long=9.14285}}
* {{vCard|name=Konditorei Oliev |wikidata=|type=pastry shop |address=Schützeberger Str. 49 |phone=+49 05692 993971 |email=|url=|hours=|price=|lat=51.32660 |long=9.16939 |lastedit=|description=Gemütliche Kaffee-Atmosphäre drinnen und draußen in der Altstadt, freundliche Bedienung, faire Preise, vom Frühstück bis zum späten Nachmittag durchgehend geöffnet.}}
* {{vCard|name=Ristorante San Remo |wikidata=|type=restaurant |address=Schützeberger Str. 37 |phone=+49 05692 5920 |email=|url=https://www.restaurant-san-remo.eu/ |hours=|price=|lat=51.32579 |long=9.16829 |lastedit=|description=Italienische Küche in der Altstadt, wie man sie gerne isst. Ein gemütliches Lokal, im Sommer auch draußen, mit angemessenen Preisen, freundlichem Service und saisonaler Küche. Abends und am Wochenende ist Tischbestellung zu empfehlen.}}
* {{vCard | name = Eiscafe Da Peppo | type = ice cream | address = Schützeberger Str. 47 | lat = 51.32651 | long = 9.16931 | phone = +49 05692 9968484 | description = Hier erhält man im Straßenverkauf recht große Kugeln Eis zu 1,20 Cent das Stück (Frühjahr 2020).
}}
== Nachtleben ==
Die Landruhe mit klarem Sternenhimmel genießen.
* {{vCard | type = bar | name = Mamounia Lounge/Shisha bar| facebook = MAMOUNIALOUNGEWOLFHAGEN | address = Kurfürstenstraße 47, 34466 Wolfhagen | lat = 51.3216698 | long = 9.1813215 | phone = +49 160 8980069 | hours = Mo bis Do 18:00 - 0:00 Uhr; Fr bis Sa 17:00 - 0:00 Uhr; So 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Einzige Shisha bar der Stadt, die bislang überlebt hat. Klein aber gemütlich.}}
* {{vCard | type = bar | name = Zottels Pub | url = http://www.zottels-kneipe.de/ | facebook = zottels.pub | address = Mittelstraße 22-24, 34466 Wolfhagen | lat = 51.325656 | long = 9.171556 | phone = +49 172 5704415 | hours = So bis Mo geschlossen; Di bis Sa 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Raucherbar mit langer Tradition und gewissem Ruf in Wolfhagen. Fußballspiele werden live übertragen. Es gibt einen Dartsroom mit einigen Scheiben und eigener Mannschaft. Es werden Turniere in der Kai Schumacher Dartliga abgehalten }}
* {{vCard | type = bar | name = Gaststätte zur Knackenburg| address = Burgstraße 12, 34466 Wolfhagen | lat = 51.325162 | long = 9.170854 | phone = +49 5692 2566| hours = Mo bis Mi 17 - 22 Uhr; Fr 17 - 23 Uhr; Sa 10 - 22 Uhr, Do und So geschlossen | price = | lastedit = 2020-03-30 | facebook = knacke.woh | description = Beste Kneipe in Wolfhagen, mit langer Tradition. Bringt Alt und Jung zusammen. }}
== Unterkunft ==
* Zum Unterkunftsverzeichnis der [https://wolfhagen.de/stadtplan/?jsf=jet-engine&meta=typ!is_custom_checkbox:Unterkuenfte Stadt Wolfhagen] (mit Ferienwohnungen und Unterkünften in den Stadtteilen.)
* {{vCard | type = caravan site | name = Wohnmobilstellplatz Wolfhagen | lat = 51.33014444 | long = 9.17102222 | lastedit = 2018-06-26 | description = Der Platz mit 34 Stellplätzen liegt nur wenige Meter nördlich der Altstadt in den Bruchwiesen. Stellplatzgebühren: keine; Spenden erwünscht. Zu Hauptbesuchszeiten (z. B. Ostern) kann der Platz ausgelastet sein. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Altes Rathaus" | url = https://www.hotel-altes-rathaus-wolfhagen.de/ | address = Kirchplatz 1, 34466 Wolfhagen | lat = 51.3250835 | long = 9.1668356 | phone = +49 (0)5692 - 997906 | fax = +49 (0)5692 - 997908 | price = EZ ab 43 €, DZ ab 70 € | lastedit = 2019-03-01 | description = Erst nach dem Umzug der Stadtverwaltung in die Burgstraße 33 wurde das alte Rathaus, das direkt im Stadtkern liegt, in ein Hotel und Restaurant umgebaut. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zum Schiffchen" | url = https://www.hotel-zum-schiffchen.de/ | email = besucher@hotel-zum-schiffchen.de | address = Hans-Staden-Straße 27, 34466 Wolfhagen | lat = 51.322827 | long = 9.166625 | phone = +49 (0)5692 - 98750 | fax = +49 (0)5692 - 987511 | price = EZ ab 44,90 €, DZ ab 63 € | lastedit = 2019-03-01 | description = 11 Hotelzimmer in 2 Kategorien }}
* {{vCard | name = Hotel und Restaurant "Zum Chattenturm" | type = hotel | url = https://zum-chattenturm.de/ | address = Schützeberger Straße 67, Wolfhagen | lat = 51.32746 | long = 9.17105 | phone = +49 (0)5692 - 2387 | fax = +49 (0)5692 - 8503 | email = info@hotel-zum-chattenturm.de | price = EZ ab 60 €, DZ ab 80 € (Frühstück 15 €) | lastedit = 2026-04-16 | description = Die Gästezimmer befinden sich in den starken, historischen Mauern. Das sorgt für den ungestörten Schlaf der Gäste.
}}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zur Stadt Wolfhagen" | address = Mittelstraße 9, 34466 Wolfhagen | lat = 51.3254633 | long = 9.1667513 | phone = +49 (0)5692 - 993064 | fax = +49 (0)5692 - 993111 | price = ab 34 € | lastedit = 2019-03-01 | mobile = +49 (0)176 32822214 | description = Hotel, Restaurant und Cafe }}
== Sicherheit ==
Wolfhagen ist eine sichere Stadt. Besondere Verhaltensregeln über die üblichen Vorsichtsmaßnahmen hinaus, wie Fahrrad abschließen usw., sind nicht notwendig.
== Gesundheit ==
* {{vCard|name=Kreiskliniken Kassel - Standort Wolfhagen|type=hospital|lat=51.32015|long=9.19085|lastedit=2022-03-28|description=Das Krankenhaus wurde von Gesundheit Nordhessen durch den Landkreis Kassel übernommen. Weiterer Standort ist Hofgeismar.}}
== Praktische Hinweise ==
* {{vCard | name = Stadt- und Tourist-Information | type = tourist information | url = https://wolfhagen.de/tourismus/ | address = Burgstraße 33-35, 34466 Wolfhagen | lat = 51.32442 | long = 9.16848 | phone = +49 (0)5692 602102 | fax = +49 (0)5692 602190 | email = tourist-info@wolfhagen.de
}}
* {{vCard | name = öffentliche Toilette am Rathaus | type = toilet | lat = 51.32421 | long = 9.16822 | lastedit = 2018-06-26 | description = Eine frei zugängliche, öffentliche Toilettenanlage befindet sich am Rathaus oberhalb des Marktplatzes.
}}
== Ausflüge ==
=== Bis 10 km Entfernung ===
* {{vCard | type = castle| name=Weidelsburg|wikidata=Q1621311|lat =51.272917| long =9.144319| description = Die große Burgruine mit sehr schöner Aussicht liegt etwa 5 km südlich von Wolfhagen oberhalb des Stadtteils Ippinghausen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Festberg|lat =51.335032 |long = 9.217336 | description =Bergrücken mit Kalkmagerrasen und schönem Landschaftsblick zwischen Philippinenthal und Altenhasungen. Zwei Bänke laden zum Entspannen ein. Die Erhebung liegt etwa 4 km nordöstlich von Wolfhagen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Glockenborn|lat =51.305722 |long = 9.18775 | description =Künstlich angelegtes Feuchtgebiet mit zwei Seen, kleineren Stillgewässern und Extensivgrünland. Insgesamt drei Aussichtspunkte mit guter Beobachtungsposition für seltene Vogel- und Amphibienartenn. Das Gebiet liegt etwa 3 km südöstlich der Innenstadt}}
=== Bis 30 km Entfernung ===
* an den '''[[Edersee]]''' (etwa 25 km südlich)
* nach [[Fritzlar]] (etwa 25 km südlich)
* nach [[Bad Arolsen]] (etwa 15 km nordwestlich)
* nach [[Warburg]] (etwa 20 km nördlich)
* nach Kassel in den '''[[Bergpark Wilhelmshöhe]]''' (etwa 25 km östlich)
* [[Eco Pfad Kulturgeschichte Wolfhagen]]
{{Panorama|bild=Weidelsberg_pano_nordostblick_ds_08_2009.jpg|unterschrift='''Nordostblick von der [[Weidelsburg]]:''' Links vorne im Panorama ist Ippinghausen zu erkennen. Schräg rechts darüber sieht man [[Wolfhagen]]. Am Horizont in der Bildmitte ist der [[Großer Bärenberg|Große Bärenberg]] mit Funk- und Aussichtsturm sehen. Weiter rechts oberhalb der Windkraftanlagen liegt der [[Habichtswald (Gebirge)|Habichtswald]]|breite=1400px}}
== Literatur ==
'''Radwanderkarte:'''
* '''ADFC Regionalkarte "Kassel / Nordhessen"''' - Maßstab 1: 75.000; {{ISBN|978-3870736392}}; Preis: 8,95 €. Die spezielle Radwanderkarte mit detaillierter Routendarstellung auf reißfestem und wasserabweisendem Papier bildet Nordhessen hinsichtlich Oberflächenbeschaffenheit, Verkehrsbelastung und Tourenvorschlägen fast vollständig ab. Ab Wolfhagen auch für größere Touren z. B. zum Edersee, nach Fritzlar, Warburg usw. nutzbar.
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.31667| long= 9.16667| radius= }}
{{IstInKat|Naturpark Habichtswald}}
97pja6z4hor6u6q7o29gowx2ad38ogp
1769047
1769046
2026-04-16T19:39:34Z
Dirk Schmidt
15181
/* Unterkunft */ Geänderte vCard für Hotel und Restaurant "Zum Schiffchen"
1769047
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Wolfhagen''' ist eine Kleinstadt in [[Nordhessen]] etwa 30 km westlich von Kassel gelegen.
Das "Wolfhager Land" liegt landschaftlich schön im [[Naturpark Habichtswald]]. Besonders einen Besuch wert ist die [[Weidelsburg]] oberhalb des Stadtteils Ippinghausen.
== Hintergrund ==
{{Mapframe|51.32809|9.16843|zoom=14|type=geoline}}
Die Stadt wurde 1231 unter Landgraf [[w:Konrad von Thüringen|Konrad von Thüringen]] gegründet.
1264 erhielt Wolfhagen das Stadtrecht. 1302 konnte die Stadtbefestigung fertiggestellt werden.
Im Dreißigjährigen Krieg wurde die Stadt fast vollständig dem Erdboden gleich gemacht.
=== Stadtgliederung ===
Neben der Kernstadt besteht Wolfhagen (mit dem Weiler Elmarshausen) aus elf weiteren Ortsteilen, die sich jeweils als Dorf rund um die Kernstadt erstrecken:
{{3 Spalten|
;{{Marker | type = quarter | name =Altenhasungen|wikidata=Q437180| styles = normal }}
;{{Marker | type = quarter | name =Bründersen|wikidata=Q997012| styles = normal }}
;{{Marker | type = quarter | name =Gasterfeld|wikidata=Q1495410| styles = normal }}
;{{Marker | type = quarter | name =Ippinghausen|wikidata=Q1672275| styles = normal }}
;{{Marker | type = quarter | name =Istha|wikidata=Q1674843| styles = normal }}
;{{Marker | type = quarter | name =Leckringhausen|wikidata=Q1811416| styles = normal }}
;{{Marker | type = quarter | name =Niederelsungen|wikidata=Q1987742| styles = normal }}
;{{Marker | type = quarter | name =Nothfelden|wikidata=Q1688879| styles = normal }}
;{{Marker | type = quarter | name =Philippinenburg und -thal|wikidata=Q1543020| styles = normal }}
;{{Marker | type = quarter | name =Viesebeck|wikidata=Q2523788| styles = normal }}
;{{Marker | type = quarter | name =Wenigenhasungen|wikidata=Q2559437| styles = normal }}.
}}
=== Nachbargemeinden ===
Wolfhagen grenzt im Nordwesten an {{Marker| type = town| name = Volkmarsen|wikidata=Q533535|styles = normal }},
im Norden an {{Marker | type = town| name = Breuna |wikidata=Q503830| styles = normal }},
im Osten an {{Marker | type = town| name = Zierenberg|wikidata=Q199094| styles = normal }} und {{Marker | type = town| name = Habichtswald|wikidata=Q624629| styles = normal }},
im Südosten an {{Marker | type = town| name = Schauenburg|wikidata=Q175419| styles = normal }},
im Süden an {{Marker | type = town| name = Bad Emstal |wikidata=Q291091| styles = normal }} und {{Marker | type = town| name = Naumburg|wikidata=Q641014| styles = normal }},
im Südwesten an {{Marker | type = town| name = Waldeck|wikidata=Q540107| styles = normal }},
sowie im Westen an {{Marker | type = town| name = Bad Arolsen |wikidata=Q498078| styles = normal }}.
== Anreise ==
=== Mit dem Flugzeug ===
* Der nächste Flughafen ist der {{marker|type = airport|name = Flughafen Kassel-Calden |wikidata = Q529143}} etwa 26 km nordwestlich von Wolfhagen, danach folgt der {{marker|type = airport|name = Flughafen Paderborn Lippstadt|wikidata = Q685536}}, der ca. 55 km nordwestlich liegt (gut über die Autobahn A 44 zu erreichen). Die meisten Flugoptionen hat man allerdings vom {{marker|type = airport|name = Flughafen Frankfurt am Main |wikidata = Q46033}}, welcher etwa 220 km entfernt ist.
=== Mit der Bahn ===
* {{vCard | type = train | name = Bahnhof Wolfhagen | wikidata = Q55637849 | description = Wolfhagen liegt an der [[Kurhessenbahn]] [[Korbach]] - [[Kassel]]. Mit dem Regionalexpress bestehen direkte Verbindungen zum ICE in Kassel-Wilhelmshöhe. Des weiteren kann man mit der Regiotram direkt bis ins Stadtzentrum von Kassel fahren.
}}
=== Auf der Straße ===
* Die Autobahn {{RSIGN|DE|A |44}} Kassel - Dortmund an der Anschlussstellen Zierenberg (aus Richtung Kassel) bzw. Breuna (aus Richtung Dortmund) verlassen.
* Die [[Deutsche Fachwerkstraße]] führt durch den Ort.
=== Mit dem Fahrrad ===
[[File:Wolfhagen stadtblick von Sueden vom radfernweg r 4.jpg|thumb|Am hess. Radfernweg R 4: Blick von Süden auf Wolfhagen]]
* Die Stadt liegt am '''[[Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen|Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen]]''' der die Stadt in Nord-Süd Richtung für den Radurlauber erschließt. Im Bereich von Zierenberg über Wolfhagen nach Naumburg ist die Strecke allerdings recht bergig und verläuft zun großen Teilen auf Landstraßen, die zum Teil schnell und auch stärker befahren sind. Die verkehrsfreien Strecken sind öfter geschottert.
*Gut zu wissen: Wer auf der Durchreise per Rad auf dem R 4 ist und seinen Pedelec-Akku während einer Pause laden möchte, findet am Rathaus einem Fahrradständer mit frei zugänglichen Steckdosen.
== Mobilität ==
* {{vCard|type=taxi|name= Taxi Brandau Wolfhagen|address=|phone=+49(0)5692 997700|url=http://www.taxi-brandau-kassel.de|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard | type = parking | name = Parkhaus Mittelstraße / Schäferstraße | lat = 51.32604 | long = 9.17097 | price = frei | lastedit = 2018-06-26 | description = Parkhaus in der Altstadt mit zwei Ebenen, die von verschiedenen Seiten angefahren werden. }}
* {{vCard | type = parking | name = Tiefgarage Rathaus | lat = 51.324124| long = 9.168018 | price = frei | lastedit = 2020-03-29 | description = Parkhaus in der Altstadt, unterhalb des neuen Rathaus. Die Tiefgarage verfügt über eine Ebene und kann nur von der kleinen Straße zwischen Landgrafen und Burgstraße aus angefahren werden. }}
* {{vCard | type = parking | name = Parkaus Torstraße/Wilhelmsstraße | lat = 51.327147| long = 9.172285 | price = frei | lastedit = 2020-03-29 | description = Parkhaus unterhalb der Altstadt, nahe der Sparkasse. Das Parkhaus verfügt über mehrere Ebenen und kann von Wilhelms- und Torstraße aus angefahren werden. Das Gebäude ist als Drogentreffpunkt der Stadt bekannt. }}
== Sehenswürdigkeiten ==
[[Bild:wolfhagen_von_sueden_ds_wv_07_2009.jpg|thumb|Wolfhagen - Blick auf die Altstadt von Süden]]
Wolfhagen besitzt eine sehenswerte '''Altstadt mit Fachwerkbauten'''. Kleinere Reste der Stadtmauer sind ebenfalls noch vorhanden.
* Der {{marker| type = square | name = Marktplatz | lat = 51.32489 | long = 9.16846 }} ist ein gemütlicher Stadtraum mit Café und der Stadtkirche. Prächtigstes Haus am Platz ist der Fachwerkbau des „Alten Rathauses”. Das Haus beherbergt heute ein Hotel mit Restaurant. Auf dem Platz befindet sich ferner der Märchenbrunnen, der eine Szene aus dem Märchen "Der Wolf und die sieben Geislein" zeigt.
* {{vCard | type = church | name = Stadtkirche Wolfhagen | url = http://www.stadtkirche-wolfhagen.de | wikidata = Q83797087 | hours = Sommer 8-18 Uhr, Winter 9-17 Uhr | description = Die weithin sichtbare evangelische Kirche steht am Marktplatz. Bei der Stadtgründung im Jahr 1231 wurde mit dem Bau der Kirche als gotische Hallenkirche begonnen. Das Gebäude ist allerdings nicht rein gotisch. Im Laufe der baulichen Veränderungen haben verschiedene Stile das Gebäude geprägt. Sehenswert sind unter anderem die Chorfenster aus dem Jahr 1691, die Glasfenster von Hans-Gottfried von Stockhausen sowie das Westportal am Turm.}}
* {{vCard | type = church | name =St. Maria|lat =51.325212 |long =9.176246 |url=https://www.katholische-kirche-wolfhagen.de/ |description=Die katholische Kirche wurde 1966 erbaut und ersetzte die Notkirche am Koppenberg, die nach dem Zweiten Weltkrieg errichtet wurde. }}
* {{vCard | type = church | name =Friedhofskapelle|lat =51.325593 |long =9.173586 |description=Die heutige Friedhofskapelle ist die ursprüngliche [[w:Wolfhagen#Hospitalkapelle|Hospitalkapelle]]. Sie ist ein einschiffiges, hochgotisches Gebäude aus Sandsteinquadern.}}
* {{vCard | type = castle| name=Burg Wolfhagen| wikidata=Q1014646| lat =51.3227|long =9.165|description =Im Jahre 1513 wurde ein Neubau der Burg erstellt. Ende des 16. Jahrhunderts war sie verfallen, Anfang des 17. Jahrhunderts wurde sie abgerissen. Erhalten geblieben sind lediglich Reste.}}
* {{vCard | type = castle| name=Burgruine Helfenberg| wikidata=Q1015331| lat =51.329722|long =9.209167| description =Die Überreste der Burg befinden sich rund 2,5 km östlich der Kernstadt.}}
* {{marker| type = tower | name = Chattenturm | lat = 51.32766 | long = 9.17167 }} Als Rest der Stadtbefestigung kann der Wehrturm bestiegen werden. Der Schlüssel ist in der Tourist-Information im Rathaus erhältlich.
* Der frei zugängliche {{marker | type = tower | name = Ofenberg-Turm |wikidata=Q1800311 |lat = 51.32749 | long = 9.18990 }} liegt etwa 1,5 km östlich der Stadtmitte. Schöne kleine Wanderung von der Stadtmitte: Hier zu am besten via Mittelstraße und Treppenanlage "Am Hospitalgarten" die Altstadt nach Osten verlassen. Von hier an der Brücke der Karlstraße die Umgehungsstraße queren. Am Ende der Karlstraße in eine Links-Rechts-Kombination in die Ofenbergstraße wechseln. Vom Ende der Ofenbergstraße gibt es Wanderpfade durch den Wald zum Turm hoch. Strecke ab Marktplatz etwa 5 km Retour mit rund 150 Höhenmetern.
* Der {{marker | type = park | name = Stadtpark | name-map = Kattenturm | lat = 51.32477 | long = 9.16522 }} liegt westlich der Altstadt in einem kleinen Tal. Der Park ist nicht spektakulär. Wer aber einen kleinen, altstadtnahen Spaziergang unternehmen möchte, für den ist der Park mit Teich und Spielplatz ein nettes Ziel.
* {{vCard | type = museum | name = Regionalmuseum Wolfhager Land | url = http://www.regionalmuseum-wolfhagen.de/ | address = Ritterstr. 1 | lat = 51.32297 | long = 9.16540 | phone = +49 (0)5692 992431 | hours = Di bis Do 10-13 und 14-17 Uhr, Sa und So 14-17 Uhr | price = Erwachsene: 3 €, Familienkarte: 6 € | lastedit = 2017-11-04 | description = Das Museum in der alten Burg informiert über die Geschichte der Stadt und Region.}}
* {{vCard | type = museum | name = Museum für Film- und Videotechnik | url = http://www.filmmuseum-wolfhagen.de | address = Triangelstraße 19 | lat = 51.32669 | long = 9.17041 | phone = +49(0)5692 994956 | hours = Sonntags von 11-12:30 Uhr, Gruppenbesuche mit Führung nach Vereinbarung | price = Eintritt frei, Spende erwünscht | lastedit = 2017-11-04 | description = Das Museum beschäftigt sich mit filmtechnischen Gerätschaften bis zum 35-mm Format. Die Ausstellung ist noch im Aufbau.}}
* {{vCard | type = rock | name = Felsgruppe Rauensteine | lat = 51.2895 | long = 9.1666 | lastedit = 2018-06-26 | description = Die nicht spektakuläre, aber sehenswerte Felsgruppe findet sich etwa 5 km südlich der Kernstadt zwischen den Ortsteilen Ippinghausen und Bründersen. Die Sandsteine liegen in einem Waldgebiet und sind 4 bis 5 m hoch. Das Naturdenkmal ist von beiden Dörfern über den Wanderweg "Wolfsfährte" erreichbar (Markierung Wolfssysmbol auf kleinen Metallschildern, [https://www.openstreetmap.org/relation/3764717#map=13/51.2904/9.1690 Streckenverlauf auf Openstreetmap]). }}
* {{vCard | type = cave | name = Felskeller "Drachenhöhle" | lat = 51.3073546 | long = 9.1715908 | lastedit = 2018-06-26 | description = Der künstlich angelegte Felsenkeller findet sich am Graner Berg. Für eine Expedition in die Keller benötigt man eine Lichtquelle. Die Drachenhöhle ist direkt nur zu Fuß über Pfade zugänglich und kann bis zum Graner Berg gut per Fahrrad angefahren werden. Mit Stand 2014 ist die vor allem für Familien mit größeren Kindern interessante Sehenswürdigkeit nicht ausgeschildert. }}
== Aktivitäten ==
* '''Wandern''' - Die grüne Landschaft rund am Wolfhagen lädt zu vielfältigen Wanderungen ein, wie zum Beispiel auf [[Habichtswaldsteig]] und [[Eco Pfad Kulturgeschichte Wolfhagen]]. Ein schönes Wanderrevier sind z. B. die Wälder rund um das obere Elbetal bei Ippinghausen. Es gibt hier ab dem Wanderparkplatz unterhalb der Weidelsburg ausgeschilderte Rundwanderwege. Höhepunkt einer Wanderung kann hier der Besuch der [[Weidelsburg]] sein. Im Elbetal kann man schön in der Hasenmühle einkehren.
* '''Radwandern''' - Rund um Wolfhagen gibt es landschaftliche schöne Routen zum Radwandern. Die Touren sind meist bergig und die Strecken öfter geschottert. Die Schilder für das flächige Radwegweisungsnetz sollen bis Ende 2018 aufgestellt werden. Wer möchte kann z. B. über den Hessischen Radfernweg R 4 in das 10 km südlich liegende Fachwerkstädtchen [[Naumburg (Hessen)]] radeln (z. T. Schotterwege). Überregionale Radwanderkarte siehe Abschnitt [[#Literatur|Literatur]]
* {{marker|type=swimming|name=Erlebnis-Freibad|lat=51.3245|long=9.1827}} - das zwischen Mai und August geöffnete Bad besitzt eine 36 m lange Wasserrutsche. Lage: Nördlich der Umgehungsstraße in der Sudetenstraße.
* '''Rundflüge''' - können über die [http://www.edgw.de/ Luftsportvereinigung Wolfhagen e. V.] individuell erfragt/ gebucht werden. Der kleine Flugplatz liegt landschaftlich sehr schön auf dem [[w:Graner Berg|Graner Berg]] etwa 2 km südlich der Stadt.
* {{vCard | name = Cinema Wolfhagen | type = cinema | url = https://kino-wolfhagen.de | address = Schützebergerstr. 37, 34466 Wolfhagen | lat = 51.32582 | long = 9.16842 | phone = 05692 995099 | description = Das Kino liegt in einem der ältesten Häuser der Stadt. Es gibt immer aktuelle Filme, auch in neuester 3D-Technik. Ferner werden besondere Aktionen wie "Café und Kino", "Kulinarisches Kino" und "Der besondere Film" (Programmkino) angeboten. Preise sind fair, Personal ist freundlich, Aktionen und Kino sind gut besucht. Reservierungen und Kartenkauf können über das Onlinesystem vorgenommen werden.
}}
* {{vCard | name = Waldbühne Niederelsungen | type = theater | url = http://www.waldbuehne.niederelsungen.de | lat = 51.38328 | long = 9.18952 | description = Etwa 8 km außerhalb liegt im Ortsteil Niederelsungen die Waldbühne. Alle zwei Jahre wird in der Freiluftbühne im Sommer Theater gespielt. Die Preise sind moderat und es ist oft gar nicht einfach eins der 1300 Ticket zu bekommen.
}}
=== Feste ===
* {{vCard|name=Vieh- und Krammarkt |wikidata=|type=festival |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Das traditionsreiche und größte Fest der Stadt findet alljährlich im Juli auf der Liemecke statt und besteht aus Viehschau und Vergnügungspark.}}
* {{vCard|name=Kulturzelt Wolfhagen |wikidata=|type=festival |address=|phone=|email=|url=http://www.kulturzelt.de |hours=|price=|lat=|long=|lastedit=|description=Das große Kleinkunstfestival im Juni im Stadtpark Teichwiesen wartet auch mit bekannten Namen auf und findet mittlerweile auch überregional Beachtung.}}
== Einkaufen ==
* '''Lebensmitteleinkauf:''' Zwei Lebensmittelmärkte finden sich bei {{Marker | name = zwei Lebensmittelmärkte | type= shop | lat = 51.329824 | long = 9.173756| show =noname }} an der Schützeberger Straße.
== Küche ==
* {{vCard|type=restaurant|name=Zum Chattenturm|wikidata= Q57021087| lastedit = 2018-01-01 |description=}}
* {{vCard|type=restaurant|name=„Zum Schiffchen“|address=Hans-Staden-Straße 27|phone=+49 05692 9875-0|email=besucher@hotel-zum-schiffchen.de|fax=+49 05692 9875-11|url=https://www.hotel-zum-schiffchen.de/|hours=Mo.-Sa.: 17-24 Uhr; So.: 11-15 Uhr; jeden 2. Sonntagabend: 17-23 Uhr; Feiertage: 11-15 Uhr und 17-23 Uhr; Küche: 11:30-14 Uhr und 17:30-22 Uhr|price=|lat=51.32279|long=9.16664}}
* {{vCard|type=restaurant|name=Gasthaus Hotel Pfeifferling|address=Waldecker Straße 7|phone=+49 05692 5980|email=info@gasthaus-pfeifferling.de|fax=+49 05692 8111|url=https://www.gasthaus-pfeifferling.de/|hours=|price=|lat=51.28106|long=9.14285}}
* {{vCard|name=Konditorei Oliev |wikidata=|type=pastry shop |address=Schützeberger Str. 49 |phone=+49 05692 993971 |email=|url=|hours=|price=|lat=51.32660 |long=9.16939 |lastedit=|description=Gemütliche Kaffee-Atmosphäre drinnen und draußen in der Altstadt, freundliche Bedienung, faire Preise, vom Frühstück bis zum späten Nachmittag durchgehend geöffnet.}}
* {{vCard|name=Ristorante San Remo |wikidata=|type=restaurant |address=Schützeberger Str. 37 |phone=+49 05692 5920 |email=|url=https://www.restaurant-san-remo.eu/ |hours=|price=|lat=51.32579 |long=9.16829 |lastedit=|description=Italienische Küche in der Altstadt, wie man sie gerne isst. Ein gemütliches Lokal, im Sommer auch draußen, mit angemessenen Preisen, freundlichem Service und saisonaler Küche. Abends und am Wochenende ist Tischbestellung zu empfehlen.}}
* {{vCard | name = Eiscafe Da Peppo | type = ice cream | address = Schützeberger Str. 47 | lat = 51.32651 | long = 9.16931 | phone = +49 05692 9968484 | description = Hier erhält man im Straßenverkauf recht große Kugeln Eis zu 1,20 Cent das Stück (Frühjahr 2020).
}}
== Nachtleben ==
Die Landruhe mit klarem Sternenhimmel genießen.
* {{vCard | type = bar | name = Mamounia Lounge/Shisha bar| facebook = MAMOUNIALOUNGEWOLFHAGEN | address = Kurfürstenstraße 47, 34466 Wolfhagen | lat = 51.3216698 | long = 9.1813215 | phone = +49 160 8980069 | hours = Mo bis Do 18:00 - 0:00 Uhr; Fr bis Sa 17:00 - 0:00 Uhr; So 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Einzige Shisha bar der Stadt, die bislang überlebt hat. Klein aber gemütlich.}}
* {{vCard | type = bar | name = Zottels Pub | url = http://www.zottels-kneipe.de/ | facebook = zottels.pub | address = Mittelstraße 22-24, 34466 Wolfhagen | lat = 51.325656 | long = 9.171556 | phone = +49 172 5704415 | hours = So bis Mo geschlossen; Di bis Sa 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Raucherbar mit langer Tradition und gewissem Ruf in Wolfhagen. Fußballspiele werden live übertragen. Es gibt einen Dartsroom mit einigen Scheiben und eigener Mannschaft. Es werden Turniere in der Kai Schumacher Dartliga abgehalten }}
* {{vCard | type = bar | name = Gaststätte zur Knackenburg| address = Burgstraße 12, 34466 Wolfhagen | lat = 51.325162 | long = 9.170854 | phone = +49 5692 2566| hours = Mo bis Mi 17 - 22 Uhr; Fr 17 - 23 Uhr; Sa 10 - 22 Uhr, Do und So geschlossen | price = | lastedit = 2020-03-30 | facebook = knacke.woh | description = Beste Kneipe in Wolfhagen, mit langer Tradition. Bringt Alt und Jung zusammen. }}
== Unterkunft ==
* Zum Unterkunftsverzeichnis der [https://wolfhagen.de/stadtplan/?jsf=jet-engine&meta=typ!is_custom_checkbox:Unterkuenfte Stadt Wolfhagen] (mit Ferienwohnungen und Unterkünften in den Stadtteilen.)
* {{vCard | type = caravan site | name = Wohnmobilstellplatz Wolfhagen | lat = 51.33014444 | long = 9.17102222 | lastedit = 2018-06-26 | description = Der Platz mit 34 Stellplätzen liegt nur wenige Meter nördlich der Altstadt in den Bruchwiesen. Stellplatzgebühren: keine; Spenden erwünscht. Zu Hauptbesuchszeiten (z. B. Ostern) kann der Platz ausgelastet sein. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Altes Rathaus" | url = https://www.hotel-altes-rathaus-wolfhagen.de/ | address = Kirchplatz 1, 34466 Wolfhagen | lat = 51.3250835 | long = 9.1668356 | phone = +49 (0)5692 - 997906 | fax = +49 (0)5692 - 997908 | price = EZ ab 43 €, DZ ab 70 € | lastedit = 2019-03-01 | description = Erst nach dem Umzug der Stadtverwaltung in die Burgstraße 33 wurde das alte Rathaus, das direkt im Stadtkern liegt, in ein Hotel und Restaurant umgebaut. }}
* {{vCard | name = Hotel und Restaurant "Zum Schiffchen" | type = hotel | url = https://www.hotel-zum-schiffchen.de/ | address = Hans-Staden-Straße 27, 34466 Wolfhagen | lat = 51.32283 | long = 9.16663 | phone = +49 (0)5692 - 98750 | fax = +49 (0)5692 - 987511 | email = besucher@hotel-zum-schiffchen.de | price = EZ ab 66,50 € €, DZ ab 95 €, Frühstück extra für 12,50 € | lastedit = 2026-04-16 | description = 11 Hotelzimmer in 2 Kategorien.
}}
* {{vCard | name = Hotel und Restaurant "Zum Chattenturm" | type = hotel | url = https://zum-chattenturm.de/ | address = Schützeberger Straße 67, Wolfhagen | lat = 51.32746 | long = 9.17105 | phone = +49 (0)5692 - 2387 | fax = +49 (0)5692 - 8503 | email = info@hotel-zum-chattenturm.de | price = EZ ab 60 €, DZ ab 80 € (Frühstück 15 €) | lastedit = 2026-04-16 | description = Die Gästezimmer befinden sich in den starken, historischen Mauern. Das sorgt für den ungestörten Schlaf der Gäste.
}}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zur Stadt Wolfhagen" | address = Mittelstraße 9, 34466 Wolfhagen | lat = 51.3254633 | long = 9.1667513 | phone = +49 (0)5692 - 993064 | fax = +49 (0)5692 - 993111 | price = ab 34 € | lastedit = 2019-03-01 | mobile = +49 (0)176 32822214 | description = Hotel, Restaurant und Cafe }}
== Sicherheit ==
Wolfhagen ist eine sichere Stadt. Besondere Verhaltensregeln über die üblichen Vorsichtsmaßnahmen hinaus, wie Fahrrad abschließen usw., sind nicht notwendig.
== Gesundheit ==
* {{vCard|name=Kreiskliniken Kassel - Standort Wolfhagen|type=hospital|lat=51.32015|long=9.19085|lastedit=2022-03-28|description=Das Krankenhaus wurde von Gesundheit Nordhessen durch den Landkreis Kassel übernommen. Weiterer Standort ist Hofgeismar.}}
== Praktische Hinweise ==
* {{vCard | name = Stadt- und Tourist-Information | type = tourist information | url = https://wolfhagen.de/tourismus/ | address = Burgstraße 33-35, 34466 Wolfhagen | lat = 51.32442 | long = 9.16848 | phone = +49 (0)5692 602102 | fax = +49 (0)5692 602190 | email = tourist-info@wolfhagen.de
}}
* {{vCard | name = öffentliche Toilette am Rathaus | type = toilet | lat = 51.32421 | long = 9.16822 | lastedit = 2018-06-26 | description = Eine frei zugängliche, öffentliche Toilettenanlage befindet sich am Rathaus oberhalb des Marktplatzes.
}}
== Ausflüge ==
=== Bis 10 km Entfernung ===
* {{vCard | type = castle| name=Weidelsburg|wikidata=Q1621311|lat =51.272917| long =9.144319| description = Die große Burgruine mit sehr schöner Aussicht liegt etwa 5 km südlich von Wolfhagen oberhalb des Stadtteils Ippinghausen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Festberg|lat =51.335032 |long = 9.217336 | description =Bergrücken mit Kalkmagerrasen und schönem Landschaftsblick zwischen Philippinenthal und Altenhasungen. Zwei Bänke laden zum Entspannen ein. Die Erhebung liegt etwa 4 km nordöstlich von Wolfhagen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Glockenborn|lat =51.305722 |long = 9.18775 | description =Künstlich angelegtes Feuchtgebiet mit zwei Seen, kleineren Stillgewässern und Extensivgrünland. Insgesamt drei Aussichtspunkte mit guter Beobachtungsposition für seltene Vogel- und Amphibienartenn. Das Gebiet liegt etwa 3 km südöstlich der Innenstadt}}
=== Bis 30 km Entfernung ===
* an den '''[[Edersee]]''' (etwa 25 km südlich)
* nach [[Fritzlar]] (etwa 25 km südlich)
* nach [[Bad Arolsen]] (etwa 15 km nordwestlich)
* nach [[Warburg]] (etwa 20 km nördlich)
* nach Kassel in den '''[[Bergpark Wilhelmshöhe]]''' (etwa 25 km östlich)
* [[Eco Pfad Kulturgeschichte Wolfhagen]]
{{Panorama|bild=Weidelsberg_pano_nordostblick_ds_08_2009.jpg|unterschrift='''Nordostblick von der [[Weidelsburg]]:''' Links vorne im Panorama ist Ippinghausen zu erkennen. Schräg rechts darüber sieht man [[Wolfhagen]]. Am Horizont in der Bildmitte ist der [[Großer Bärenberg|Große Bärenberg]] mit Funk- und Aussichtsturm sehen. Weiter rechts oberhalb der Windkraftanlagen liegt der [[Habichtswald (Gebirge)|Habichtswald]]|breite=1400px}}
== Literatur ==
'''Radwanderkarte:'''
* '''ADFC Regionalkarte "Kassel / Nordhessen"''' - Maßstab 1: 75.000; {{ISBN|978-3870736392}}; Preis: 8,95 €. Die spezielle Radwanderkarte mit detaillierter Routendarstellung auf reißfestem und wasserabweisendem Papier bildet Nordhessen hinsichtlich Oberflächenbeschaffenheit, Verkehrsbelastung und Tourenvorschlägen fast vollständig ab. Ab Wolfhagen auch für größere Touren z. B. zum Edersee, nach Fritzlar, Warburg usw. nutzbar.
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.31667| long= 9.16667| radius= }}
{{IstInKat|Naturpark Habichtswald}}
huh0xujb3ypdbmonig1npx209yj42ze
1769051
1769047
2026-04-16T19:45:21Z
Dirk Schmidt
15181
/* Unterkunft */
1769051
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Wolfhagen''' ist eine Kleinstadt in [[Nordhessen]] etwa 30 km westlich von Kassel gelegen.
Das "Wolfhager Land" liegt landschaftlich schön im [[Naturpark Habichtswald]]. Besonders einen Besuch wert ist die [[Weidelsburg]] oberhalb des Stadtteils Ippinghausen.
== Hintergrund ==
{{Mapframe|51.32809|9.16843|zoom=14|type=geoline}}
Die Stadt wurde 1231 unter Landgraf [[w:Konrad von Thüringen|Konrad von Thüringen]] gegründet.
1264 erhielt Wolfhagen das Stadtrecht. 1302 konnte die Stadtbefestigung fertiggestellt werden.
Im Dreißigjährigen Krieg wurde die Stadt fast vollständig dem Erdboden gleich gemacht.
=== Stadtgliederung ===
Neben der Kernstadt besteht Wolfhagen (mit dem Weiler Elmarshausen) aus elf weiteren Ortsteilen, die sich jeweils als Dorf rund um die Kernstadt erstrecken:
{{3 Spalten|
;{{Marker | type = quarter | name =Altenhasungen|wikidata=Q437180| styles = normal }}
;{{Marker | type = quarter | name =Bründersen|wikidata=Q997012| styles = normal }}
;{{Marker | type = quarter | name =Gasterfeld|wikidata=Q1495410| styles = normal }}
;{{Marker | type = quarter | name =Ippinghausen|wikidata=Q1672275| styles = normal }}
;{{Marker | type = quarter | name =Istha|wikidata=Q1674843| styles = normal }}
;{{Marker | type = quarter | name =Leckringhausen|wikidata=Q1811416| styles = normal }}
;{{Marker | type = quarter | name =Niederelsungen|wikidata=Q1987742| styles = normal }}
;{{Marker | type = quarter | name =Nothfelden|wikidata=Q1688879| styles = normal }}
;{{Marker | type = quarter | name =Philippinenburg und -thal|wikidata=Q1543020| styles = normal }}
;{{Marker | type = quarter | name =Viesebeck|wikidata=Q2523788| styles = normal }}
;{{Marker | type = quarter | name =Wenigenhasungen|wikidata=Q2559437| styles = normal }}.
}}
=== Nachbargemeinden ===
Wolfhagen grenzt im Nordwesten an {{Marker| type = town| name = Volkmarsen|wikidata=Q533535|styles = normal }},
im Norden an {{Marker | type = town| name = Breuna |wikidata=Q503830| styles = normal }},
im Osten an {{Marker | type = town| name = Zierenberg|wikidata=Q199094| styles = normal }} und {{Marker | type = town| name = Habichtswald|wikidata=Q624629| styles = normal }},
im Südosten an {{Marker | type = town| name = Schauenburg|wikidata=Q175419| styles = normal }},
im Süden an {{Marker | type = town| name = Bad Emstal |wikidata=Q291091| styles = normal }} und {{Marker | type = town| name = Naumburg|wikidata=Q641014| styles = normal }},
im Südwesten an {{Marker | type = town| name = Waldeck|wikidata=Q540107| styles = normal }},
sowie im Westen an {{Marker | type = town| name = Bad Arolsen |wikidata=Q498078| styles = normal }}.
== Anreise ==
=== Mit dem Flugzeug ===
* Der nächste Flughafen ist der {{marker|type = airport|name = Flughafen Kassel-Calden |wikidata = Q529143}} etwa 26 km nordwestlich von Wolfhagen, danach folgt der {{marker|type = airport|name = Flughafen Paderborn Lippstadt|wikidata = Q685536}}, der ca. 55 km nordwestlich liegt (gut über die Autobahn A 44 zu erreichen). Die meisten Flugoptionen hat man allerdings vom {{marker|type = airport|name = Flughafen Frankfurt am Main |wikidata = Q46033}}, welcher etwa 220 km entfernt ist.
=== Mit der Bahn ===
* {{vCard | type = train | name = Bahnhof Wolfhagen | wikidata = Q55637849 | description = Wolfhagen liegt an der [[Kurhessenbahn]] [[Korbach]] - [[Kassel]]. Mit dem Regionalexpress bestehen direkte Verbindungen zum ICE in Kassel-Wilhelmshöhe. Des weiteren kann man mit der Regiotram direkt bis ins Stadtzentrum von Kassel fahren.
}}
=== Auf der Straße ===
* Die Autobahn {{RSIGN|DE|A |44}} Kassel - Dortmund an der Anschlussstellen Zierenberg (aus Richtung Kassel) bzw. Breuna (aus Richtung Dortmund) verlassen.
* Die [[Deutsche Fachwerkstraße]] führt durch den Ort.
=== Mit dem Fahrrad ===
[[File:Wolfhagen stadtblick von Sueden vom radfernweg r 4.jpg|thumb|Am hess. Radfernweg R 4: Blick von Süden auf Wolfhagen]]
* Die Stadt liegt am '''[[Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen|Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen]]''' der die Stadt in Nord-Süd Richtung für den Radurlauber erschließt. Im Bereich von Zierenberg über Wolfhagen nach Naumburg ist die Strecke allerdings recht bergig und verläuft zun großen Teilen auf Landstraßen, die zum Teil schnell und auch stärker befahren sind. Die verkehrsfreien Strecken sind öfter geschottert.
*Gut zu wissen: Wer auf der Durchreise per Rad auf dem R 4 ist und seinen Pedelec-Akku während einer Pause laden möchte, findet am Rathaus einem Fahrradständer mit frei zugänglichen Steckdosen.
== Mobilität ==
* {{vCard|type=taxi|name= Taxi Brandau Wolfhagen|address=|phone=+49(0)5692 997700|url=http://www.taxi-brandau-kassel.de|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard | type = parking | name = Parkhaus Mittelstraße / Schäferstraße | lat = 51.32604 | long = 9.17097 | price = frei | lastedit = 2018-06-26 | description = Parkhaus in der Altstadt mit zwei Ebenen, die von verschiedenen Seiten angefahren werden. }}
* {{vCard | type = parking | name = Tiefgarage Rathaus | lat = 51.324124| long = 9.168018 | price = frei | lastedit = 2020-03-29 | description = Parkhaus in der Altstadt, unterhalb des neuen Rathaus. Die Tiefgarage verfügt über eine Ebene und kann nur von der kleinen Straße zwischen Landgrafen und Burgstraße aus angefahren werden. }}
* {{vCard | type = parking | name = Parkaus Torstraße/Wilhelmsstraße | lat = 51.327147| long = 9.172285 | price = frei | lastedit = 2020-03-29 | description = Parkhaus unterhalb der Altstadt, nahe der Sparkasse. Das Parkhaus verfügt über mehrere Ebenen und kann von Wilhelms- und Torstraße aus angefahren werden. Das Gebäude ist als Drogentreffpunkt der Stadt bekannt. }}
== Sehenswürdigkeiten ==
[[Bild:wolfhagen_von_sueden_ds_wv_07_2009.jpg|thumb|Wolfhagen - Blick auf die Altstadt von Süden]]
Wolfhagen besitzt eine sehenswerte '''Altstadt mit Fachwerkbauten'''. Kleinere Reste der Stadtmauer sind ebenfalls noch vorhanden.
* Der {{marker| type = square | name = Marktplatz | lat = 51.32489 | long = 9.16846 }} ist ein gemütlicher Stadtraum mit Café und der Stadtkirche. Prächtigstes Haus am Platz ist der Fachwerkbau des „Alten Rathauses”. Das Haus beherbergt heute ein Hotel mit Restaurant. Auf dem Platz befindet sich ferner der Märchenbrunnen, der eine Szene aus dem Märchen "Der Wolf und die sieben Geislein" zeigt.
* {{vCard | type = church | name = Stadtkirche Wolfhagen | url = http://www.stadtkirche-wolfhagen.de | wikidata = Q83797087 | hours = Sommer 8-18 Uhr, Winter 9-17 Uhr | description = Die weithin sichtbare evangelische Kirche steht am Marktplatz. Bei der Stadtgründung im Jahr 1231 wurde mit dem Bau der Kirche als gotische Hallenkirche begonnen. Das Gebäude ist allerdings nicht rein gotisch. Im Laufe der baulichen Veränderungen haben verschiedene Stile das Gebäude geprägt. Sehenswert sind unter anderem die Chorfenster aus dem Jahr 1691, die Glasfenster von Hans-Gottfried von Stockhausen sowie das Westportal am Turm.}}
* {{vCard | type = church | name =St. Maria|lat =51.325212 |long =9.176246 |url=https://www.katholische-kirche-wolfhagen.de/ |description=Die katholische Kirche wurde 1966 erbaut und ersetzte die Notkirche am Koppenberg, die nach dem Zweiten Weltkrieg errichtet wurde. }}
* {{vCard | type = church | name =Friedhofskapelle|lat =51.325593 |long =9.173586 |description=Die heutige Friedhofskapelle ist die ursprüngliche [[w:Wolfhagen#Hospitalkapelle|Hospitalkapelle]]. Sie ist ein einschiffiges, hochgotisches Gebäude aus Sandsteinquadern.}}
* {{vCard | type = castle| name=Burg Wolfhagen| wikidata=Q1014646| lat =51.3227|long =9.165|description =Im Jahre 1513 wurde ein Neubau der Burg erstellt. Ende des 16. Jahrhunderts war sie verfallen, Anfang des 17. Jahrhunderts wurde sie abgerissen. Erhalten geblieben sind lediglich Reste.}}
* {{vCard | type = castle| name=Burgruine Helfenberg| wikidata=Q1015331| lat =51.329722|long =9.209167| description =Die Überreste der Burg befinden sich rund 2,5 km östlich der Kernstadt.}}
* {{marker| type = tower | name = Chattenturm | lat = 51.32766 | long = 9.17167 }} Als Rest der Stadtbefestigung kann der Wehrturm bestiegen werden. Der Schlüssel ist in der Tourist-Information im Rathaus erhältlich.
* Der frei zugängliche {{marker | type = tower | name = Ofenberg-Turm |wikidata=Q1800311 |lat = 51.32749 | long = 9.18990 }} liegt etwa 1,5 km östlich der Stadtmitte. Schöne kleine Wanderung von der Stadtmitte: Hier zu am besten via Mittelstraße und Treppenanlage "Am Hospitalgarten" die Altstadt nach Osten verlassen. Von hier an der Brücke der Karlstraße die Umgehungsstraße queren. Am Ende der Karlstraße in eine Links-Rechts-Kombination in die Ofenbergstraße wechseln. Vom Ende der Ofenbergstraße gibt es Wanderpfade durch den Wald zum Turm hoch. Strecke ab Marktplatz etwa 5 km Retour mit rund 150 Höhenmetern.
* Der {{marker | type = park | name = Stadtpark | name-map = Kattenturm | lat = 51.32477 | long = 9.16522 }} liegt westlich der Altstadt in einem kleinen Tal. Der Park ist nicht spektakulär. Wer aber einen kleinen, altstadtnahen Spaziergang unternehmen möchte, für den ist der Park mit Teich und Spielplatz ein nettes Ziel.
* {{vCard | type = museum | name = Regionalmuseum Wolfhager Land | url = http://www.regionalmuseum-wolfhagen.de/ | address = Ritterstr. 1 | lat = 51.32297 | long = 9.16540 | phone = +49 (0)5692 992431 | hours = Di bis Do 10-13 und 14-17 Uhr, Sa und So 14-17 Uhr | price = Erwachsene: 3 €, Familienkarte: 6 € | lastedit = 2017-11-04 | description = Das Museum in der alten Burg informiert über die Geschichte der Stadt und Region.}}
* {{vCard | type = museum | name = Museum für Film- und Videotechnik | url = http://www.filmmuseum-wolfhagen.de | address = Triangelstraße 19 | lat = 51.32669 | long = 9.17041 | phone = +49(0)5692 994956 | hours = Sonntags von 11-12:30 Uhr, Gruppenbesuche mit Führung nach Vereinbarung | price = Eintritt frei, Spende erwünscht | lastedit = 2017-11-04 | description = Das Museum beschäftigt sich mit filmtechnischen Gerätschaften bis zum 35-mm Format. Die Ausstellung ist noch im Aufbau.}}
* {{vCard | type = rock | name = Felsgruppe Rauensteine | lat = 51.2895 | long = 9.1666 | lastedit = 2018-06-26 | description = Die nicht spektakuläre, aber sehenswerte Felsgruppe findet sich etwa 5 km südlich der Kernstadt zwischen den Ortsteilen Ippinghausen und Bründersen. Die Sandsteine liegen in einem Waldgebiet und sind 4 bis 5 m hoch. Das Naturdenkmal ist von beiden Dörfern über den Wanderweg "Wolfsfährte" erreichbar (Markierung Wolfssysmbol auf kleinen Metallschildern, [https://www.openstreetmap.org/relation/3764717#map=13/51.2904/9.1690 Streckenverlauf auf Openstreetmap]). }}
* {{vCard | type = cave | name = Felskeller "Drachenhöhle" | lat = 51.3073546 | long = 9.1715908 | lastedit = 2018-06-26 | description = Der künstlich angelegte Felsenkeller findet sich am Graner Berg. Für eine Expedition in die Keller benötigt man eine Lichtquelle. Die Drachenhöhle ist direkt nur zu Fuß über Pfade zugänglich und kann bis zum Graner Berg gut per Fahrrad angefahren werden. Mit Stand 2014 ist die vor allem für Familien mit größeren Kindern interessante Sehenswürdigkeit nicht ausgeschildert. }}
== Aktivitäten ==
* '''Wandern''' - Die grüne Landschaft rund am Wolfhagen lädt zu vielfältigen Wanderungen ein, wie zum Beispiel auf [[Habichtswaldsteig]] und [[Eco Pfad Kulturgeschichte Wolfhagen]]. Ein schönes Wanderrevier sind z. B. die Wälder rund um das obere Elbetal bei Ippinghausen. Es gibt hier ab dem Wanderparkplatz unterhalb der Weidelsburg ausgeschilderte Rundwanderwege. Höhepunkt einer Wanderung kann hier der Besuch der [[Weidelsburg]] sein. Im Elbetal kann man schön in der Hasenmühle einkehren.
* '''Radwandern''' - Rund um Wolfhagen gibt es landschaftliche schöne Routen zum Radwandern. Die Touren sind meist bergig und die Strecken öfter geschottert. Die Schilder für das flächige Radwegweisungsnetz sollen bis Ende 2018 aufgestellt werden. Wer möchte kann z. B. über den Hessischen Radfernweg R 4 in das 10 km südlich liegende Fachwerkstädtchen [[Naumburg (Hessen)]] radeln (z. T. Schotterwege). Überregionale Radwanderkarte siehe Abschnitt [[#Literatur|Literatur]]
* {{marker|type=swimming|name=Erlebnis-Freibad|lat=51.3245|long=9.1827}} - das zwischen Mai und August geöffnete Bad besitzt eine 36 m lange Wasserrutsche. Lage: Nördlich der Umgehungsstraße in der Sudetenstraße.
* '''Rundflüge''' - können über die [http://www.edgw.de/ Luftsportvereinigung Wolfhagen e. V.] individuell erfragt/ gebucht werden. Der kleine Flugplatz liegt landschaftlich sehr schön auf dem [[w:Graner Berg|Graner Berg]] etwa 2 km südlich der Stadt.
* {{vCard | name = Cinema Wolfhagen | type = cinema | url = https://kino-wolfhagen.de | address = Schützebergerstr. 37, 34466 Wolfhagen | lat = 51.32582 | long = 9.16842 | phone = 05692 995099 | description = Das Kino liegt in einem der ältesten Häuser der Stadt. Es gibt immer aktuelle Filme, auch in neuester 3D-Technik. Ferner werden besondere Aktionen wie "Café und Kino", "Kulinarisches Kino" und "Der besondere Film" (Programmkino) angeboten. Preise sind fair, Personal ist freundlich, Aktionen und Kino sind gut besucht. Reservierungen und Kartenkauf können über das Onlinesystem vorgenommen werden.
}}
* {{vCard | name = Waldbühne Niederelsungen | type = theater | url = http://www.waldbuehne.niederelsungen.de | lat = 51.38328 | long = 9.18952 | description = Etwa 8 km außerhalb liegt im Ortsteil Niederelsungen die Waldbühne. Alle zwei Jahre wird in der Freiluftbühne im Sommer Theater gespielt. Die Preise sind moderat und es ist oft gar nicht einfach eins der 1300 Ticket zu bekommen.
}}
=== Feste ===
* {{vCard|name=Vieh- und Krammarkt |wikidata=|type=festival |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Das traditionsreiche und größte Fest der Stadt findet alljährlich im Juli auf der Liemecke statt und besteht aus Viehschau und Vergnügungspark.}}
* {{vCard|name=Kulturzelt Wolfhagen |wikidata=|type=festival |address=|phone=|email=|url=http://www.kulturzelt.de |hours=|price=|lat=|long=|lastedit=|description=Das große Kleinkunstfestival im Juni im Stadtpark Teichwiesen wartet auch mit bekannten Namen auf und findet mittlerweile auch überregional Beachtung.}}
== Einkaufen ==
* '''Lebensmitteleinkauf:''' Zwei Lebensmittelmärkte finden sich bei {{Marker | name = zwei Lebensmittelmärkte | type= shop | lat = 51.329824 | long = 9.173756| show =noname }} an der Schützeberger Straße.
== Küche ==
* {{vCard|type=restaurant|name=Zum Chattenturm|wikidata= Q57021087| lastedit = 2018-01-01 |description=}}
* {{vCard|type=restaurant|name=„Zum Schiffchen“|address=Hans-Staden-Straße 27|phone=+49 05692 9875-0|email=besucher@hotel-zum-schiffchen.de|fax=+49 05692 9875-11|url=https://www.hotel-zum-schiffchen.de/|hours=Mo.-Sa.: 17-24 Uhr; So.: 11-15 Uhr; jeden 2. Sonntagabend: 17-23 Uhr; Feiertage: 11-15 Uhr und 17-23 Uhr; Küche: 11:30-14 Uhr und 17:30-22 Uhr|price=|lat=51.32279|long=9.16664}}
* {{vCard|type=restaurant|name=Gasthaus Hotel Pfeifferling|address=Waldecker Straße 7|phone=+49 05692 5980|email=info@gasthaus-pfeifferling.de|fax=+49 05692 8111|url=https://www.gasthaus-pfeifferling.de/|hours=|price=|lat=51.28106|long=9.14285}}
* {{vCard|name=Konditorei Oliev |wikidata=|type=pastry shop |address=Schützeberger Str. 49 |phone=+49 05692 993971 |email=|url=|hours=|price=|lat=51.32660 |long=9.16939 |lastedit=|description=Gemütliche Kaffee-Atmosphäre drinnen und draußen in der Altstadt, freundliche Bedienung, faire Preise, vom Frühstück bis zum späten Nachmittag durchgehend geöffnet.}}
* {{vCard|name=Ristorante San Remo |wikidata=|type=restaurant |address=Schützeberger Str. 37 |phone=+49 05692 5920 |email=|url=https://www.restaurant-san-remo.eu/ |hours=|price=|lat=51.32579 |long=9.16829 |lastedit=|description=Italienische Küche in der Altstadt, wie man sie gerne isst. Ein gemütliches Lokal, im Sommer auch draußen, mit angemessenen Preisen, freundlichem Service und saisonaler Küche. Abends und am Wochenende ist Tischbestellung zu empfehlen.}}
* {{vCard | name = Eiscafe Da Peppo | type = ice cream | address = Schützeberger Str. 47 | lat = 51.32651 | long = 9.16931 | phone = +49 05692 9968484 | description = Hier erhält man im Straßenverkauf recht große Kugeln Eis zu 1,20 Cent das Stück (Frühjahr 2020).
}}
== Nachtleben ==
Die Landruhe mit klarem Sternenhimmel genießen.
* {{vCard | type = bar | name = Mamounia Lounge/Shisha bar| facebook = MAMOUNIALOUNGEWOLFHAGEN | address = Kurfürstenstraße 47, 34466 Wolfhagen | lat = 51.3216698 | long = 9.1813215 | phone = +49 160 8980069 | hours = Mo bis Do 18:00 - 0:00 Uhr; Fr bis Sa 17:00 - 0:00 Uhr; So 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Einzige Shisha bar der Stadt, die bislang überlebt hat. Klein aber gemütlich.}}
* {{vCard | type = bar | name = Zottels Pub | url = http://www.zottels-kneipe.de/ | facebook = zottels.pub | address = Mittelstraße 22-24, 34466 Wolfhagen | lat = 51.325656 | long = 9.171556 | phone = +49 172 5704415 | hours = So bis Mo geschlossen; Di bis Sa 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Raucherbar mit langer Tradition und gewissem Ruf in Wolfhagen. Fußballspiele werden live übertragen. Es gibt einen Dartsroom mit einigen Scheiben und eigener Mannschaft. Es werden Turniere in der Kai Schumacher Dartliga abgehalten }}
* {{vCard | type = bar | name = Gaststätte zur Knackenburg| address = Burgstraße 12, 34466 Wolfhagen | lat = 51.325162 | long = 9.170854 | phone = +49 5692 2566| hours = Mo bis Mi 17 - 22 Uhr; Fr 17 - 23 Uhr; Sa 10 - 22 Uhr, Do und So geschlossen | price = | lastedit = 2020-03-30 | facebook = knacke.woh | description = Beste Kneipe in Wolfhagen, mit langer Tradition. Bringt Alt und Jung zusammen. }}
== Unterkunft ==
* Zum Unterkunftsverzeichnis der [https://wolfhagen.de/stadtplan/?jsf=jet-engine&meta=typ!is_custom_checkbox:Unterkuenfte Stadt Wolfhagen] (mit Ferienwohnungen und Unterkünften in den Stadtteilen.)
* {{vCard | type = caravan site | name = Wohnmobilstellplatz Wolfhagen | lat = 51.33014444 | long = 9.17102222 | lastedit = 2018-06-26 | description = Der Platz mit 34 Stellplätzen liegt nur wenige Meter nördlich der Altstadt in den Bruchwiesen. Stellplatzgebühren: keine; Spenden erwünscht. Zu Hauptbesuchszeiten (z. B. Ostern) kann der Platz ausgelastet sein. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Altes Rathaus" | url = https://www.altesrathauswolfhagen.de | address = Kirchplatz 1, 34466 Wolfhagen | lat = 51.3250835 | long = 9.1668356 | phone = +49 (0)5692 - 997906 | fax = +49 (0)5692 - 997908 | price = EZ ab 53,60 €, DZ ab 63,65 €, Frühstück extra für 15 € | lastedit = 2026-04-16 | description = Erst nach dem Umzug der Stadtverwaltung in die Burgstraße 33 wurde das alte Rathaus, das direkt im Stadtkern liegt, in ein Hotel und Restaurant umgebaut. }}
* {{vCard | name = Hotel und Restaurant "Zum Schiffchen" | type = hotel | url = https://www.hotel-zum-schiffchen.de/ | address = Hans-Staden-Straße 27, 34466 Wolfhagen | lat = 51.32283 | long = 9.16663 | phone = +49 (0)5692 - 98750 | fax = +49 (0)5692 - 987511 | email = besucher@hotel-zum-schiffchen.de | price = EZ ab 66,50 € €, DZ ab 95 €, Frühstück extra für 12,50 € | lastedit = 2026-04-16 | description = 11 Hotelzimmer in 2 Kategorien.
}}
* {{vCard | name = Hotel und Restaurant "Zum Chattenturm" | type = hotel | url = https://zum-chattenturm.de/ | address = Schützeberger Straße 67, Wolfhagen | lat = 51.32746 | long = 9.17105 | phone = +49 (0)5692 - 2387 | fax = +49 (0)5692 - 8503 | email = info@hotel-zum-chattenturm.de | price = EZ ab 60 €, DZ ab 80 € (Frühstück 15 €) | lastedit = 2026-04-16 | description = Die Gästezimmer befinden sich in den starken, historischen Mauern. Das sorgt für den ungestörten Schlaf der Gäste.
}}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zur Stadt Wolfhagen" | address = Mittelstraße 9, 34466 Wolfhagen | lat = 51.3254633 | long = 9.1667513 | phone = +49 (0)5692 - 993064 | fax = +49 (0)5692 - 993111 | price = ab 34 € | lastedit = 2019-03-01 | mobile = +49 (0)176 32822214 | description = Hotel, Restaurant und Cafe }}
== Sicherheit ==
Wolfhagen ist eine sichere Stadt. Besondere Verhaltensregeln über die üblichen Vorsichtsmaßnahmen hinaus, wie Fahrrad abschließen usw., sind nicht notwendig.
== Gesundheit ==
* {{vCard|name=Kreiskliniken Kassel - Standort Wolfhagen|type=hospital|lat=51.32015|long=9.19085|lastedit=2022-03-28|description=Das Krankenhaus wurde von Gesundheit Nordhessen durch den Landkreis Kassel übernommen. Weiterer Standort ist Hofgeismar.}}
== Praktische Hinweise ==
* {{vCard | name = Stadt- und Tourist-Information | type = tourist information | url = https://wolfhagen.de/tourismus/ | address = Burgstraße 33-35, 34466 Wolfhagen | lat = 51.32442 | long = 9.16848 | phone = +49 (0)5692 602102 | fax = +49 (0)5692 602190 | email = tourist-info@wolfhagen.de
}}
* {{vCard | name = öffentliche Toilette am Rathaus | type = toilet | lat = 51.32421 | long = 9.16822 | lastedit = 2018-06-26 | description = Eine frei zugängliche, öffentliche Toilettenanlage befindet sich am Rathaus oberhalb des Marktplatzes.
}}
== Ausflüge ==
=== Bis 10 km Entfernung ===
* {{vCard | type = castle| name=Weidelsburg|wikidata=Q1621311|lat =51.272917| long =9.144319| description = Die große Burgruine mit sehr schöner Aussicht liegt etwa 5 km südlich von Wolfhagen oberhalb des Stadtteils Ippinghausen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Festberg|lat =51.335032 |long = 9.217336 | description =Bergrücken mit Kalkmagerrasen und schönem Landschaftsblick zwischen Philippinenthal und Altenhasungen. Zwei Bänke laden zum Entspannen ein. Die Erhebung liegt etwa 4 km nordöstlich von Wolfhagen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Glockenborn|lat =51.305722 |long = 9.18775 | description =Künstlich angelegtes Feuchtgebiet mit zwei Seen, kleineren Stillgewässern und Extensivgrünland. Insgesamt drei Aussichtspunkte mit guter Beobachtungsposition für seltene Vogel- und Amphibienartenn. Das Gebiet liegt etwa 3 km südöstlich der Innenstadt}}
=== Bis 30 km Entfernung ===
* an den '''[[Edersee]]''' (etwa 25 km südlich)
* nach [[Fritzlar]] (etwa 25 km südlich)
* nach [[Bad Arolsen]] (etwa 15 km nordwestlich)
* nach [[Warburg]] (etwa 20 km nördlich)
* nach Kassel in den '''[[Bergpark Wilhelmshöhe]]''' (etwa 25 km östlich)
* [[Eco Pfad Kulturgeschichte Wolfhagen]]
{{Panorama|bild=Weidelsberg_pano_nordostblick_ds_08_2009.jpg|unterschrift='''Nordostblick von der [[Weidelsburg]]:''' Links vorne im Panorama ist Ippinghausen zu erkennen. Schräg rechts darüber sieht man [[Wolfhagen]]. Am Horizont in der Bildmitte ist der [[Großer Bärenberg|Große Bärenberg]] mit Funk- und Aussichtsturm sehen. Weiter rechts oberhalb der Windkraftanlagen liegt der [[Habichtswald (Gebirge)|Habichtswald]]|breite=1400px}}
== Literatur ==
'''Radwanderkarte:'''
* '''ADFC Regionalkarte "Kassel / Nordhessen"''' - Maßstab 1: 75.000; {{ISBN|978-3870736392}}; Preis: 8,95 €. Die spezielle Radwanderkarte mit detaillierter Routendarstellung auf reißfestem und wasserabweisendem Papier bildet Nordhessen hinsichtlich Oberflächenbeschaffenheit, Verkehrsbelastung und Tourenvorschlägen fast vollständig ab. Ab Wolfhagen auch für größere Touren z. B. zum Edersee, nach Fritzlar, Warburg usw. nutzbar.
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.31667| long= 9.16667| radius= }}
{{IstInKat|Naturpark Habichtswald}}
5qm6y9pquhs7hrefmp8w5715vfvme7a
1769055
1769051
2026-04-16T19:48:08Z
Dirk Schmidt
15181
/* Nachtleben */
1769055
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Wolfhagen''' ist eine Kleinstadt in [[Nordhessen]] etwa 30 km westlich von Kassel gelegen.
Das "Wolfhager Land" liegt landschaftlich schön im [[Naturpark Habichtswald]]. Besonders einen Besuch wert ist die [[Weidelsburg]] oberhalb des Stadtteils Ippinghausen.
== Hintergrund ==
{{Mapframe|51.32809|9.16843|zoom=14|type=geoline}}
Die Stadt wurde 1231 unter Landgraf [[w:Konrad von Thüringen|Konrad von Thüringen]] gegründet.
1264 erhielt Wolfhagen das Stadtrecht. 1302 konnte die Stadtbefestigung fertiggestellt werden.
Im Dreißigjährigen Krieg wurde die Stadt fast vollständig dem Erdboden gleich gemacht.
=== Stadtgliederung ===
Neben der Kernstadt besteht Wolfhagen (mit dem Weiler Elmarshausen) aus elf weiteren Ortsteilen, die sich jeweils als Dorf rund um die Kernstadt erstrecken:
{{3 Spalten|
;{{Marker | type = quarter | name =Altenhasungen|wikidata=Q437180| styles = normal }}
;{{Marker | type = quarter | name =Bründersen|wikidata=Q997012| styles = normal }}
;{{Marker | type = quarter | name =Gasterfeld|wikidata=Q1495410| styles = normal }}
;{{Marker | type = quarter | name =Ippinghausen|wikidata=Q1672275| styles = normal }}
;{{Marker | type = quarter | name =Istha|wikidata=Q1674843| styles = normal }}
;{{Marker | type = quarter | name =Leckringhausen|wikidata=Q1811416| styles = normal }}
;{{Marker | type = quarter | name =Niederelsungen|wikidata=Q1987742| styles = normal }}
;{{Marker | type = quarter | name =Nothfelden|wikidata=Q1688879| styles = normal }}
;{{Marker | type = quarter | name =Philippinenburg und -thal|wikidata=Q1543020| styles = normal }}
;{{Marker | type = quarter | name =Viesebeck|wikidata=Q2523788| styles = normal }}
;{{Marker | type = quarter | name =Wenigenhasungen|wikidata=Q2559437| styles = normal }}.
}}
=== Nachbargemeinden ===
Wolfhagen grenzt im Nordwesten an {{Marker| type = town| name = Volkmarsen|wikidata=Q533535|styles = normal }},
im Norden an {{Marker | type = town| name = Breuna |wikidata=Q503830| styles = normal }},
im Osten an {{Marker | type = town| name = Zierenberg|wikidata=Q199094| styles = normal }} und {{Marker | type = town| name = Habichtswald|wikidata=Q624629| styles = normal }},
im Südosten an {{Marker | type = town| name = Schauenburg|wikidata=Q175419| styles = normal }},
im Süden an {{Marker | type = town| name = Bad Emstal |wikidata=Q291091| styles = normal }} und {{Marker | type = town| name = Naumburg|wikidata=Q641014| styles = normal }},
im Südwesten an {{Marker | type = town| name = Waldeck|wikidata=Q540107| styles = normal }},
sowie im Westen an {{Marker | type = town| name = Bad Arolsen |wikidata=Q498078| styles = normal }}.
== Anreise ==
=== Mit dem Flugzeug ===
* Der nächste Flughafen ist der {{marker|type = airport|name = Flughafen Kassel-Calden |wikidata = Q529143}} etwa 26 km nordwestlich von Wolfhagen, danach folgt der {{marker|type = airport|name = Flughafen Paderborn Lippstadt|wikidata = Q685536}}, der ca. 55 km nordwestlich liegt (gut über die Autobahn A 44 zu erreichen). Die meisten Flugoptionen hat man allerdings vom {{marker|type = airport|name = Flughafen Frankfurt am Main |wikidata = Q46033}}, welcher etwa 220 km entfernt ist.
=== Mit der Bahn ===
* {{vCard | type = train | name = Bahnhof Wolfhagen | wikidata = Q55637849 | description = Wolfhagen liegt an der [[Kurhessenbahn]] [[Korbach]] - [[Kassel]]. Mit dem Regionalexpress bestehen direkte Verbindungen zum ICE in Kassel-Wilhelmshöhe. Des weiteren kann man mit der Regiotram direkt bis ins Stadtzentrum von Kassel fahren.
}}
=== Auf der Straße ===
* Die Autobahn {{RSIGN|DE|A |44}} Kassel - Dortmund an der Anschlussstellen Zierenberg (aus Richtung Kassel) bzw. Breuna (aus Richtung Dortmund) verlassen.
* Die [[Deutsche Fachwerkstraße]] führt durch den Ort.
=== Mit dem Fahrrad ===
[[File:Wolfhagen stadtblick von Sueden vom radfernweg r 4.jpg|thumb|Am hess. Radfernweg R 4: Blick von Süden auf Wolfhagen]]
* Die Stadt liegt am '''[[Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen|Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen]]''' der die Stadt in Nord-Süd Richtung für den Radurlauber erschließt. Im Bereich von Zierenberg über Wolfhagen nach Naumburg ist die Strecke allerdings recht bergig und verläuft zun großen Teilen auf Landstraßen, die zum Teil schnell und auch stärker befahren sind. Die verkehrsfreien Strecken sind öfter geschottert.
*Gut zu wissen: Wer auf der Durchreise per Rad auf dem R 4 ist und seinen Pedelec-Akku während einer Pause laden möchte, findet am Rathaus einem Fahrradständer mit frei zugänglichen Steckdosen.
== Mobilität ==
* {{vCard|type=taxi|name= Taxi Brandau Wolfhagen|address=|phone=+49(0)5692 997700|url=http://www.taxi-brandau-kassel.de|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard | type = parking | name = Parkhaus Mittelstraße / Schäferstraße | lat = 51.32604 | long = 9.17097 | price = frei | lastedit = 2018-06-26 | description = Parkhaus in der Altstadt mit zwei Ebenen, die von verschiedenen Seiten angefahren werden. }}
* {{vCard | type = parking | name = Tiefgarage Rathaus | lat = 51.324124| long = 9.168018 | price = frei | lastedit = 2020-03-29 | description = Parkhaus in der Altstadt, unterhalb des neuen Rathaus. Die Tiefgarage verfügt über eine Ebene und kann nur von der kleinen Straße zwischen Landgrafen und Burgstraße aus angefahren werden. }}
* {{vCard | type = parking | name = Parkaus Torstraße/Wilhelmsstraße | lat = 51.327147| long = 9.172285 | price = frei | lastedit = 2020-03-29 | description = Parkhaus unterhalb der Altstadt, nahe der Sparkasse. Das Parkhaus verfügt über mehrere Ebenen und kann von Wilhelms- und Torstraße aus angefahren werden. Das Gebäude ist als Drogentreffpunkt der Stadt bekannt. }}
== Sehenswürdigkeiten ==
[[Bild:wolfhagen_von_sueden_ds_wv_07_2009.jpg|thumb|Wolfhagen - Blick auf die Altstadt von Süden]]
Wolfhagen besitzt eine sehenswerte '''Altstadt mit Fachwerkbauten'''. Kleinere Reste der Stadtmauer sind ebenfalls noch vorhanden.
* Der {{marker| type = square | name = Marktplatz | lat = 51.32489 | long = 9.16846 }} ist ein gemütlicher Stadtraum mit Café und der Stadtkirche. Prächtigstes Haus am Platz ist der Fachwerkbau des „Alten Rathauses”. Das Haus beherbergt heute ein Hotel mit Restaurant. Auf dem Platz befindet sich ferner der Märchenbrunnen, der eine Szene aus dem Märchen "Der Wolf und die sieben Geislein" zeigt.
* {{vCard | type = church | name = Stadtkirche Wolfhagen | url = http://www.stadtkirche-wolfhagen.de | wikidata = Q83797087 | hours = Sommer 8-18 Uhr, Winter 9-17 Uhr | description = Die weithin sichtbare evangelische Kirche steht am Marktplatz. Bei der Stadtgründung im Jahr 1231 wurde mit dem Bau der Kirche als gotische Hallenkirche begonnen. Das Gebäude ist allerdings nicht rein gotisch. Im Laufe der baulichen Veränderungen haben verschiedene Stile das Gebäude geprägt. Sehenswert sind unter anderem die Chorfenster aus dem Jahr 1691, die Glasfenster von Hans-Gottfried von Stockhausen sowie das Westportal am Turm.}}
* {{vCard | type = church | name =St. Maria|lat =51.325212 |long =9.176246 |url=https://www.katholische-kirche-wolfhagen.de/ |description=Die katholische Kirche wurde 1966 erbaut und ersetzte die Notkirche am Koppenberg, die nach dem Zweiten Weltkrieg errichtet wurde. }}
* {{vCard | type = church | name =Friedhofskapelle|lat =51.325593 |long =9.173586 |description=Die heutige Friedhofskapelle ist die ursprüngliche [[w:Wolfhagen#Hospitalkapelle|Hospitalkapelle]]. Sie ist ein einschiffiges, hochgotisches Gebäude aus Sandsteinquadern.}}
* {{vCard | type = castle| name=Burg Wolfhagen| wikidata=Q1014646| lat =51.3227|long =9.165|description =Im Jahre 1513 wurde ein Neubau der Burg erstellt. Ende des 16. Jahrhunderts war sie verfallen, Anfang des 17. Jahrhunderts wurde sie abgerissen. Erhalten geblieben sind lediglich Reste.}}
* {{vCard | type = castle| name=Burgruine Helfenberg| wikidata=Q1015331| lat =51.329722|long =9.209167| description =Die Überreste der Burg befinden sich rund 2,5 km östlich der Kernstadt.}}
* {{marker| type = tower | name = Chattenturm | lat = 51.32766 | long = 9.17167 }} Als Rest der Stadtbefestigung kann der Wehrturm bestiegen werden. Der Schlüssel ist in der Tourist-Information im Rathaus erhältlich.
* Der frei zugängliche {{marker | type = tower | name = Ofenberg-Turm |wikidata=Q1800311 |lat = 51.32749 | long = 9.18990 }} liegt etwa 1,5 km östlich der Stadtmitte. Schöne kleine Wanderung von der Stadtmitte: Hier zu am besten via Mittelstraße und Treppenanlage "Am Hospitalgarten" die Altstadt nach Osten verlassen. Von hier an der Brücke der Karlstraße die Umgehungsstraße queren. Am Ende der Karlstraße in eine Links-Rechts-Kombination in die Ofenbergstraße wechseln. Vom Ende der Ofenbergstraße gibt es Wanderpfade durch den Wald zum Turm hoch. Strecke ab Marktplatz etwa 5 km Retour mit rund 150 Höhenmetern.
* Der {{marker | type = park | name = Stadtpark | name-map = Kattenturm | lat = 51.32477 | long = 9.16522 }} liegt westlich der Altstadt in einem kleinen Tal. Der Park ist nicht spektakulär. Wer aber einen kleinen, altstadtnahen Spaziergang unternehmen möchte, für den ist der Park mit Teich und Spielplatz ein nettes Ziel.
* {{vCard | type = museum | name = Regionalmuseum Wolfhager Land | url = http://www.regionalmuseum-wolfhagen.de/ | address = Ritterstr. 1 | lat = 51.32297 | long = 9.16540 | phone = +49 (0)5692 992431 | hours = Di bis Do 10-13 und 14-17 Uhr, Sa und So 14-17 Uhr | price = Erwachsene: 3 €, Familienkarte: 6 € | lastedit = 2017-11-04 | description = Das Museum in der alten Burg informiert über die Geschichte der Stadt und Region.}}
* {{vCard | type = museum | name = Museum für Film- und Videotechnik | url = http://www.filmmuseum-wolfhagen.de | address = Triangelstraße 19 | lat = 51.32669 | long = 9.17041 | phone = +49(0)5692 994956 | hours = Sonntags von 11-12:30 Uhr, Gruppenbesuche mit Führung nach Vereinbarung | price = Eintritt frei, Spende erwünscht | lastedit = 2017-11-04 | description = Das Museum beschäftigt sich mit filmtechnischen Gerätschaften bis zum 35-mm Format. Die Ausstellung ist noch im Aufbau.}}
* {{vCard | type = rock | name = Felsgruppe Rauensteine | lat = 51.2895 | long = 9.1666 | lastedit = 2018-06-26 | description = Die nicht spektakuläre, aber sehenswerte Felsgruppe findet sich etwa 5 km südlich der Kernstadt zwischen den Ortsteilen Ippinghausen und Bründersen. Die Sandsteine liegen in einem Waldgebiet und sind 4 bis 5 m hoch. Das Naturdenkmal ist von beiden Dörfern über den Wanderweg "Wolfsfährte" erreichbar (Markierung Wolfssysmbol auf kleinen Metallschildern, [https://www.openstreetmap.org/relation/3764717#map=13/51.2904/9.1690 Streckenverlauf auf Openstreetmap]). }}
* {{vCard | type = cave | name = Felskeller "Drachenhöhle" | lat = 51.3073546 | long = 9.1715908 | lastedit = 2018-06-26 | description = Der künstlich angelegte Felsenkeller findet sich am Graner Berg. Für eine Expedition in die Keller benötigt man eine Lichtquelle. Die Drachenhöhle ist direkt nur zu Fuß über Pfade zugänglich und kann bis zum Graner Berg gut per Fahrrad angefahren werden. Mit Stand 2014 ist die vor allem für Familien mit größeren Kindern interessante Sehenswürdigkeit nicht ausgeschildert. }}
== Aktivitäten ==
* '''Wandern''' - Die grüne Landschaft rund am Wolfhagen lädt zu vielfältigen Wanderungen ein, wie zum Beispiel auf [[Habichtswaldsteig]] und [[Eco Pfad Kulturgeschichte Wolfhagen]]. Ein schönes Wanderrevier sind z. B. die Wälder rund um das obere Elbetal bei Ippinghausen. Es gibt hier ab dem Wanderparkplatz unterhalb der Weidelsburg ausgeschilderte Rundwanderwege. Höhepunkt einer Wanderung kann hier der Besuch der [[Weidelsburg]] sein. Im Elbetal kann man schön in der Hasenmühle einkehren.
* '''Radwandern''' - Rund um Wolfhagen gibt es landschaftliche schöne Routen zum Radwandern. Die Touren sind meist bergig und die Strecken öfter geschottert. Die Schilder für das flächige Radwegweisungsnetz sollen bis Ende 2018 aufgestellt werden. Wer möchte kann z. B. über den Hessischen Radfernweg R 4 in das 10 km südlich liegende Fachwerkstädtchen [[Naumburg (Hessen)]] radeln (z. T. Schotterwege). Überregionale Radwanderkarte siehe Abschnitt [[#Literatur|Literatur]]
* {{marker|type=swimming|name=Erlebnis-Freibad|lat=51.3245|long=9.1827}} - das zwischen Mai und August geöffnete Bad besitzt eine 36 m lange Wasserrutsche. Lage: Nördlich der Umgehungsstraße in der Sudetenstraße.
* '''Rundflüge''' - können über die [http://www.edgw.de/ Luftsportvereinigung Wolfhagen e. V.] individuell erfragt/ gebucht werden. Der kleine Flugplatz liegt landschaftlich sehr schön auf dem [[w:Graner Berg|Graner Berg]] etwa 2 km südlich der Stadt.
* {{vCard | name = Cinema Wolfhagen | type = cinema | url = https://kino-wolfhagen.de | address = Schützebergerstr. 37, 34466 Wolfhagen | lat = 51.32582 | long = 9.16842 | phone = 05692 995099 | description = Das Kino liegt in einem der ältesten Häuser der Stadt. Es gibt immer aktuelle Filme, auch in neuester 3D-Technik. Ferner werden besondere Aktionen wie "Café und Kino", "Kulinarisches Kino" und "Der besondere Film" (Programmkino) angeboten. Preise sind fair, Personal ist freundlich, Aktionen und Kino sind gut besucht. Reservierungen und Kartenkauf können über das Onlinesystem vorgenommen werden.
}}
* {{vCard | name = Waldbühne Niederelsungen | type = theater | url = http://www.waldbuehne.niederelsungen.de | lat = 51.38328 | long = 9.18952 | description = Etwa 8 km außerhalb liegt im Ortsteil Niederelsungen die Waldbühne. Alle zwei Jahre wird in der Freiluftbühne im Sommer Theater gespielt. Die Preise sind moderat und es ist oft gar nicht einfach eins der 1300 Ticket zu bekommen.
}}
=== Feste ===
* {{vCard|name=Vieh- und Krammarkt |wikidata=|type=festival |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Das traditionsreiche und größte Fest der Stadt findet alljährlich im Juli auf der Liemecke statt und besteht aus Viehschau und Vergnügungspark.}}
* {{vCard|name=Kulturzelt Wolfhagen |wikidata=|type=festival |address=|phone=|email=|url=http://www.kulturzelt.de |hours=|price=|lat=|long=|lastedit=|description=Das große Kleinkunstfestival im Juni im Stadtpark Teichwiesen wartet auch mit bekannten Namen auf und findet mittlerweile auch überregional Beachtung.}}
== Einkaufen ==
* '''Lebensmitteleinkauf:''' Zwei Lebensmittelmärkte finden sich bei {{Marker | name = zwei Lebensmittelmärkte | type= shop | lat = 51.329824 | long = 9.173756| show =noname }} an der Schützeberger Straße.
== Küche ==
* {{vCard|type=restaurant|name=Zum Chattenturm|wikidata= Q57021087| lastedit = 2018-01-01 |description=}}
* {{vCard|type=restaurant|name=„Zum Schiffchen“|address=Hans-Staden-Straße 27|phone=+49 05692 9875-0|email=besucher@hotel-zum-schiffchen.de|fax=+49 05692 9875-11|url=https://www.hotel-zum-schiffchen.de/|hours=Mo.-Sa.: 17-24 Uhr; So.: 11-15 Uhr; jeden 2. Sonntagabend: 17-23 Uhr; Feiertage: 11-15 Uhr und 17-23 Uhr; Küche: 11:30-14 Uhr und 17:30-22 Uhr|price=|lat=51.32279|long=9.16664}}
* {{vCard|type=restaurant|name=Gasthaus Hotel Pfeifferling|address=Waldecker Straße 7|phone=+49 05692 5980|email=info@gasthaus-pfeifferling.de|fax=+49 05692 8111|url=https://www.gasthaus-pfeifferling.de/|hours=|price=|lat=51.28106|long=9.14285}}
* {{vCard|name=Konditorei Oliev |wikidata=|type=pastry shop |address=Schützeberger Str. 49 |phone=+49 05692 993971 |email=|url=|hours=|price=|lat=51.32660 |long=9.16939 |lastedit=|description=Gemütliche Kaffee-Atmosphäre drinnen und draußen in der Altstadt, freundliche Bedienung, faire Preise, vom Frühstück bis zum späten Nachmittag durchgehend geöffnet.}}
* {{vCard|name=Ristorante San Remo |wikidata=|type=restaurant |address=Schützeberger Str. 37 |phone=+49 05692 5920 |email=|url=https://www.restaurant-san-remo.eu/ |hours=|price=|lat=51.32579 |long=9.16829 |lastedit=|description=Italienische Küche in der Altstadt, wie man sie gerne isst. Ein gemütliches Lokal, im Sommer auch draußen, mit angemessenen Preisen, freundlichem Service und saisonaler Küche. Abends und am Wochenende ist Tischbestellung zu empfehlen.}}
* {{vCard | name = Eiscafe Da Peppo | type = ice cream | address = Schützeberger Str. 47 | lat = 51.32651 | long = 9.16931 | phone = +49 05692 9968484 | description = Hier erhält man im Straßenverkauf recht große Kugeln Eis zu 1,20 Cent das Stück (Frühjahr 2020).
}}
== Nachtleben ==
Die Landruhe mit klarem Sternenhimmel genießen. Sonst:
* {{vCard | type = bar | name = Mamounia Lounge/Shisha bar| facebook = MAMOUNIALOUNGEWOLFHAGEN | address = Kurfürstenstraße 47, 34466 Wolfhagen | lat = 51.3216698 | long = 9.1813215 | phone = +49 160 8980069 | hours = Mo bis Do 18:00 - 0:00 Uhr; Fr bis Sa 17:00 - 0:00 Uhr; So 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Einzige Shisha bar der Stadt, die bislang überlebt hat. Klein aber gemütlich.}}
* {{vCard | type = bar | name = Zottels Pub | url = http://www.zottels-kneipe.de/ | facebook = zottels.pub | address = Mittelstraße 22-24, 34466 Wolfhagen | lat = 51.325656 | long = 9.171556 | phone = +49 172 5704415 | hours = So bis Mo geschlossen; Di bis Sa 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Raucherbar mit langer Tradition und gewissem Ruf in Wolfhagen. Fußballspiele werden live übertragen. Es gibt einen Dartsroom mit einigen Scheiben und eigener Mannschaft. Es werden Turniere in der Kai Schumacher Dartliga abgehalten }}
* {{vCard | type = bar | name = Gaststätte zur Knackenburg| address = Burgstraße 12, 34466 Wolfhagen | lat = 51.325162 | long = 9.170854 | phone = +49 5692 2566| hours = Mo bis Mi 17 - 22 Uhr; Fr 17 - 23 Uhr; Sa 10 - 22 Uhr, Do und So geschlossen | price = | lastedit = 2020-03-30 | facebook = knacke.woh | description = Beste Kneipe in Wolfhagen, mit langer Tradition. Bringt Alt und Jung zusammen. }}
== Unterkunft ==
* Zum Unterkunftsverzeichnis der [https://wolfhagen.de/stadtplan/?jsf=jet-engine&meta=typ!is_custom_checkbox:Unterkuenfte Stadt Wolfhagen] (mit Ferienwohnungen und Unterkünften in den Stadtteilen.)
* {{vCard | type = caravan site | name = Wohnmobilstellplatz Wolfhagen | lat = 51.33014444 | long = 9.17102222 | lastedit = 2018-06-26 | description = Der Platz mit 34 Stellplätzen liegt nur wenige Meter nördlich der Altstadt in den Bruchwiesen. Stellplatzgebühren: keine; Spenden erwünscht. Zu Hauptbesuchszeiten (z. B. Ostern) kann der Platz ausgelastet sein. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Altes Rathaus" | url = https://www.altesrathauswolfhagen.de | address = Kirchplatz 1, 34466 Wolfhagen | lat = 51.3250835 | long = 9.1668356 | phone = +49 (0)5692 - 997906 | fax = +49 (0)5692 - 997908 | price = EZ ab 53,60 €, DZ ab 63,65 €, Frühstück extra für 15 € | lastedit = 2026-04-16 | description = Erst nach dem Umzug der Stadtverwaltung in die Burgstraße 33 wurde das alte Rathaus, das direkt im Stadtkern liegt, in ein Hotel und Restaurant umgebaut. }}
* {{vCard | name = Hotel und Restaurant "Zum Schiffchen" | type = hotel | url = https://www.hotel-zum-schiffchen.de/ | address = Hans-Staden-Straße 27, 34466 Wolfhagen | lat = 51.32283 | long = 9.16663 | phone = +49 (0)5692 - 98750 | fax = +49 (0)5692 - 987511 | email = besucher@hotel-zum-schiffchen.de | price = EZ ab 66,50 € €, DZ ab 95 €, Frühstück extra für 12,50 € | lastedit = 2026-04-16 | description = 11 Hotelzimmer in 2 Kategorien.
}}
* {{vCard | name = Hotel und Restaurant "Zum Chattenturm" | type = hotel | url = https://zum-chattenturm.de/ | address = Schützeberger Straße 67, Wolfhagen | lat = 51.32746 | long = 9.17105 | phone = +49 (0)5692 - 2387 | fax = +49 (0)5692 - 8503 | email = info@hotel-zum-chattenturm.de | price = EZ ab 60 €, DZ ab 80 € (Frühstück 15 €) | lastedit = 2026-04-16 | description = Die Gästezimmer befinden sich in den starken, historischen Mauern. Das sorgt für den ungestörten Schlaf der Gäste.
}}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zur Stadt Wolfhagen" | address = Mittelstraße 9, 34466 Wolfhagen | lat = 51.3254633 | long = 9.1667513 | phone = +49 (0)5692 - 993064 | fax = +49 (0)5692 - 993111 | price = ab 34 € | lastedit = 2019-03-01 | mobile = +49 (0)176 32822214 | description = Hotel, Restaurant und Cafe }}
== Sicherheit ==
Wolfhagen ist eine sichere Stadt. Besondere Verhaltensregeln über die üblichen Vorsichtsmaßnahmen hinaus, wie Fahrrad abschließen usw., sind nicht notwendig.
== Gesundheit ==
* {{vCard|name=Kreiskliniken Kassel - Standort Wolfhagen|type=hospital|lat=51.32015|long=9.19085|lastedit=2022-03-28|description=Das Krankenhaus wurde von Gesundheit Nordhessen durch den Landkreis Kassel übernommen. Weiterer Standort ist Hofgeismar.}}
== Praktische Hinweise ==
* {{vCard | name = Stadt- und Tourist-Information | type = tourist information | url = https://wolfhagen.de/tourismus/ | address = Burgstraße 33-35, 34466 Wolfhagen | lat = 51.32442 | long = 9.16848 | phone = +49 (0)5692 602102 | fax = +49 (0)5692 602190 | email = tourist-info@wolfhagen.de
}}
* {{vCard | name = öffentliche Toilette am Rathaus | type = toilet | lat = 51.32421 | long = 9.16822 | lastedit = 2018-06-26 | description = Eine frei zugängliche, öffentliche Toilettenanlage befindet sich am Rathaus oberhalb des Marktplatzes.
}}
== Ausflüge ==
=== Bis 10 km Entfernung ===
* {{vCard | type = castle| name=Weidelsburg|wikidata=Q1621311|lat =51.272917| long =9.144319| description = Die große Burgruine mit sehr schöner Aussicht liegt etwa 5 km südlich von Wolfhagen oberhalb des Stadtteils Ippinghausen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Festberg|lat =51.335032 |long = 9.217336 | description =Bergrücken mit Kalkmagerrasen und schönem Landschaftsblick zwischen Philippinenthal und Altenhasungen. Zwei Bänke laden zum Entspannen ein. Die Erhebung liegt etwa 4 km nordöstlich von Wolfhagen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Glockenborn|lat =51.305722 |long = 9.18775 | description =Künstlich angelegtes Feuchtgebiet mit zwei Seen, kleineren Stillgewässern und Extensivgrünland. Insgesamt drei Aussichtspunkte mit guter Beobachtungsposition für seltene Vogel- und Amphibienartenn. Das Gebiet liegt etwa 3 km südöstlich der Innenstadt}}
=== Bis 30 km Entfernung ===
* an den '''[[Edersee]]''' (etwa 25 km südlich)
* nach [[Fritzlar]] (etwa 25 km südlich)
* nach [[Bad Arolsen]] (etwa 15 km nordwestlich)
* nach [[Warburg]] (etwa 20 km nördlich)
* nach Kassel in den '''[[Bergpark Wilhelmshöhe]]''' (etwa 25 km östlich)
* [[Eco Pfad Kulturgeschichte Wolfhagen]]
{{Panorama|bild=Weidelsberg_pano_nordostblick_ds_08_2009.jpg|unterschrift='''Nordostblick von der [[Weidelsburg]]:''' Links vorne im Panorama ist Ippinghausen zu erkennen. Schräg rechts darüber sieht man [[Wolfhagen]]. Am Horizont in der Bildmitte ist der [[Großer Bärenberg|Große Bärenberg]] mit Funk- und Aussichtsturm sehen. Weiter rechts oberhalb der Windkraftanlagen liegt der [[Habichtswald (Gebirge)|Habichtswald]]|breite=1400px}}
== Literatur ==
'''Radwanderkarte:'''
* '''ADFC Regionalkarte "Kassel / Nordhessen"''' - Maßstab 1: 75.000; {{ISBN|978-3870736392}}; Preis: 8,95 €. Die spezielle Radwanderkarte mit detaillierter Routendarstellung auf reißfestem und wasserabweisendem Papier bildet Nordhessen hinsichtlich Oberflächenbeschaffenheit, Verkehrsbelastung und Tourenvorschlägen fast vollständig ab. Ab Wolfhagen auch für größere Touren z. B. zum Edersee, nach Fritzlar, Warburg usw. nutzbar.
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.31667| long= 9.16667| radius= }}
{{IstInKat|Naturpark Habichtswald}}
f740qj0i41e82sa31ipxfxmdputrff4
1769058
1769055
2026-04-16T19:51:20Z
Dirk Schmidt
15181
/* Sehenswürdigkeiten */ Geänderte vCard für Regionalmuseum Wolfhager Land
1769058
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Wolfhagen''' ist eine Kleinstadt in [[Nordhessen]] etwa 30 km westlich von Kassel gelegen.
Das "Wolfhager Land" liegt landschaftlich schön im [[Naturpark Habichtswald]]. Besonders einen Besuch wert ist die [[Weidelsburg]] oberhalb des Stadtteils Ippinghausen.
== Hintergrund ==
{{Mapframe|51.32809|9.16843|zoom=14|type=geoline}}
Die Stadt wurde 1231 unter Landgraf [[w:Konrad von Thüringen|Konrad von Thüringen]] gegründet.
1264 erhielt Wolfhagen das Stadtrecht. 1302 konnte die Stadtbefestigung fertiggestellt werden.
Im Dreißigjährigen Krieg wurde die Stadt fast vollständig dem Erdboden gleich gemacht.
=== Stadtgliederung ===
Neben der Kernstadt besteht Wolfhagen (mit dem Weiler Elmarshausen) aus elf weiteren Ortsteilen, die sich jeweils als Dorf rund um die Kernstadt erstrecken:
{{3 Spalten|
;{{Marker | type = quarter | name =Altenhasungen|wikidata=Q437180| styles = normal }}
;{{Marker | type = quarter | name =Bründersen|wikidata=Q997012| styles = normal }}
;{{Marker | type = quarter | name =Gasterfeld|wikidata=Q1495410| styles = normal }}
;{{Marker | type = quarter | name =Ippinghausen|wikidata=Q1672275| styles = normal }}
;{{Marker | type = quarter | name =Istha|wikidata=Q1674843| styles = normal }}
;{{Marker | type = quarter | name =Leckringhausen|wikidata=Q1811416| styles = normal }}
;{{Marker | type = quarter | name =Niederelsungen|wikidata=Q1987742| styles = normal }}
;{{Marker | type = quarter | name =Nothfelden|wikidata=Q1688879| styles = normal }}
;{{Marker | type = quarter | name =Philippinenburg und -thal|wikidata=Q1543020| styles = normal }}
;{{Marker | type = quarter | name =Viesebeck|wikidata=Q2523788| styles = normal }}
;{{Marker | type = quarter | name =Wenigenhasungen|wikidata=Q2559437| styles = normal }}.
}}
=== Nachbargemeinden ===
Wolfhagen grenzt im Nordwesten an {{Marker| type = town| name = Volkmarsen|wikidata=Q533535|styles = normal }},
im Norden an {{Marker | type = town| name = Breuna |wikidata=Q503830| styles = normal }},
im Osten an {{Marker | type = town| name = Zierenberg|wikidata=Q199094| styles = normal }} und {{Marker | type = town| name = Habichtswald|wikidata=Q624629| styles = normal }},
im Südosten an {{Marker | type = town| name = Schauenburg|wikidata=Q175419| styles = normal }},
im Süden an {{Marker | type = town| name = Bad Emstal |wikidata=Q291091| styles = normal }} und {{Marker | type = town| name = Naumburg|wikidata=Q641014| styles = normal }},
im Südwesten an {{Marker | type = town| name = Waldeck|wikidata=Q540107| styles = normal }},
sowie im Westen an {{Marker | type = town| name = Bad Arolsen |wikidata=Q498078| styles = normal }}.
== Anreise ==
=== Mit dem Flugzeug ===
* Der nächste Flughafen ist der {{marker|type = airport|name = Flughafen Kassel-Calden |wikidata = Q529143}} etwa 26 km nordwestlich von Wolfhagen, danach folgt der {{marker|type = airport|name = Flughafen Paderborn Lippstadt|wikidata = Q685536}}, der ca. 55 km nordwestlich liegt (gut über die Autobahn A 44 zu erreichen). Die meisten Flugoptionen hat man allerdings vom {{marker|type = airport|name = Flughafen Frankfurt am Main |wikidata = Q46033}}, welcher etwa 220 km entfernt ist.
=== Mit der Bahn ===
* {{vCard | type = train | name = Bahnhof Wolfhagen | wikidata = Q55637849 | description = Wolfhagen liegt an der [[Kurhessenbahn]] [[Korbach]] - [[Kassel]]. Mit dem Regionalexpress bestehen direkte Verbindungen zum ICE in Kassel-Wilhelmshöhe. Des weiteren kann man mit der Regiotram direkt bis ins Stadtzentrum von Kassel fahren.
}}
=== Auf der Straße ===
* Die Autobahn {{RSIGN|DE|A |44}} Kassel - Dortmund an der Anschlussstellen Zierenberg (aus Richtung Kassel) bzw. Breuna (aus Richtung Dortmund) verlassen.
* Die [[Deutsche Fachwerkstraße]] führt durch den Ort.
=== Mit dem Fahrrad ===
[[File:Wolfhagen stadtblick von Sueden vom radfernweg r 4.jpg|thumb|Am hess. Radfernweg R 4: Blick von Süden auf Wolfhagen]]
* Die Stadt liegt am '''[[Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen|Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen]]''' der die Stadt in Nord-Süd Richtung für den Radurlauber erschließt. Im Bereich von Zierenberg über Wolfhagen nach Naumburg ist die Strecke allerdings recht bergig und verläuft zun großen Teilen auf Landstraßen, die zum Teil schnell und auch stärker befahren sind. Die verkehrsfreien Strecken sind öfter geschottert.
*Gut zu wissen: Wer auf der Durchreise per Rad auf dem R 4 ist und seinen Pedelec-Akku während einer Pause laden möchte, findet am Rathaus einem Fahrradständer mit frei zugänglichen Steckdosen.
== Mobilität ==
* {{vCard|type=taxi|name= Taxi Brandau Wolfhagen|address=|phone=+49(0)5692 997700|url=http://www.taxi-brandau-kassel.de|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard | type = parking | name = Parkhaus Mittelstraße / Schäferstraße | lat = 51.32604 | long = 9.17097 | price = frei | lastedit = 2018-06-26 | description = Parkhaus in der Altstadt mit zwei Ebenen, die von verschiedenen Seiten angefahren werden. }}
* {{vCard | type = parking | name = Tiefgarage Rathaus | lat = 51.324124| long = 9.168018 | price = frei | lastedit = 2020-03-29 | description = Parkhaus in der Altstadt, unterhalb des neuen Rathaus. Die Tiefgarage verfügt über eine Ebene und kann nur von der kleinen Straße zwischen Landgrafen und Burgstraße aus angefahren werden. }}
* {{vCard | type = parking | name = Parkaus Torstraße/Wilhelmsstraße | lat = 51.327147| long = 9.172285 | price = frei | lastedit = 2020-03-29 | description = Parkhaus unterhalb der Altstadt, nahe der Sparkasse. Das Parkhaus verfügt über mehrere Ebenen und kann von Wilhelms- und Torstraße aus angefahren werden. Das Gebäude ist als Drogentreffpunkt der Stadt bekannt. }}
== Sehenswürdigkeiten ==
[[Bild:wolfhagen_von_sueden_ds_wv_07_2009.jpg|thumb|Wolfhagen - Blick auf die Altstadt von Süden]]
Wolfhagen besitzt eine sehenswerte '''Altstadt mit Fachwerkbauten'''. Kleinere Reste der Stadtmauer sind ebenfalls noch vorhanden.
* Der {{marker| type = square | name = Marktplatz | lat = 51.32489 | long = 9.16846 }} ist ein gemütlicher Stadtraum mit Café und der Stadtkirche. Prächtigstes Haus am Platz ist der Fachwerkbau des „Alten Rathauses”. Das Haus beherbergt heute ein Hotel mit Restaurant. Auf dem Platz befindet sich ferner der Märchenbrunnen, der eine Szene aus dem Märchen "Der Wolf und die sieben Geislein" zeigt.
* {{vCard | type = church | name = Stadtkirche Wolfhagen | url = http://www.stadtkirche-wolfhagen.de | wikidata = Q83797087 | hours = Sommer 8-18 Uhr, Winter 9-17 Uhr | description = Die weithin sichtbare evangelische Kirche steht am Marktplatz. Bei der Stadtgründung im Jahr 1231 wurde mit dem Bau der Kirche als gotische Hallenkirche begonnen. Das Gebäude ist allerdings nicht rein gotisch. Im Laufe der baulichen Veränderungen haben verschiedene Stile das Gebäude geprägt. Sehenswert sind unter anderem die Chorfenster aus dem Jahr 1691, die Glasfenster von Hans-Gottfried von Stockhausen sowie das Westportal am Turm.}}
* {{vCard | type = church | name =St. Maria|lat =51.325212 |long =9.176246 |url=https://www.katholische-kirche-wolfhagen.de/ |description=Die katholische Kirche wurde 1966 erbaut und ersetzte die Notkirche am Koppenberg, die nach dem Zweiten Weltkrieg errichtet wurde. }}
* {{vCard | type = church | name =Friedhofskapelle|lat =51.325593 |long =9.173586 |description=Die heutige Friedhofskapelle ist die ursprüngliche [[w:Wolfhagen#Hospitalkapelle|Hospitalkapelle]]. Sie ist ein einschiffiges, hochgotisches Gebäude aus Sandsteinquadern.}}
* {{vCard | type = castle| name=Burg Wolfhagen| wikidata=Q1014646| lat =51.3227|long =9.165|description =Im Jahre 1513 wurde ein Neubau der Burg erstellt. Ende des 16. Jahrhunderts war sie verfallen, Anfang des 17. Jahrhunderts wurde sie abgerissen. Erhalten geblieben sind lediglich Reste.}}
* {{vCard | type = castle| name=Burgruine Helfenberg| wikidata=Q1015331| lat =51.329722|long =9.209167| description =Die Überreste der Burg befinden sich rund 2,5 km östlich der Kernstadt.}}
* {{marker| type = tower | name = Chattenturm | lat = 51.32766 | long = 9.17167 }} Als Rest der Stadtbefestigung kann der Wehrturm bestiegen werden. Der Schlüssel ist in der Tourist-Information im Rathaus erhältlich.
* Der frei zugängliche {{marker | type = tower | name = Ofenberg-Turm |wikidata=Q1800311 |lat = 51.32749 | long = 9.18990 }} liegt etwa 1,5 km östlich der Stadtmitte. Schöne kleine Wanderung von der Stadtmitte: Hier zu am besten via Mittelstraße und Treppenanlage "Am Hospitalgarten" die Altstadt nach Osten verlassen. Von hier an der Brücke der Karlstraße die Umgehungsstraße queren. Am Ende der Karlstraße in eine Links-Rechts-Kombination in die Ofenbergstraße wechseln. Vom Ende der Ofenbergstraße gibt es Wanderpfade durch den Wald zum Turm hoch. Strecke ab Marktplatz etwa 5 km Retour mit rund 150 Höhenmetern.
* Der {{marker | type = park | name = Stadtpark | name-map = Kattenturm | lat = 51.32477 | long = 9.16522 }} liegt westlich der Altstadt in einem kleinen Tal. Der Park ist nicht spektakulär. Wer aber einen kleinen, altstadtnahen Spaziergang unternehmen möchte, für den ist der Park mit Teich und Spielplatz ein nettes Ziel.
* {{vCard | name = Regionalmuseum Wolfhager Land | type = museum | url = http://www.regionalmuseum-wolfhagen.de | address = Ritterstr. 1 | lat = 51.32297 | long = 9.16540 | phone = +49 (0)5692 992431 | email = info@museum-wolfhagen.de | hours = Di bis Do 10-13 und 14-17 Uhr, Fr 10-13 Uhr, Sa und So 14-17 Uhr | price = Erwachsene: 3 €, Familienkarte: 6 € | lastedit = 2026-04-16 | description = Das Museum in der alten Burg informiert über die Geschichte der Stadt und Region.
}}
* {{vCard | type = museum | name = Museum für Film- und Videotechnik | url = http://www.filmmuseum-wolfhagen.de | address = Triangelstraße 19 | lat = 51.32669 | long = 9.17041 | phone = +49(0)5692 994956 | hours = Sonntags von 11-12:30 Uhr, Gruppenbesuche mit Führung nach Vereinbarung | price = Eintritt frei, Spende erwünscht | lastedit = 2017-11-04 | description = Das Museum beschäftigt sich mit filmtechnischen Gerätschaften bis zum 35-mm Format. Die Ausstellung ist noch im Aufbau.}}
* {{vCard | type = rock | name = Felsgruppe Rauensteine | lat = 51.2895 | long = 9.1666 | lastedit = 2018-06-26 | description = Die nicht spektakuläre, aber sehenswerte Felsgruppe findet sich etwa 5 km südlich der Kernstadt zwischen den Ortsteilen Ippinghausen und Bründersen. Die Sandsteine liegen in einem Waldgebiet und sind 4 bis 5 m hoch. Das Naturdenkmal ist von beiden Dörfern über den Wanderweg "Wolfsfährte" erreichbar (Markierung Wolfssysmbol auf kleinen Metallschildern, [https://www.openstreetmap.org/relation/3764717#map=13/51.2904/9.1690 Streckenverlauf auf Openstreetmap]). }}
* {{vCard | type = cave | name = Felskeller "Drachenhöhle" | lat = 51.3073546 | long = 9.1715908 | lastedit = 2018-06-26 | description = Der künstlich angelegte Felsenkeller findet sich am Graner Berg. Für eine Expedition in die Keller benötigt man eine Lichtquelle. Die Drachenhöhle ist direkt nur zu Fuß über Pfade zugänglich und kann bis zum Graner Berg gut per Fahrrad angefahren werden. Mit Stand 2014 ist die vor allem für Familien mit größeren Kindern interessante Sehenswürdigkeit nicht ausgeschildert. }}
== Aktivitäten ==
* '''Wandern''' - Die grüne Landschaft rund am Wolfhagen lädt zu vielfältigen Wanderungen ein, wie zum Beispiel auf [[Habichtswaldsteig]] und [[Eco Pfad Kulturgeschichte Wolfhagen]]. Ein schönes Wanderrevier sind z. B. die Wälder rund um das obere Elbetal bei Ippinghausen. Es gibt hier ab dem Wanderparkplatz unterhalb der Weidelsburg ausgeschilderte Rundwanderwege. Höhepunkt einer Wanderung kann hier der Besuch der [[Weidelsburg]] sein. Im Elbetal kann man schön in der Hasenmühle einkehren.
* '''Radwandern''' - Rund um Wolfhagen gibt es landschaftliche schöne Routen zum Radwandern. Die Touren sind meist bergig und die Strecken öfter geschottert. Die Schilder für das flächige Radwegweisungsnetz sollen bis Ende 2018 aufgestellt werden. Wer möchte kann z. B. über den Hessischen Radfernweg R 4 in das 10 km südlich liegende Fachwerkstädtchen [[Naumburg (Hessen)]] radeln (z. T. Schotterwege). Überregionale Radwanderkarte siehe Abschnitt [[#Literatur|Literatur]]
* {{marker|type=swimming|name=Erlebnis-Freibad|lat=51.3245|long=9.1827}} - das zwischen Mai und August geöffnete Bad besitzt eine 36 m lange Wasserrutsche. Lage: Nördlich der Umgehungsstraße in der Sudetenstraße.
* '''Rundflüge''' - können über die [http://www.edgw.de/ Luftsportvereinigung Wolfhagen e. V.] individuell erfragt/ gebucht werden. Der kleine Flugplatz liegt landschaftlich sehr schön auf dem [[w:Graner Berg|Graner Berg]] etwa 2 km südlich der Stadt.
* {{vCard | name = Cinema Wolfhagen | type = cinema | url = https://kino-wolfhagen.de | address = Schützebergerstr. 37, 34466 Wolfhagen | lat = 51.32582 | long = 9.16842 | phone = 05692 995099 | description = Das Kino liegt in einem der ältesten Häuser der Stadt. Es gibt immer aktuelle Filme, auch in neuester 3D-Technik. Ferner werden besondere Aktionen wie "Café und Kino", "Kulinarisches Kino" und "Der besondere Film" (Programmkino) angeboten. Preise sind fair, Personal ist freundlich, Aktionen und Kino sind gut besucht. Reservierungen und Kartenkauf können über das Onlinesystem vorgenommen werden.
}}
* {{vCard | name = Waldbühne Niederelsungen | type = theater | url = http://www.waldbuehne.niederelsungen.de | lat = 51.38328 | long = 9.18952 | description = Etwa 8 km außerhalb liegt im Ortsteil Niederelsungen die Waldbühne. Alle zwei Jahre wird in der Freiluftbühne im Sommer Theater gespielt. Die Preise sind moderat und es ist oft gar nicht einfach eins der 1300 Ticket zu bekommen.
}}
=== Feste ===
* {{vCard|name=Vieh- und Krammarkt |wikidata=|type=festival |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Das traditionsreiche und größte Fest der Stadt findet alljährlich im Juli auf der Liemecke statt und besteht aus Viehschau und Vergnügungspark.}}
* {{vCard|name=Kulturzelt Wolfhagen |wikidata=|type=festival |address=|phone=|email=|url=http://www.kulturzelt.de |hours=|price=|lat=|long=|lastedit=|description=Das große Kleinkunstfestival im Juni im Stadtpark Teichwiesen wartet auch mit bekannten Namen auf und findet mittlerweile auch überregional Beachtung.}}
== Einkaufen ==
* '''Lebensmitteleinkauf:''' Zwei Lebensmittelmärkte finden sich bei {{Marker | name = zwei Lebensmittelmärkte | type= shop | lat = 51.329824 | long = 9.173756| show =noname }} an der Schützeberger Straße.
== Küche ==
* {{vCard|type=restaurant|name=Zum Chattenturm|wikidata= Q57021087| lastedit = 2018-01-01 |description=}}
* {{vCard|type=restaurant|name=„Zum Schiffchen“|address=Hans-Staden-Straße 27|phone=+49 05692 9875-0|email=besucher@hotel-zum-schiffchen.de|fax=+49 05692 9875-11|url=https://www.hotel-zum-schiffchen.de/|hours=Mo.-Sa.: 17-24 Uhr; So.: 11-15 Uhr; jeden 2. Sonntagabend: 17-23 Uhr; Feiertage: 11-15 Uhr und 17-23 Uhr; Küche: 11:30-14 Uhr und 17:30-22 Uhr|price=|lat=51.32279|long=9.16664}}
* {{vCard|type=restaurant|name=Gasthaus Hotel Pfeifferling|address=Waldecker Straße 7|phone=+49 05692 5980|email=info@gasthaus-pfeifferling.de|fax=+49 05692 8111|url=https://www.gasthaus-pfeifferling.de/|hours=|price=|lat=51.28106|long=9.14285}}
* {{vCard|name=Konditorei Oliev |wikidata=|type=pastry shop |address=Schützeberger Str. 49 |phone=+49 05692 993971 |email=|url=|hours=|price=|lat=51.32660 |long=9.16939 |lastedit=|description=Gemütliche Kaffee-Atmosphäre drinnen und draußen in der Altstadt, freundliche Bedienung, faire Preise, vom Frühstück bis zum späten Nachmittag durchgehend geöffnet.}}
* {{vCard|name=Ristorante San Remo |wikidata=|type=restaurant |address=Schützeberger Str. 37 |phone=+49 05692 5920 |email=|url=https://www.restaurant-san-remo.eu/ |hours=|price=|lat=51.32579 |long=9.16829 |lastedit=|description=Italienische Küche in der Altstadt, wie man sie gerne isst. Ein gemütliches Lokal, im Sommer auch draußen, mit angemessenen Preisen, freundlichem Service und saisonaler Küche. Abends und am Wochenende ist Tischbestellung zu empfehlen.}}
* {{vCard | name = Eiscafe Da Peppo | type = ice cream | address = Schützeberger Str. 47 | lat = 51.32651 | long = 9.16931 | phone = +49 05692 9968484 | description = Hier erhält man im Straßenverkauf recht große Kugeln Eis zu 1,20 Cent das Stück (Frühjahr 2020).
}}
== Nachtleben ==
Die Landruhe mit klarem Sternenhimmel genießen. Sonst:
* {{vCard | type = bar | name = Mamounia Lounge/Shisha bar| facebook = MAMOUNIALOUNGEWOLFHAGEN | address = Kurfürstenstraße 47, 34466 Wolfhagen | lat = 51.3216698 | long = 9.1813215 | phone = +49 160 8980069 | hours = Mo bis Do 18:00 - 0:00 Uhr; Fr bis Sa 17:00 - 0:00 Uhr; So 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Einzige Shisha bar der Stadt, die bislang überlebt hat. Klein aber gemütlich.}}
* {{vCard | type = bar | name = Zottels Pub | url = http://www.zottels-kneipe.de/ | facebook = zottels.pub | address = Mittelstraße 22-24, 34466 Wolfhagen | lat = 51.325656 | long = 9.171556 | phone = +49 172 5704415 | hours = So bis Mo geschlossen; Di bis Sa 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Raucherbar mit langer Tradition und gewissem Ruf in Wolfhagen. Fußballspiele werden live übertragen. Es gibt einen Dartsroom mit einigen Scheiben und eigener Mannschaft. Es werden Turniere in der Kai Schumacher Dartliga abgehalten }}
* {{vCard | type = bar | name = Gaststätte zur Knackenburg| address = Burgstraße 12, 34466 Wolfhagen | lat = 51.325162 | long = 9.170854 | phone = +49 5692 2566| hours = Mo bis Mi 17 - 22 Uhr; Fr 17 - 23 Uhr; Sa 10 - 22 Uhr, Do und So geschlossen | price = | lastedit = 2020-03-30 | facebook = knacke.woh | description = Beste Kneipe in Wolfhagen, mit langer Tradition. Bringt Alt und Jung zusammen. }}
== Unterkunft ==
* Zum Unterkunftsverzeichnis der [https://wolfhagen.de/stadtplan/?jsf=jet-engine&meta=typ!is_custom_checkbox:Unterkuenfte Stadt Wolfhagen] (mit Ferienwohnungen und Unterkünften in den Stadtteilen.)
* {{vCard | type = caravan site | name = Wohnmobilstellplatz Wolfhagen | lat = 51.33014444 | long = 9.17102222 | lastedit = 2018-06-26 | description = Der Platz mit 34 Stellplätzen liegt nur wenige Meter nördlich der Altstadt in den Bruchwiesen. Stellplatzgebühren: keine; Spenden erwünscht. Zu Hauptbesuchszeiten (z. B. Ostern) kann der Platz ausgelastet sein. }}
* {{vCard | type = hotel | name = Hotel und Restaurant "Altes Rathaus" | url = https://www.altesrathauswolfhagen.de | address = Kirchplatz 1, 34466 Wolfhagen | lat = 51.3250835 | long = 9.1668356 | phone = +49 (0)5692 - 997906 | fax = +49 (0)5692 - 997908 | price = EZ ab 53,60 €, DZ ab 63,65 €, Frühstück extra für 15 € | lastedit = 2026-04-16 | description = Erst nach dem Umzug der Stadtverwaltung in die Burgstraße 33 wurde das alte Rathaus, das direkt im Stadtkern liegt, in ein Hotel und Restaurant umgebaut. }}
* {{vCard | name = Hotel und Restaurant "Zum Schiffchen" | type = hotel | url = https://www.hotel-zum-schiffchen.de/ | address = Hans-Staden-Straße 27, 34466 Wolfhagen | lat = 51.32283 | long = 9.16663 | phone = +49 (0)5692 - 98750 | fax = +49 (0)5692 - 987511 | email = besucher@hotel-zum-schiffchen.de | price = EZ ab 66,50 € €, DZ ab 95 €, Frühstück extra für 12,50 € | lastedit = 2026-04-16 | description = 11 Hotelzimmer in 2 Kategorien.
}}
* {{vCard | name = Hotel und Restaurant "Zum Chattenturm" | type = hotel | url = https://zum-chattenturm.de/ | address = Schützeberger Straße 67, Wolfhagen | lat = 51.32746 | long = 9.17105 | phone = +49 (0)5692 - 2387 | fax = +49 (0)5692 - 8503 | email = info@hotel-zum-chattenturm.de | price = EZ ab 60 €, DZ ab 80 € (Frühstück 15 €) | lastedit = 2026-04-16 | description = Die Gästezimmer befinden sich in den starken, historischen Mauern. Das sorgt für den ungestörten Schlaf der Gäste.
}}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zur Stadt Wolfhagen" | address = Mittelstraße 9, 34466 Wolfhagen | lat = 51.3254633 | long = 9.1667513 | phone = +49 (0)5692 - 993064 | fax = +49 (0)5692 - 993111 | price = ab 34 € | lastedit = 2019-03-01 | mobile = +49 (0)176 32822214 | description = Hotel, Restaurant und Cafe }}
== Sicherheit ==
Wolfhagen ist eine sichere Stadt. Besondere Verhaltensregeln über die üblichen Vorsichtsmaßnahmen hinaus, wie Fahrrad abschließen usw., sind nicht notwendig.
== Gesundheit ==
* {{vCard|name=Kreiskliniken Kassel - Standort Wolfhagen|type=hospital|lat=51.32015|long=9.19085|lastedit=2022-03-28|description=Das Krankenhaus wurde von Gesundheit Nordhessen durch den Landkreis Kassel übernommen. Weiterer Standort ist Hofgeismar.}}
== Praktische Hinweise ==
* {{vCard | name = Stadt- und Tourist-Information | type = tourist information | url = https://wolfhagen.de/tourismus/ | address = Burgstraße 33-35, 34466 Wolfhagen | lat = 51.32442 | long = 9.16848 | phone = +49 (0)5692 602102 | fax = +49 (0)5692 602190 | email = tourist-info@wolfhagen.de
}}
* {{vCard | name = öffentliche Toilette am Rathaus | type = toilet | lat = 51.32421 | long = 9.16822 | lastedit = 2018-06-26 | description = Eine frei zugängliche, öffentliche Toilettenanlage befindet sich am Rathaus oberhalb des Marktplatzes.
}}
== Ausflüge ==
=== Bis 10 km Entfernung ===
* {{vCard | type = castle| name=Weidelsburg|wikidata=Q1621311|lat =51.272917| long =9.144319| description = Die große Burgruine mit sehr schöner Aussicht liegt etwa 5 km südlich von Wolfhagen oberhalb des Stadtteils Ippinghausen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Festberg|lat =51.335032 |long = 9.217336 | description =Bergrücken mit Kalkmagerrasen und schönem Landschaftsblick zwischen Philippinenthal und Altenhasungen. Zwei Bänke laden zum Entspannen ein. Die Erhebung liegt etwa 4 km nordöstlich von Wolfhagen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Glockenborn|lat =51.305722 |long = 9.18775 | description =Künstlich angelegtes Feuchtgebiet mit zwei Seen, kleineren Stillgewässern und Extensivgrünland. Insgesamt drei Aussichtspunkte mit guter Beobachtungsposition für seltene Vogel- und Amphibienartenn. Das Gebiet liegt etwa 3 km südöstlich der Innenstadt}}
=== Bis 30 km Entfernung ===
* an den '''[[Edersee]]''' (etwa 25 km südlich)
* nach [[Fritzlar]] (etwa 25 km südlich)
* nach [[Bad Arolsen]] (etwa 15 km nordwestlich)
* nach [[Warburg]] (etwa 20 km nördlich)
* nach Kassel in den '''[[Bergpark Wilhelmshöhe]]''' (etwa 25 km östlich)
* [[Eco Pfad Kulturgeschichte Wolfhagen]]
{{Panorama|bild=Weidelsberg_pano_nordostblick_ds_08_2009.jpg|unterschrift='''Nordostblick von der [[Weidelsburg]]:''' Links vorne im Panorama ist Ippinghausen zu erkennen. Schräg rechts darüber sieht man [[Wolfhagen]]. Am Horizont in der Bildmitte ist der [[Großer Bärenberg|Große Bärenberg]] mit Funk- und Aussichtsturm sehen. Weiter rechts oberhalb der Windkraftanlagen liegt der [[Habichtswald (Gebirge)|Habichtswald]]|breite=1400px}}
== Literatur ==
'''Radwanderkarte:'''
* '''ADFC Regionalkarte "Kassel / Nordhessen"''' - Maßstab 1: 75.000; {{ISBN|978-3870736392}}; Preis: 8,95 €. Die spezielle Radwanderkarte mit detaillierter Routendarstellung auf reißfestem und wasserabweisendem Papier bildet Nordhessen hinsichtlich Oberflächenbeschaffenheit, Verkehrsbelastung und Tourenvorschlägen fast vollständig ab. Ab Wolfhagen auch für größere Touren z. B. zum Edersee, nach Fritzlar, Warburg usw. nutzbar.
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.31667| long= 9.16667| radius= }}
{{IstInKat|Naturpark Habichtswald}}
00tzewil98e9oc1xid7dkb9d9yzsrji
1769059
1769058
2026-04-16T19:54:00Z
Dirk Schmidt
15181
/* Unterkunft */
1769059
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Wolfhagen''' ist eine Kleinstadt in [[Nordhessen]] etwa 30 km westlich von Kassel gelegen.
Das "Wolfhager Land" liegt landschaftlich schön im [[Naturpark Habichtswald]]. Besonders einen Besuch wert ist die [[Weidelsburg]] oberhalb des Stadtteils Ippinghausen.
== Hintergrund ==
{{Mapframe|51.32809|9.16843|zoom=14|type=geoline}}
Die Stadt wurde 1231 unter Landgraf [[w:Konrad von Thüringen|Konrad von Thüringen]] gegründet.
1264 erhielt Wolfhagen das Stadtrecht. 1302 konnte die Stadtbefestigung fertiggestellt werden.
Im Dreißigjährigen Krieg wurde die Stadt fast vollständig dem Erdboden gleich gemacht.
=== Stadtgliederung ===
Neben der Kernstadt besteht Wolfhagen (mit dem Weiler Elmarshausen) aus elf weiteren Ortsteilen, die sich jeweils als Dorf rund um die Kernstadt erstrecken:
{{3 Spalten|
;{{Marker | type = quarter | name =Altenhasungen|wikidata=Q437180| styles = normal }}
;{{Marker | type = quarter | name =Bründersen|wikidata=Q997012| styles = normal }}
;{{Marker | type = quarter | name =Gasterfeld|wikidata=Q1495410| styles = normal }}
;{{Marker | type = quarter | name =Ippinghausen|wikidata=Q1672275| styles = normal }}
;{{Marker | type = quarter | name =Istha|wikidata=Q1674843| styles = normal }}
;{{Marker | type = quarter | name =Leckringhausen|wikidata=Q1811416| styles = normal }}
;{{Marker | type = quarter | name =Niederelsungen|wikidata=Q1987742| styles = normal }}
;{{Marker | type = quarter | name =Nothfelden|wikidata=Q1688879| styles = normal }}
;{{Marker | type = quarter | name =Philippinenburg und -thal|wikidata=Q1543020| styles = normal }}
;{{Marker | type = quarter | name =Viesebeck|wikidata=Q2523788| styles = normal }}
;{{Marker | type = quarter | name =Wenigenhasungen|wikidata=Q2559437| styles = normal }}.
}}
=== Nachbargemeinden ===
Wolfhagen grenzt im Nordwesten an {{Marker| type = town| name = Volkmarsen|wikidata=Q533535|styles = normal }},
im Norden an {{Marker | type = town| name = Breuna |wikidata=Q503830| styles = normal }},
im Osten an {{Marker | type = town| name = Zierenberg|wikidata=Q199094| styles = normal }} und {{Marker | type = town| name = Habichtswald|wikidata=Q624629| styles = normal }},
im Südosten an {{Marker | type = town| name = Schauenburg|wikidata=Q175419| styles = normal }},
im Süden an {{Marker | type = town| name = Bad Emstal |wikidata=Q291091| styles = normal }} und {{Marker | type = town| name = Naumburg|wikidata=Q641014| styles = normal }},
im Südwesten an {{Marker | type = town| name = Waldeck|wikidata=Q540107| styles = normal }},
sowie im Westen an {{Marker | type = town| name = Bad Arolsen |wikidata=Q498078| styles = normal }}.
== Anreise ==
=== Mit dem Flugzeug ===
* Der nächste Flughafen ist der {{marker|type = airport|name = Flughafen Kassel-Calden |wikidata = Q529143}} etwa 26 km nordwestlich von Wolfhagen, danach folgt der {{marker|type = airport|name = Flughafen Paderborn Lippstadt|wikidata = Q685536}}, der ca. 55 km nordwestlich liegt (gut über die Autobahn A 44 zu erreichen). Die meisten Flugoptionen hat man allerdings vom {{marker|type = airport|name = Flughafen Frankfurt am Main |wikidata = Q46033}}, welcher etwa 220 km entfernt ist.
=== Mit der Bahn ===
* {{vCard | type = train | name = Bahnhof Wolfhagen | wikidata = Q55637849 | description = Wolfhagen liegt an der [[Kurhessenbahn]] [[Korbach]] - [[Kassel]]. Mit dem Regionalexpress bestehen direkte Verbindungen zum ICE in Kassel-Wilhelmshöhe. Des weiteren kann man mit der Regiotram direkt bis ins Stadtzentrum von Kassel fahren.
}}
=== Auf der Straße ===
* Die Autobahn {{RSIGN|DE|A |44}} Kassel - Dortmund an der Anschlussstellen Zierenberg (aus Richtung Kassel) bzw. Breuna (aus Richtung Dortmund) verlassen.
* Die [[Deutsche Fachwerkstraße]] führt durch den Ort.
=== Mit dem Fahrrad ===
[[File:Wolfhagen stadtblick von Sueden vom radfernweg r 4.jpg|thumb|Am hess. Radfernweg R 4: Blick von Süden auf Wolfhagen]]
* Die Stadt liegt am '''[[Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen|Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen]]''' der die Stadt in Nord-Süd Richtung für den Radurlauber erschließt. Im Bereich von Zierenberg über Wolfhagen nach Naumburg ist die Strecke allerdings recht bergig und verläuft zun großen Teilen auf Landstraßen, die zum Teil schnell und auch stärker befahren sind. Die verkehrsfreien Strecken sind öfter geschottert.
*Gut zu wissen: Wer auf der Durchreise per Rad auf dem R 4 ist und seinen Pedelec-Akku während einer Pause laden möchte, findet am Rathaus einem Fahrradständer mit frei zugänglichen Steckdosen.
== Mobilität ==
* {{vCard|type=taxi|name= Taxi Brandau Wolfhagen|address=|phone=+49(0)5692 997700|url=http://www.taxi-brandau-kassel.de|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard | type = parking | name = Parkhaus Mittelstraße / Schäferstraße | lat = 51.32604 | long = 9.17097 | price = frei | lastedit = 2018-06-26 | description = Parkhaus in der Altstadt mit zwei Ebenen, die von verschiedenen Seiten angefahren werden. }}
* {{vCard | type = parking | name = Tiefgarage Rathaus | lat = 51.324124| long = 9.168018 | price = frei | lastedit = 2020-03-29 | description = Parkhaus in der Altstadt, unterhalb des neuen Rathaus. Die Tiefgarage verfügt über eine Ebene und kann nur von der kleinen Straße zwischen Landgrafen und Burgstraße aus angefahren werden. }}
* {{vCard | type = parking | name = Parkaus Torstraße/Wilhelmsstraße | lat = 51.327147| long = 9.172285 | price = frei | lastedit = 2020-03-29 | description = Parkhaus unterhalb der Altstadt, nahe der Sparkasse. Das Parkhaus verfügt über mehrere Ebenen und kann von Wilhelms- und Torstraße aus angefahren werden. Das Gebäude ist als Drogentreffpunkt der Stadt bekannt. }}
== Sehenswürdigkeiten ==
[[Bild:wolfhagen_von_sueden_ds_wv_07_2009.jpg|thumb|Wolfhagen - Blick auf die Altstadt von Süden]]
Wolfhagen besitzt eine sehenswerte '''Altstadt mit Fachwerkbauten'''. Kleinere Reste der Stadtmauer sind ebenfalls noch vorhanden.
* Der {{marker| type = square | name = Marktplatz | lat = 51.32489 | long = 9.16846 }} ist ein gemütlicher Stadtraum mit Café und der Stadtkirche. Prächtigstes Haus am Platz ist der Fachwerkbau des „Alten Rathauses”. Das Haus beherbergt heute ein Hotel mit Restaurant. Auf dem Platz befindet sich ferner der Märchenbrunnen, der eine Szene aus dem Märchen "Der Wolf und die sieben Geislein" zeigt.
* {{vCard | type = church | name = Stadtkirche Wolfhagen | url = http://www.stadtkirche-wolfhagen.de | wikidata = Q83797087 | hours = Sommer 8-18 Uhr, Winter 9-17 Uhr | description = Die weithin sichtbare evangelische Kirche steht am Marktplatz. Bei der Stadtgründung im Jahr 1231 wurde mit dem Bau der Kirche als gotische Hallenkirche begonnen. Das Gebäude ist allerdings nicht rein gotisch. Im Laufe der baulichen Veränderungen haben verschiedene Stile das Gebäude geprägt. Sehenswert sind unter anderem die Chorfenster aus dem Jahr 1691, die Glasfenster von Hans-Gottfried von Stockhausen sowie das Westportal am Turm.}}
* {{vCard | type = church | name =St. Maria|lat =51.325212 |long =9.176246 |url=https://www.katholische-kirche-wolfhagen.de/ |description=Die katholische Kirche wurde 1966 erbaut und ersetzte die Notkirche am Koppenberg, die nach dem Zweiten Weltkrieg errichtet wurde. }}
* {{vCard | type = church | name =Friedhofskapelle|lat =51.325593 |long =9.173586 |description=Die heutige Friedhofskapelle ist die ursprüngliche [[w:Wolfhagen#Hospitalkapelle|Hospitalkapelle]]. Sie ist ein einschiffiges, hochgotisches Gebäude aus Sandsteinquadern.}}
* {{vCard | type = castle| name=Burg Wolfhagen| wikidata=Q1014646| lat =51.3227|long =9.165|description =Im Jahre 1513 wurde ein Neubau der Burg erstellt. Ende des 16. Jahrhunderts war sie verfallen, Anfang des 17. Jahrhunderts wurde sie abgerissen. Erhalten geblieben sind lediglich Reste.}}
* {{vCard | type = castle| name=Burgruine Helfenberg| wikidata=Q1015331| lat =51.329722|long =9.209167| description =Die Überreste der Burg befinden sich rund 2,5 km östlich der Kernstadt.}}
* {{marker| type = tower | name = Chattenturm | lat = 51.32766 | long = 9.17167 }} Als Rest der Stadtbefestigung kann der Wehrturm bestiegen werden. Der Schlüssel ist in der Tourist-Information im Rathaus erhältlich.
* Der frei zugängliche {{marker | type = tower | name = Ofenberg-Turm |wikidata=Q1800311 |lat = 51.32749 | long = 9.18990 }} liegt etwa 1,5 km östlich der Stadtmitte. Schöne kleine Wanderung von der Stadtmitte: Hier zu am besten via Mittelstraße und Treppenanlage "Am Hospitalgarten" die Altstadt nach Osten verlassen. Von hier an der Brücke der Karlstraße die Umgehungsstraße queren. Am Ende der Karlstraße in eine Links-Rechts-Kombination in die Ofenbergstraße wechseln. Vom Ende der Ofenbergstraße gibt es Wanderpfade durch den Wald zum Turm hoch. Strecke ab Marktplatz etwa 5 km Retour mit rund 150 Höhenmetern.
* Der {{marker | type = park | name = Stadtpark | name-map = Kattenturm | lat = 51.32477 | long = 9.16522 }} liegt westlich der Altstadt in einem kleinen Tal. Der Park ist nicht spektakulär. Wer aber einen kleinen, altstadtnahen Spaziergang unternehmen möchte, für den ist der Park mit Teich und Spielplatz ein nettes Ziel.
* {{vCard | name = Regionalmuseum Wolfhager Land | type = museum | url = http://www.regionalmuseum-wolfhagen.de | address = Ritterstr. 1 | lat = 51.32297 | long = 9.16540 | phone = +49 (0)5692 992431 | email = info@museum-wolfhagen.de | hours = Di bis Do 10-13 und 14-17 Uhr, Fr 10-13 Uhr, Sa und So 14-17 Uhr | price = Erwachsene: 3 €, Familienkarte: 6 € | lastedit = 2026-04-16 | description = Das Museum in der alten Burg informiert über die Geschichte der Stadt und Region.
}}
* {{vCard | type = museum | name = Museum für Film- und Videotechnik | url = http://www.filmmuseum-wolfhagen.de | address = Triangelstraße 19 | lat = 51.32669 | long = 9.17041 | phone = +49(0)5692 994956 | hours = Sonntags von 11-12:30 Uhr, Gruppenbesuche mit Führung nach Vereinbarung | price = Eintritt frei, Spende erwünscht | lastedit = 2017-11-04 | description = Das Museum beschäftigt sich mit filmtechnischen Gerätschaften bis zum 35-mm Format. Die Ausstellung ist noch im Aufbau.}}
* {{vCard | type = rock | name = Felsgruppe Rauensteine | lat = 51.2895 | long = 9.1666 | lastedit = 2018-06-26 | description = Die nicht spektakuläre, aber sehenswerte Felsgruppe findet sich etwa 5 km südlich der Kernstadt zwischen den Ortsteilen Ippinghausen und Bründersen. Die Sandsteine liegen in einem Waldgebiet und sind 4 bis 5 m hoch. Das Naturdenkmal ist von beiden Dörfern über den Wanderweg "Wolfsfährte" erreichbar (Markierung Wolfssysmbol auf kleinen Metallschildern, [https://www.openstreetmap.org/relation/3764717#map=13/51.2904/9.1690 Streckenverlauf auf Openstreetmap]). }}
* {{vCard | type = cave | name = Felskeller "Drachenhöhle" | lat = 51.3073546 | long = 9.1715908 | lastedit = 2018-06-26 | description = Der künstlich angelegte Felsenkeller findet sich am Graner Berg. Für eine Expedition in die Keller benötigt man eine Lichtquelle. Die Drachenhöhle ist direkt nur zu Fuß über Pfade zugänglich und kann bis zum Graner Berg gut per Fahrrad angefahren werden. Mit Stand 2014 ist die vor allem für Familien mit größeren Kindern interessante Sehenswürdigkeit nicht ausgeschildert. }}
== Aktivitäten ==
* '''Wandern''' - Die grüne Landschaft rund am Wolfhagen lädt zu vielfältigen Wanderungen ein, wie zum Beispiel auf [[Habichtswaldsteig]] und [[Eco Pfad Kulturgeschichte Wolfhagen]]. Ein schönes Wanderrevier sind z. B. die Wälder rund um das obere Elbetal bei Ippinghausen. Es gibt hier ab dem Wanderparkplatz unterhalb der Weidelsburg ausgeschilderte Rundwanderwege. Höhepunkt einer Wanderung kann hier der Besuch der [[Weidelsburg]] sein. Im Elbetal kann man schön in der Hasenmühle einkehren.
* '''Radwandern''' - Rund um Wolfhagen gibt es landschaftliche schöne Routen zum Radwandern. Die Touren sind meist bergig und die Strecken öfter geschottert. Die Schilder für das flächige Radwegweisungsnetz sollen bis Ende 2018 aufgestellt werden. Wer möchte kann z. B. über den Hessischen Radfernweg R 4 in das 10 km südlich liegende Fachwerkstädtchen [[Naumburg (Hessen)]] radeln (z. T. Schotterwege). Überregionale Radwanderkarte siehe Abschnitt [[#Literatur|Literatur]]
* {{marker|type=swimming|name=Erlebnis-Freibad|lat=51.3245|long=9.1827}} - das zwischen Mai und August geöffnete Bad besitzt eine 36 m lange Wasserrutsche. Lage: Nördlich der Umgehungsstraße in der Sudetenstraße.
* '''Rundflüge''' - können über die [http://www.edgw.de/ Luftsportvereinigung Wolfhagen e. V.] individuell erfragt/ gebucht werden. Der kleine Flugplatz liegt landschaftlich sehr schön auf dem [[w:Graner Berg|Graner Berg]] etwa 2 km südlich der Stadt.
* {{vCard | name = Cinema Wolfhagen | type = cinema | url = https://kino-wolfhagen.de | address = Schützebergerstr. 37, 34466 Wolfhagen | lat = 51.32582 | long = 9.16842 | phone = 05692 995099 | description = Das Kino liegt in einem der ältesten Häuser der Stadt. Es gibt immer aktuelle Filme, auch in neuester 3D-Technik. Ferner werden besondere Aktionen wie "Café und Kino", "Kulinarisches Kino" und "Der besondere Film" (Programmkino) angeboten. Preise sind fair, Personal ist freundlich, Aktionen und Kino sind gut besucht. Reservierungen und Kartenkauf können über das Onlinesystem vorgenommen werden.
}}
* {{vCard | name = Waldbühne Niederelsungen | type = theater | url = http://www.waldbuehne.niederelsungen.de | lat = 51.38328 | long = 9.18952 | description = Etwa 8 km außerhalb liegt im Ortsteil Niederelsungen die Waldbühne. Alle zwei Jahre wird in der Freiluftbühne im Sommer Theater gespielt. Die Preise sind moderat und es ist oft gar nicht einfach eins der 1300 Ticket zu bekommen.
}}
=== Feste ===
* {{vCard|name=Vieh- und Krammarkt |wikidata=|type=festival |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Das traditionsreiche und größte Fest der Stadt findet alljährlich im Juli auf der Liemecke statt und besteht aus Viehschau und Vergnügungspark.}}
* {{vCard|name=Kulturzelt Wolfhagen |wikidata=|type=festival |address=|phone=|email=|url=http://www.kulturzelt.de |hours=|price=|lat=|long=|lastedit=|description=Das große Kleinkunstfestival im Juni im Stadtpark Teichwiesen wartet auch mit bekannten Namen auf und findet mittlerweile auch überregional Beachtung.}}
== Einkaufen ==
* '''Lebensmitteleinkauf:''' Zwei Lebensmittelmärkte finden sich bei {{Marker | name = zwei Lebensmittelmärkte | type= shop | lat = 51.329824 | long = 9.173756| show =noname }} an der Schützeberger Straße.
== Küche ==
* {{vCard|type=restaurant|name=Zum Chattenturm|wikidata= Q57021087| lastedit = 2018-01-01 |description=}}
* {{vCard|type=restaurant|name=„Zum Schiffchen“|address=Hans-Staden-Straße 27|phone=+49 05692 9875-0|email=besucher@hotel-zum-schiffchen.de|fax=+49 05692 9875-11|url=https://www.hotel-zum-schiffchen.de/|hours=Mo.-Sa.: 17-24 Uhr; So.: 11-15 Uhr; jeden 2. Sonntagabend: 17-23 Uhr; Feiertage: 11-15 Uhr und 17-23 Uhr; Küche: 11:30-14 Uhr und 17:30-22 Uhr|price=|lat=51.32279|long=9.16664}}
* {{vCard|type=restaurant|name=Gasthaus Hotel Pfeifferling|address=Waldecker Straße 7|phone=+49 05692 5980|email=info@gasthaus-pfeifferling.de|fax=+49 05692 8111|url=https://www.gasthaus-pfeifferling.de/|hours=|price=|lat=51.28106|long=9.14285}}
* {{vCard|name=Konditorei Oliev |wikidata=|type=pastry shop |address=Schützeberger Str. 49 |phone=+49 05692 993971 |email=|url=|hours=|price=|lat=51.32660 |long=9.16939 |lastedit=|description=Gemütliche Kaffee-Atmosphäre drinnen und draußen in der Altstadt, freundliche Bedienung, faire Preise, vom Frühstück bis zum späten Nachmittag durchgehend geöffnet.}}
* {{vCard|name=Ristorante San Remo |wikidata=|type=restaurant |address=Schützeberger Str. 37 |phone=+49 05692 5920 |email=|url=https://www.restaurant-san-remo.eu/ |hours=|price=|lat=51.32579 |long=9.16829 |lastedit=|description=Italienische Küche in der Altstadt, wie man sie gerne isst. Ein gemütliches Lokal, im Sommer auch draußen, mit angemessenen Preisen, freundlichem Service und saisonaler Küche. Abends und am Wochenende ist Tischbestellung zu empfehlen.}}
* {{vCard | name = Eiscafe Da Peppo | type = ice cream | address = Schützeberger Str. 47 | lat = 51.32651 | long = 9.16931 | phone = +49 05692 9968484 | description = Hier erhält man im Straßenverkauf recht große Kugeln Eis zu 1,20 Cent das Stück (Frühjahr 2020).
}}
== Nachtleben ==
Die Landruhe mit klarem Sternenhimmel genießen. Sonst:
* {{vCard | type = bar | name = Mamounia Lounge/Shisha bar| facebook = MAMOUNIALOUNGEWOLFHAGEN | address = Kurfürstenstraße 47, 34466 Wolfhagen | lat = 51.3216698 | long = 9.1813215 | phone = +49 160 8980069 | hours = Mo bis Do 18:00 - 0:00 Uhr; Fr bis Sa 17:00 - 0:00 Uhr; So 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Einzige Shisha bar der Stadt, die bislang überlebt hat. Klein aber gemütlich.}}
* {{vCard | type = bar | name = Zottels Pub | url = http://www.zottels-kneipe.de/ | facebook = zottels.pub | address = Mittelstraße 22-24, 34466 Wolfhagen | lat = 51.325656 | long = 9.171556 | phone = +49 172 5704415 | hours = So bis Mo geschlossen; Di bis Sa 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Raucherbar mit langer Tradition und gewissem Ruf in Wolfhagen. Fußballspiele werden live übertragen. Es gibt einen Dartsroom mit einigen Scheiben und eigener Mannschaft. Es werden Turniere in der Kai Schumacher Dartliga abgehalten }}
* {{vCard | type = bar | name = Gaststätte zur Knackenburg| address = Burgstraße 12, 34466 Wolfhagen | lat = 51.325162 | long = 9.170854 | phone = +49 5692 2566| hours = Mo bis Mi 17 - 22 Uhr; Fr 17 - 23 Uhr; Sa 10 - 22 Uhr, Do und So geschlossen | price = | lastedit = 2020-03-30 | facebook = knacke.woh | description = Beste Kneipe in Wolfhagen, mit langer Tradition. Bringt Alt und Jung zusammen. }}
== Unterkunft ==
* Zum Unterkunftsverzeichnis der [https://wolfhagen.de/stadtplan/?jsf=jet-engine&meta=typ!is_custom_checkbox:Unterkuenfte Stadt Wolfhagen] (mit Ferienwohnungen und Unterkünften in den Stadtteilen.)
=== Camping ===
* {{vCard | type = caravan site | name = Wohnmobilstellplatz Wolfhagen | lat = 51.33014444 | long = 9.17102222 | lastedit = 2018-06-26 | description = Der Platz mit 34 Stellplätzen liegt nur wenige Meter nördlich der Altstadt in den Bruchwiesen. Stellplatzgebühren: keine; Spenden erwünscht. Zu Hauptbesuchszeiten (z. B. Ostern) kann der Platz ausgelastet sein. }}
* Der nächste Campingplatz für Zelter findet sich in [[Naumburg (Hessen)#Camping|Naumburg (Hessen)]], etwa 10 km südlich von Wolfhagen.
=== Hotels ===
* {{vCard | type = hotel | name = Hotel und Restaurant "Altes Rathaus" | url = https://www.altesrathauswolfhagen.de | address = Kirchplatz 1, 34466 Wolfhagen | lat = 51.3250835 | long = 9.1668356 | phone = +49 (0)5692 - 997906 | fax = +49 (0)5692 - 997908 | price = EZ ab 53,60 €, DZ ab 63,65 €, Frühstück extra für 15 € | lastedit = 2026-04-16 | description = Erst nach dem Umzug der Stadtverwaltung in die Burgstraße 33 wurde das alte Rathaus, das direkt im Stadtkern liegt, in ein Hotel und Restaurant umgebaut. }}
* {{vCard | name = Hotel und Restaurant "Zum Schiffchen" | type = hotel | url = https://www.hotel-zum-schiffchen.de/ | address = Hans-Staden-Straße 27, 34466 Wolfhagen | lat = 51.32283 | long = 9.16663 | phone = +49 (0)5692 - 98750 | fax = +49 (0)5692 - 987511 | email = besucher@hotel-zum-schiffchen.de | price = EZ ab 66,50 € €, DZ ab 95 €, Frühstück extra für 12,50 € | lastedit = 2026-04-16 | description = 11 Hotelzimmer in 2 Kategorien.
}}
* {{vCard | name = Hotel und Restaurant "Zum Chattenturm" | type = hotel | url = https://zum-chattenturm.de/ | address = Schützeberger Straße 67, Wolfhagen | lat = 51.32746 | long = 9.17105 | phone = +49 (0)5692 - 2387 | fax = +49 (0)5692 - 8503 | email = info@hotel-zum-chattenturm.de | price = EZ ab 60 €, DZ ab 80 € (Frühstück 15 €) | lastedit = 2026-04-16 | description = Die Gästezimmer befinden sich in den starken, historischen Mauern. Das sorgt für den ungestörten Schlaf der Gäste.
}}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zur Stadt Wolfhagen" | address = Mittelstraße 9, 34466 Wolfhagen | lat = 51.3254633 | long = 9.1667513 | phone = +49 (0)5692 - 993064 | fax = +49 (0)5692 - 993111 | price = ab 34 € | lastedit = 2019-03-01 | mobile = +49 (0)176 32822214 | description = Hotel, Restaurant und Cafe }}
== Sicherheit ==
Wolfhagen ist eine sichere Stadt. Besondere Verhaltensregeln über die üblichen Vorsichtsmaßnahmen hinaus, wie Fahrrad abschließen usw., sind nicht notwendig.
== Gesundheit ==
* {{vCard|name=Kreiskliniken Kassel - Standort Wolfhagen|type=hospital|lat=51.32015|long=9.19085|lastedit=2022-03-28|description=Das Krankenhaus wurde von Gesundheit Nordhessen durch den Landkreis Kassel übernommen. Weiterer Standort ist Hofgeismar.}}
== Praktische Hinweise ==
* {{vCard | name = Stadt- und Tourist-Information | type = tourist information | url = https://wolfhagen.de/tourismus/ | address = Burgstraße 33-35, 34466 Wolfhagen | lat = 51.32442 | long = 9.16848 | phone = +49 (0)5692 602102 | fax = +49 (0)5692 602190 | email = tourist-info@wolfhagen.de
}}
* {{vCard | name = öffentliche Toilette am Rathaus | type = toilet | lat = 51.32421 | long = 9.16822 | lastedit = 2018-06-26 | description = Eine frei zugängliche, öffentliche Toilettenanlage befindet sich am Rathaus oberhalb des Marktplatzes.
}}
== Ausflüge ==
=== Bis 10 km Entfernung ===
* {{vCard | type = castle| name=Weidelsburg|wikidata=Q1621311|lat =51.272917| long =9.144319| description = Die große Burgruine mit sehr schöner Aussicht liegt etwa 5 km südlich von Wolfhagen oberhalb des Stadtteils Ippinghausen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Festberg|lat =51.335032 |long = 9.217336 | description =Bergrücken mit Kalkmagerrasen und schönem Landschaftsblick zwischen Philippinenthal und Altenhasungen. Zwei Bänke laden zum Entspannen ein. Die Erhebung liegt etwa 4 km nordöstlich von Wolfhagen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Glockenborn|lat =51.305722 |long = 9.18775 | description =Künstlich angelegtes Feuchtgebiet mit zwei Seen, kleineren Stillgewässern und Extensivgrünland. Insgesamt drei Aussichtspunkte mit guter Beobachtungsposition für seltene Vogel- und Amphibienartenn. Das Gebiet liegt etwa 3 km südöstlich der Innenstadt}}
=== Bis 30 km Entfernung ===
* an den '''[[Edersee]]''' (etwa 25 km südlich)
* nach [[Fritzlar]] (etwa 25 km südlich)
* nach [[Bad Arolsen]] (etwa 15 km nordwestlich)
* nach [[Warburg]] (etwa 20 km nördlich)
* nach Kassel in den '''[[Bergpark Wilhelmshöhe]]''' (etwa 25 km östlich)
* [[Eco Pfad Kulturgeschichte Wolfhagen]]
{{Panorama|bild=Weidelsberg_pano_nordostblick_ds_08_2009.jpg|unterschrift='''Nordostblick von der [[Weidelsburg]]:''' Links vorne im Panorama ist Ippinghausen zu erkennen. Schräg rechts darüber sieht man [[Wolfhagen]]. Am Horizont in der Bildmitte ist der [[Großer Bärenberg|Große Bärenberg]] mit Funk- und Aussichtsturm sehen. Weiter rechts oberhalb der Windkraftanlagen liegt der [[Habichtswald (Gebirge)|Habichtswald]]|breite=1400px}}
== Literatur ==
'''Radwanderkarte:'''
* '''ADFC Regionalkarte "Kassel / Nordhessen"''' - Maßstab 1: 75.000; {{ISBN|978-3870736392}}; Preis: 8,95 €. Die spezielle Radwanderkarte mit detaillierter Routendarstellung auf reißfestem und wasserabweisendem Papier bildet Nordhessen hinsichtlich Oberflächenbeschaffenheit, Verkehrsbelastung und Tourenvorschlägen fast vollständig ab. Ab Wolfhagen auch für größere Touren z. B. zum Edersee, nach Fritzlar, Warburg usw. nutzbar.
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.31667| long= 9.16667| radius= }}
{{IstInKat|Naturpark Habichtswald}}
kxmb4bdb9bvvef13g0g9mshpz7lh4bd
1769060
1769059
2026-04-16T19:54:40Z
Dirk Schmidt
15181
/* Unterkunft */
1769060
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Wolfhagen''' ist eine Kleinstadt in [[Nordhessen]] etwa 30 km westlich von Kassel gelegen.
Das "Wolfhager Land" liegt landschaftlich schön im [[Naturpark Habichtswald]]. Besonders einen Besuch wert ist die [[Weidelsburg]] oberhalb des Stadtteils Ippinghausen.
== Hintergrund ==
{{Mapframe|51.32809|9.16843|zoom=14|type=geoline}}
Die Stadt wurde 1231 unter Landgraf [[w:Konrad von Thüringen|Konrad von Thüringen]] gegründet.
1264 erhielt Wolfhagen das Stadtrecht. 1302 konnte die Stadtbefestigung fertiggestellt werden.
Im Dreißigjährigen Krieg wurde die Stadt fast vollständig dem Erdboden gleich gemacht.
=== Stadtgliederung ===
Neben der Kernstadt besteht Wolfhagen (mit dem Weiler Elmarshausen) aus elf weiteren Ortsteilen, die sich jeweils als Dorf rund um die Kernstadt erstrecken:
{{3 Spalten|
;{{Marker | type = quarter | name =Altenhasungen|wikidata=Q437180| styles = normal }}
;{{Marker | type = quarter | name =Bründersen|wikidata=Q997012| styles = normal }}
;{{Marker | type = quarter | name =Gasterfeld|wikidata=Q1495410| styles = normal }}
;{{Marker | type = quarter | name =Ippinghausen|wikidata=Q1672275| styles = normal }}
;{{Marker | type = quarter | name =Istha|wikidata=Q1674843| styles = normal }}
;{{Marker | type = quarter | name =Leckringhausen|wikidata=Q1811416| styles = normal }}
;{{Marker | type = quarter | name =Niederelsungen|wikidata=Q1987742| styles = normal }}
;{{Marker | type = quarter | name =Nothfelden|wikidata=Q1688879| styles = normal }}
;{{Marker | type = quarter | name =Philippinenburg und -thal|wikidata=Q1543020| styles = normal }}
;{{Marker | type = quarter | name =Viesebeck|wikidata=Q2523788| styles = normal }}
;{{Marker | type = quarter | name =Wenigenhasungen|wikidata=Q2559437| styles = normal }}.
}}
=== Nachbargemeinden ===
Wolfhagen grenzt im Nordwesten an {{Marker| type = town| name = Volkmarsen|wikidata=Q533535|styles = normal }},
im Norden an {{Marker | type = town| name = Breuna |wikidata=Q503830| styles = normal }},
im Osten an {{Marker | type = town| name = Zierenberg|wikidata=Q199094| styles = normal }} und {{Marker | type = town| name = Habichtswald|wikidata=Q624629| styles = normal }},
im Südosten an {{Marker | type = town| name = Schauenburg|wikidata=Q175419| styles = normal }},
im Süden an {{Marker | type = town| name = Bad Emstal |wikidata=Q291091| styles = normal }} und {{Marker | type = town| name = Naumburg|wikidata=Q641014| styles = normal }},
im Südwesten an {{Marker | type = town| name = Waldeck|wikidata=Q540107| styles = normal }},
sowie im Westen an {{Marker | type = town| name = Bad Arolsen |wikidata=Q498078| styles = normal }}.
== Anreise ==
=== Mit dem Flugzeug ===
* Der nächste Flughafen ist der {{marker|type = airport|name = Flughafen Kassel-Calden |wikidata = Q529143}} etwa 26 km nordwestlich von Wolfhagen, danach folgt der {{marker|type = airport|name = Flughafen Paderborn Lippstadt|wikidata = Q685536}}, der ca. 55 km nordwestlich liegt (gut über die Autobahn A 44 zu erreichen). Die meisten Flugoptionen hat man allerdings vom {{marker|type = airport|name = Flughafen Frankfurt am Main |wikidata = Q46033}}, welcher etwa 220 km entfernt ist.
=== Mit der Bahn ===
* {{vCard | type = train | name = Bahnhof Wolfhagen | wikidata = Q55637849 | description = Wolfhagen liegt an der [[Kurhessenbahn]] [[Korbach]] - [[Kassel]]. Mit dem Regionalexpress bestehen direkte Verbindungen zum ICE in Kassel-Wilhelmshöhe. Des weiteren kann man mit der Regiotram direkt bis ins Stadtzentrum von Kassel fahren.
}}
=== Auf der Straße ===
* Die Autobahn {{RSIGN|DE|A |44}} Kassel - Dortmund an der Anschlussstellen Zierenberg (aus Richtung Kassel) bzw. Breuna (aus Richtung Dortmund) verlassen.
* Die [[Deutsche Fachwerkstraße]] führt durch den Ort.
=== Mit dem Fahrrad ===
[[File:Wolfhagen stadtblick von Sueden vom radfernweg r 4.jpg|thumb|Am hess. Radfernweg R 4: Blick von Süden auf Wolfhagen]]
* Die Stadt liegt am '''[[Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen|Hess. Radfernweg R4: Von Dornröschen zu den Nibelungen]]''' der die Stadt in Nord-Süd Richtung für den Radurlauber erschließt. Im Bereich von Zierenberg über Wolfhagen nach Naumburg ist die Strecke allerdings recht bergig und verläuft zun großen Teilen auf Landstraßen, die zum Teil schnell und auch stärker befahren sind. Die verkehrsfreien Strecken sind öfter geschottert.
*Gut zu wissen: Wer auf der Durchreise per Rad auf dem R 4 ist und seinen Pedelec-Akku während einer Pause laden möchte, findet am Rathaus einem Fahrradständer mit frei zugänglichen Steckdosen.
== Mobilität ==
* {{vCard|type=taxi|name= Taxi Brandau Wolfhagen|address=|phone=+49(0)5692 997700|url=http://www.taxi-brandau-kassel.de|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard | type = parking | name = Parkhaus Mittelstraße / Schäferstraße | lat = 51.32604 | long = 9.17097 | price = frei | lastedit = 2018-06-26 | description = Parkhaus in der Altstadt mit zwei Ebenen, die von verschiedenen Seiten angefahren werden. }}
* {{vCard | type = parking | name = Tiefgarage Rathaus | lat = 51.324124| long = 9.168018 | price = frei | lastedit = 2020-03-29 | description = Parkhaus in der Altstadt, unterhalb des neuen Rathaus. Die Tiefgarage verfügt über eine Ebene und kann nur von der kleinen Straße zwischen Landgrafen und Burgstraße aus angefahren werden. }}
* {{vCard | type = parking | name = Parkaus Torstraße/Wilhelmsstraße | lat = 51.327147| long = 9.172285 | price = frei | lastedit = 2020-03-29 | description = Parkhaus unterhalb der Altstadt, nahe der Sparkasse. Das Parkhaus verfügt über mehrere Ebenen und kann von Wilhelms- und Torstraße aus angefahren werden. Das Gebäude ist als Drogentreffpunkt der Stadt bekannt. }}
== Sehenswürdigkeiten ==
[[Bild:wolfhagen_von_sueden_ds_wv_07_2009.jpg|thumb|Wolfhagen - Blick auf die Altstadt von Süden]]
Wolfhagen besitzt eine sehenswerte '''Altstadt mit Fachwerkbauten'''. Kleinere Reste der Stadtmauer sind ebenfalls noch vorhanden.
* Der {{marker| type = square | name = Marktplatz | lat = 51.32489 | long = 9.16846 }} ist ein gemütlicher Stadtraum mit Café und der Stadtkirche. Prächtigstes Haus am Platz ist der Fachwerkbau des „Alten Rathauses”. Das Haus beherbergt heute ein Hotel mit Restaurant. Auf dem Platz befindet sich ferner der Märchenbrunnen, der eine Szene aus dem Märchen "Der Wolf und die sieben Geislein" zeigt.
* {{vCard | type = church | name = Stadtkirche Wolfhagen | url = http://www.stadtkirche-wolfhagen.de | wikidata = Q83797087 | hours = Sommer 8-18 Uhr, Winter 9-17 Uhr | description = Die weithin sichtbare evangelische Kirche steht am Marktplatz. Bei der Stadtgründung im Jahr 1231 wurde mit dem Bau der Kirche als gotische Hallenkirche begonnen. Das Gebäude ist allerdings nicht rein gotisch. Im Laufe der baulichen Veränderungen haben verschiedene Stile das Gebäude geprägt. Sehenswert sind unter anderem die Chorfenster aus dem Jahr 1691, die Glasfenster von Hans-Gottfried von Stockhausen sowie das Westportal am Turm.}}
* {{vCard | type = church | name =St. Maria|lat =51.325212 |long =9.176246 |url=https://www.katholische-kirche-wolfhagen.de/ |description=Die katholische Kirche wurde 1966 erbaut und ersetzte die Notkirche am Koppenberg, die nach dem Zweiten Weltkrieg errichtet wurde. }}
* {{vCard | type = church | name =Friedhofskapelle|lat =51.325593 |long =9.173586 |description=Die heutige Friedhofskapelle ist die ursprüngliche [[w:Wolfhagen#Hospitalkapelle|Hospitalkapelle]]. Sie ist ein einschiffiges, hochgotisches Gebäude aus Sandsteinquadern.}}
* {{vCard | type = castle| name=Burg Wolfhagen| wikidata=Q1014646| lat =51.3227|long =9.165|description =Im Jahre 1513 wurde ein Neubau der Burg erstellt. Ende des 16. Jahrhunderts war sie verfallen, Anfang des 17. Jahrhunderts wurde sie abgerissen. Erhalten geblieben sind lediglich Reste.}}
* {{vCard | type = castle| name=Burgruine Helfenberg| wikidata=Q1015331| lat =51.329722|long =9.209167| description =Die Überreste der Burg befinden sich rund 2,5 km östlich der Kernstadt.}}
* {{marker| type = tower | name = Chattenturm | lat = 51.32766 | long = 9.17167 }} Als Rest der Stadtbefestigung kann der Wehrturm bestiegen werden. Der Schlüssel ist in der Tourist-Information im Rathaus erhältlich.
* Der frei zugängliche {{marker | type = tower | name = Ofenberg-Turm |wikidata=Q1800311 |lat = 51.32749 | long = 9.18990 }} liegt etwa 1,5 km östlich der Stadtmitte. Schöne kleine Wanderung von der Stadtmitte: Hier zu am besten via Mittelstraße und Treppenanlage "Am Hospitalgarten" die Altstadt nach Osten verlassen. Von hier an der Brücke der Karlstraße die Umgehungsstraße queren. Am Ende der Karlstraße in eine Links-Rechts-Kombination in die Ofenbergstraße wechseln. Vom Ende der Ofenbergstraße gibt es Wanderpfade durch den Wald zum Turm hoch. Strecke ab Marktplatz etwa 5 km Retour mit rund 150 Höhenmetern.
* Der {{marker | type = park | name = Stadtpark | name-map = Kattenturm | lat = 51.32477 | long = 9.16522 }} liegt westlich der Altstadt in einem kleinen Tal. Der Park ist nicht spektakulär. Wer aber einen kleinen, altstadtnahen Spaziergang unternehmen möchte, für den ist der Park mit Teich und Spielplatz ein nettes Ziel.
* {{vCard | name = Regionalmuseum Wolfhager Land | type = museum | url = http://www.regionalmuseum-wolfhagen.de | address = Ritterstr. 1 | lat = 51.32297 | long = 9.16540 | phone = +49 (0)5692 992431 | email = info@museum-wolfhagen.de | hours = Di bis Do 10-13 und 14-17 Uhr, Fr 10-13 Uhr, Sa und So 14-17 Uhr | price = Erwachsene: 3 €, Familienkarte: 6 € | lastedit = 2026-04-16 | description = Das Museum in der alten Burg informiert über die Geschichte der Stadt und Region.
}}
* {{vCard | type = museum | name = Museum für Film- und Videotechnik | url = http://www.filmmuseum-wolfhagen.de | address = Triangelstraße 19 | lat = 51.32669 | long = 9.17041 | phone = +49(0)5692 994956 | hours = Sonntags von 11-12:30 Uhr, Gruppenbesuche mit Führung nach Vereinbarung | price = Eintritt frei, Spende erwünscht | lastedit = 2017-11-04 | description = Das Museum beschäftigt sich mit filmtechnischen Gerätschaften bis zum 35-mm Format. Die Ausstellung ist noch im Aufbau.}}
* {{vCard | type = rock | name = Felsgruppe Rauensteine | lat = 51.2895 | long = 9.1666 | lastedit = 2018-06-26 | description = Die nicht spektakuläre, aber sehenswerte Felsgruppe findet sich etwa 5 km südlich der Kernstadt zwischen den Ortsteilen Ippinghausen und Bründersen. Die Sandsteine liegen in einem Waldgebiet und sind 4 bis 5 m hoch. Das Naturdenkmal ist von beiden Dörfern über den Wanderweg "Wolfsfährte" erreichbar (Markierung Wolfssysmbol auf kleinen Metallschildern, [https://www.openstreetmap.org/relation/3764717#map=13/51.2904/9.1690 Streckenverlauf auf Openstreetmap]). }}
* {{vCard | type = cave | name = Felskeller "Drachenhöhle" | lat = 51.3073546 | long = 9.1715908 | lastedit = 2018-06-26 | description = Der künstlich angelegte Felsenkeller findet sich am Graner Berg. Für eine Expedition in die Keller benötigt man eine Lichtquelle. Die Drachenhöhle ist direkt nur zu Fuß über Pfade zugänglich und kann bis zum Graner Berg gut per Fahrrad angefahren werden. Mit Stand 2014 ist die vor allem für Familien mit größeren Kindern interessante Sehenswürdigkeit nicht ausgeschildert. }}
== Aktivitäten ==
* '''Wandern''' - Die grüne Landschaft rund am Wolfhagen lädt zu vielfältigen Wanderungen ein, wie zum Beispiel auf [[Habichtswaldsteig]] und [[Eco Pfad Kulturgeschichte Wolfhagen]]. Ein schönes Wanderrevier sind z. B. die Wälder rund um das obere Elbetal bei Ippinghausen. Es gibt hier ab dem Wanderparkplatz unterhalb der Weidelsburg ausgeschilderte Rundwanderwege. Höhepunkt einer Wanderung kann hier der Besuch der [[Weidelsburg]] sein. Im Elbetal kann man schön in der Hasenmühle einkehren.
* '''Radwandern''' - Rund um Wolfhagen gibt es landschaftliche schöne Routen zum Radwandern. Die Touren sind meist bergig und die Strecken öfter geschottert. Die Schilder für das flächige Radwegweisungsnetz sollen bis Ende 2018 aufgestellt werden. Wer möchte kann z. B. über den Hessischen Radfernweg R 4 in das 10 km südlich liegende Fachwerkstädtchen [[Naumburg (Hessen)]] radeln (z. T. Schotterwege). Überregionale Radwanderkarte siehe Abschnitt [[#Literatur|Literatur]]
* {{marker|type=swimming|name=Erlebnis-Freibad|lat=51.3245|long=9.1827}} - das zwischen Mai und August geöffnete Bad besitzt eine 36 m lange Wasserrutsche. Lage: Nördlich der Umgehungsstraße in der Sudetenstraße.
* '''Rundflüge''' - können über die [http://www.edgw.de/ Luftsportvereinigung Wolfhagen e. V.] individuell erfragt/ gebucht werden. Der kleine Flugplatz liegt landschaftlich sehr schön auf dem [[w:Graner Berg|Graner Berg]] etwa 2 km südlich der Stadt.
* {{vCard | name = Cinema Wolfhagen | type = cinema | url = https://kino-wolfhagen.de | address = Schützebergerstr. 37, 34466 Wolfhagen | lat = 51.32582 | long = 9.16842 | phone = 05692 995099 | description = Das Kino liegt in einem der ältesten Häuser der Stadt. Es gibt immer aktuelle Filme, auch in neuester 3D-Technik. Ferner werden besondere Aktionen wie "Café und Kino", "Kulinarisches Kino" und "Der besondere Film" (Programmkino) angeboten. Preise sind fair, Personal ist freundlich, Aktionen und Kino sind gut besucht. Reservierungen und Kartenkauf können über das Onlinesystem vorgenommen werden.
}}
* {{vCard | name = Waldbühne Niederelsungen | type = theater | url = http://www.waldbuehne.niederelsungen.de | lat = 51.38328 | long = 9.18952 | description = Etwa 8 km außerhalb liegt im Ortsteil Niederelsungen die Waldbühne. Alle zwei Jahre wird in der Freiluftbühne im Sommer Theater gespielt. Die Preise sind moderat und es ist oft gar nicht einfach eins der 1300 Ticket zu bekommen.
}}
=== Feste ===
* {{vCard|name=Vieh- und Krammarkt |wikidata=|type=festival |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Das traditionsreiche und größte Fest der Stadt findet alljährlich im Juli auf der Liemecke statt und besteht aus Viehschau und Vergnügungspark.}}
* {{vCard|name=Kulturzelt Wolfhagen |wikidata=|type=festival |address=|phone=|email=|url=http://www.kulturzelt.de |hours=|price=|lat=|long=|lastedit=|description=Das große Kleinkunstfestival im Juni im Stadtpark Teichwiesen wartet auch mit bekannten Namen auf und findet mittlerweile auch überregional Beachtung.}}
== Einkaufen ==
* '''Lebensmitteleinkauf:''' Zwei Lebensmittelmärkte finden sich bei {{Marker | name = zwei Lebensmittelmärkte | type= shop | lat = 51.329824 | long = 9.173756| show =noname }} an der Schützeberger Straße.
== Küche ==
* {{vCard|type=restaurant|name=Zum Chattenturm|wikidata= Q57021087| lastedit = 2018-01-01 |description=}}
* {{vCard|type=restaurant|name=„Zum Schiffchen“|address=Hans-Staden-Straße 27|phone=+49 05692 9875-0|email=besucher@hotel-zum-schiffchen.de|fax=+49 05692 9875-11|url=https://www.hotel-zum-schiffchen.de/|hours=Mo.-Sa.: 17-24 Uhr; So.: 11-15 Uhr; jeden 2. Sonntagabend: 17-23 Uhr; Feiertage: 11-15 Uhr und 17-23 Uhr; Küche: 11:30-14 Uhr und 17:30-22 Uhr|price=|lat=51.32279|long=9.16664}}
* {{vCard|type=restaurant|name=Gasthaus Hotel Pfeifferling|address=Waldecker Straße 7|phone=+49 05692 5980|email=info@gasthaus-pfeifferling.de|fax=+49 05692 8111|url=https://www.gasthaus-pfeifferling.de/|hours=|price=|lat=51.28106|long=9.14285}}
* {{vCard|name=Konditorei Oliev |wikidata=|type=pastry shop |address=Schützeberger Str. 49 |phone=+49 05692 993971 |email=|url=|hours=|price=|lat=51.32660 |long=9.16939 |lastedit=|description=Gemütliche Kaffee-Atmosphäre drinnen und draußen in der Altstadt, freundliche Bedienung, faire Preise, vom Frühstück bis zum späten Nachmittag durchgehend geöffnet.}}
* {{vCard|name=Ristorante San Remo |wikidata=|type=restaurant |address=Schützeberger Str. 37 |phone=+49 05692 5920 |email=|url=https://www.restaurant-san-remo.eu/ |hours=|price=|lat=51.32579 |long=9.16829 |lastedit=|description=Italienische Küche in der Altstadt, wie man sie gerne isst. Ein gemütliches Lokal, im Sommer auch draußen, mit angemessenen Preisen, freundlichem Service und saisonaler Küche. Abends und am Wochenende ist Tischbestellung zu empfehlen.}}
* {{vCard | name = Eiscafe Da Peppo | type = ice cream | address = Schützeberger Str. 47 | lat = 51.32651 | long = 9.16931 | phone = +49 05692 9968484 | description = Hier erhält man im Straßenverkauf recht große Kugeln Eis zu 1,20 Cent das Stück (Frühjahr 2020).
}}
== Nachtleben ==
Die Landruhe mit klarem Sternenhimmel genießen. Sonst:
* {{vCard | type = bar | name = Mamounia Lounge/Shisha bar| facebook = MAMOUNIALOUNGEWOLFHAGEN | address = Kurfürstenstraße 47, 34466 Wolfhagen | lat = 51.3216698 | long = 9.1813215 | phone = +49 160 8980069 | hours = Mo bis Do 18:00 - 0:00 Uhr; Fr bis Sa 17:00 - 0:00 Uhr; So 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Einzige Shisha bar der Stadt, die bislang überlebt hat. Klein aber gemütlich.}}
* {{vCard | type = bar | name = Zottels Pub | url = http://www.zottels-kneipe.de/ | facebook = zottels.pub | address = Mittelstraße 22-24, 34466 Wolfhagen | lat = 51.325656 | long = 9.171556 | phone = +49 172 5704415 | hours = So bis Mo geschlossen; Di bis Sa 17:00 - 0:00 Uhr | price = | lastedit = 2020-03-30 | description = Raucherbar mit langer Tradition und gewissem Ruf in Wolfhagen. Fußballspiele werden live übertragen. Es gibt einen Dartsroom mit einigen Scheiben und eigener Mannschaft. Es werden Turniere in der Kai Schumacher Dartliga abgehalten }}
* {{vCard | type = bar | name = Gaststätte zur Knackenburg| address = Burgstraße 12, 34466 Wolfhagen | lat = 51.325162 | long = 9.170854 | phone = +49 5692 2566| hours = Mo bis Mi 17 - 22 Uhr; Fr 17 - 23 Uhr; Sa 10 - 22 Uhr, Do und So geschlossen | price = | lastedit = 2020-03-30 | facebook = knacke.woh | description = Beste Kneipe in Wolfhagen, mit langer Tradition. Bringt Alt und Jung zusammen. }}
== Unterkunft ==
* Zum Unterkunftsverzeichnis der [https://wolfhagen.de/stadtplan/?jsf=jet-engine&meta=typ!is_custom_checkbox:Unterkuenfte Stadt Wolfhagen] (mit Ferienwohnungen und Unterkünften in den Stadtteilen.)
=== Camping ===
* {{vCard | type = caravan site | name = Wohnmobilstellplatz Wolfhagen | lat = 51.33014444 | long = 9.17102222 | lastedit = 2018-06-26 | description = Der Platz mit 34 Stellplätzen liegt nur wenige Meter nördlich der Altstadt in den Bruchwiesen. Stellplatzgebühren: keine; Spenden erwünscht. Zu Hauptbesuchszeiten (z. B. Ostern) kann der Platz ausgelastet sein. }}
* Der nächste Campingplatz für Zelter findet sich in [[Naumburg (Hessen)#Camping|Naumburg (Hessen)]], etwa 10 km südlich von Wolfhagen.
=== Hotels und Pensionen ===
* {{vCard | type = hotel | name = Hotel und Restaurant "Altes Rathaus" | url = https://www.altesrathauswolfhagen.de | address = Kirchplatz 1, 34466 Wolfhagen | lat = 51.3250835 | long = 9.1668356 | phone = +49 (0)5692 - 997906 | fax = +49 (0)5692 - 997908 | price = EZ ab 53,60 €, DZ ab 63,65 €, Frühstück extra für 15 € | lastedit = 2026-04-16 | description = Erst nach dem Umzug der Stadtverwaltung in die Burgstraße 33 wurde das alte Rathaus, das direkt im Stadtkern liegt, in ein Hotel und Restaurant umgebaut. }}
* {{vCard | name = Hotel und Restaurant "Zum Schiffchen" | type = hotel | url = https://www.hotel-zum-schiffchen.de/ | address = Hans-Staden-Straße 27, 34466 Wolfhagen | lat = 51.32283 | long = 9.16663 | phone = +49 (0)5692 - 98750 | fax = +49 (0)5692 - 987511 | email = besucher@hotel-zum-schiffchen.de | price = EZ ab 66,50 € €, DZ ab 95 €, Frühstück extra für 12,50 € | lastedit = 2026-04-16 | description = 11 Hotelzimmer in 2 Kategorien.
}}
* {{vCard | name = Hotel und Restaurant "Zum Chattenturm" | type = hotel | url = https://zum-chattenturm.de/ | address = Schützeberger Straße 67, Wolfhagen | lat = 51.32746 | long = 9.17105 | phone = +49 (0)5692 - 2387 | fax = +49 (0)5692 - 8503 | email = info@hotel-zum-chattenturm.de | price = EZ ab 60 €, DZ ab 80 € (Frühstück 15 €) | lastedit = 2026-04-16 | description = Die Gästezimmer befinden sich in den starken, historischen Mauern. Das sorgt für den ungestörten Schlaf der Gäste.
}}
* {{vCard | type = hotel | name = Hotel und Restaurant "Zur Stadt Wolfhagen" | address = Mittelstraße 9, 34466 Wolfhagen | lat = 51.3254633 | long = 9.1667513 | phone = +49 (0)5692 - 993064 | fax = +49 (0)5692 - 993111 | price = ab 34 € | lastedit = 2019-03-01 | mobile = +49 (0)176 32822214 | description = Hotel, Restaurant und Cafe }}
== Sicherheit ==
Wolfhagen ist eine sichere Stadt. Besondere Verhaltensregeln über die üblichen Vorsichtsmaßnahmen hinaus, wie Fahrrad abschließen usw., sind nicht notwendig.
== Gesundheit ==
* {{vCard|name=Kreiskliniken Kassel - Standort Wolfhagen|type=hospital|lat=51.32015|long=9.19085|lastedit=2022-03-28|description=Das Krankenhaus wurde von Gesundheit Nordhessen durch den Landkreis Kassel übernommen. Weiterer Standort ist Hofgeismar.}}
== Praktische Hinweise ==
* {{vCard | name = Stadt- und Tourist-Information | type = tourist information | url = https://wolfhagen.de/tourismus/ | address = Burgstraße 33-35, 34466 Wolfhagen | lat = 51.32442 | long = 9.16848 | phone = +49 (0)5692 602102 | fax = +49 (0)5692 602190 | email = tourist-info@wolfhagen.de
}}
* {{vCard | name = öffentliche Toilette am Rathaus | type = toilet | lat = 51.32421 | long = 9.16822 | lastedit = 2018-06-26 | description = Eine frei zugängliche, öffentliche Toilettenanlage befindet sich am Rathaus oberhalb des Marktplatzes.
}}
== Ausflüge ==
=== Bis 10 km Entfernung ===
* {{vCard | type = castle| name=Weidelsburg|wikidata=Q1621311|lat =51.272917| long =9.144319| description = Die große Burgruine mit sehr schöner Aussicht liegt etwa 5 km südlich von Wolfhagen oberhalb des Stadtteils Ippinghausen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Festberg|lat =51.335032 |long = 9.217336 | description =Bergrücken mit Kalkmagerrasen und schönem Landschaftsblick zwischen Philippinenthal und Altenhasungen. Zwei Bänke laden zum Entspannen ein. Die Erhebung liegt etwa 4 km nordöstlich von Wolfhagen.}}
* {{vCard | type =mountain|name=Naturschutzgebiet Glockenborn|lat =51.305722 |long = 9.18775 | description =Künstlich angelegtes Feuchtgebiet mit zwei Seen, kleineren Stillgewässern und Extensivgrünland. Insgesamt drei Aussichtspunkte mit guter Beobachtungsposition für seltene Vogel- und Amphibienartenn. Das Gebiet liegt etwa 3 km südöstlich der Innenstadt}}
=== Bis 30 km Entfernung ===
* an den '''[[Edersee]]''' (etwa 25 km südlich)
* nach [[Fritzlar]] (etwa 25 km südlich)
* nach [[Bad Arolsen]] (etwa 15 km nordwestlich)
* nach [[Warburg]] (etwa 20 km nördlich)
* nach Kassel in den '''[[Bergpark Wilhelmshöhe]]''' (etwa 25 km östlich)
* [[Eco Pfad Kulturgeschichte Wolfhagen]]
{{Panorama|bild=Weidelsberg_pano_nordostblick_ds_08_2009.jpg|unterschrift='''Nordostblick von der [[Weidelsburg]]:''' Links vorne im Panorama ist Ippinghausen zu erkennen. Schräg rechts darüber sieht man [[Wolfhagen]]. Am Horizont in der Bildmitte ist der [[Großer Bärenberg|Große Bärenberg]] mit Funk- und Aussichtsturm sehen. Weiter rechts oberhalb der Windkraftanlagen liegt der [[Habichtswald (Gebirge)|Habichtswald]]|breite=1400px}}
== Literatur ==
'''Radwanderkarte:'''
* '''ADFC Regionalkarte "Kassel / Nordhessen"''' - Maßstab 1: 75.000; {{ISBN|978-3870736392}}; Preis: 8,95 €. Die spezielle Radwanderkarte mit detaillierter Routendarstellung auf reißfestem und wasserabweisendem Papier bildet Nordhessen hinsichtlich Oberflächenbeschaffenheit, Verkehrsbelastung und Tourenvorschlägen fast vollständig ab. Ab Wolfhagen auch für größere Touren z. B. zum Edersee, nach Fritzlar, Warburg usw. nutzbar.
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.31667| long= 9.16667| radius= }}
{{IstInKat|Naturpark Habichtswald}}
jqdci0u4ikr5s5r6nnqfrymm5bmambd
Santiago del Teide
0
21314
1769104
1421835
2026-04-16T21:11:36Z
Scholless
15050
/* Küche */ gestrafft
1769104
wikitext
text/x-wiki
{{Quickbar Ort
| Karte = es-cn-tf
| Höhe=
| Namen=
| Bild= [[Bild:SP-teneriffa-santiagodelteide-kirche+guanche.jpg|300px|thumb|Kirche von Santiago del Teide, davor Statue eines Guanchen]]
| Lage=
| Provinz=
| ProvinzLabel=
| Einwohner=
| TouriInfoWeb= [http://www.santiagodelteide.org/ www.santiagodelteide.org]
| TouriInfoTel=
}}
'''Santiago del Teide''' ist eine Stadt im Nordwesten von [[Teneriffa]].
== Hintergrund ==
[[Bild:SP-teneriffa-santiagodelteide-strasse-masca.jpg|300px|thumb|Blick ins wolkenverhangene Santiago del Teide]]
Der Ort Santiago del Teide liegt auf einer Hochebene im Teno-Gebirge im Nordwesten der Insel Teneriffa. Er ist gleichzeitig Verwaltungssitz des benachbarten Ortes ''Tamaimo'' sowie der wesentlich bekannteren Orte ''Puerto de Santiago'', ''Playa de la Arena'' und ''Los Gigantes'', die an der Küste liegen.
== Anreise ==
=== Mit dem Flugzeug ===
=== Auf der Straße ===
Santiago del Teide liegt an der Straße '''TF-82''', sie führt von [[Adeje]] über [[Guía de Isora]] nach [[Icod de los Vinos]]. Von Santiago zweigt die '''TF-436''' ab nach [[Masca]], und die '''TF-464''' führt zur Küste bei ''Los Gigantes''
=== Mit dem Schiff ===
== Mobilität ==
Der Ort Santiago liegt auf einer Hochebene und kann gut zu Fuß erkundet werden.
== Sehenswürdigkeiten ==
[[Bild:SP-teneriffa-santiagodelteide-kirche-innen.jpg|200px|thumb|Altarbild der Kirche von Santiago del Teide]]
Das Zentrum des Ortes ist ein Platz, umgeben von einer einfachen weißen Kirche, daneben das Rathaus im kanarischen Stil, davor die Bronzestatue eines Guanchen.
== Aktivitäten ==
== Einkaufen ==
== Küche ==
== Nachtleben ==
== Unterkunft ==
<!--evtl. unterteilen in günstig, mittel und gehoben-->
<!--== Lernen ==
== Arbeiten ==
== Sicherheit ==-->
== Gesundheit ==
== Praktische Hinweise ==
== Ausflüge ==
== Literatur ==
== Weblinks ==
{{Navigation Teneriffa}}
{{class-2}}
{{GeoData| lat= 28.3| long= -16.81667| radius= 10000}}
{{IstInKat|Teneriffa}}
4qhpm5jtahuiostnarg72s3nx91wq95
1769105
1769104
2026-04-16T21:11:53Z
Scholless
15050
/* Unterkunft */ gestrafft
1769105
wikitext
text/x-wiki
{{Quickbar Ort
| Karte = es-cn-tf
| Höhe=
| Namen=
| Bild= [[Bild:SP-teneriffa-santiagodelteide-kirche+guanche.jpg|300px|thumb|Kirche von Santiago del Teide, davor Statue eines Guanchen]]
| Lage=
| Provinz=
| ProvinzLabel=
| Einwohner=
| TouriInfoWeb= [http://www.santiagodelteide.org/ www.santiagodelteide.org]
| TouriInfoTel=
}}
'''Santiago del Teide''' ist eine Stadt im Nordwesten von [[Teneriffa]].
== Hintergrund ==
[[Bild:SP-teneriffa-santiagodelteide-strasse-masca.jpg|300px|thumb|Blick ins wolkenverhangene Santiago del Teide]]
Der Ort Santiago del Teide liegt auf einer Hochebene im Teno-Gebirge im Nordwesten der Insel Teneriffa. Er ist gleichzeitig Verwaltungssitz des benachbarten Ortes ''Tamaimo'' sowie der wesentlich bekannteren Orte ''Puerto de Santiago'', ''Playa de la Arena'' und ''Los Gigantes'', die an der Küste liegen.
== Anreise ==
=== Mit dem Flugzeug ===
=== Auf der Straße ===
Santiago del Teide liegt an der Straße '''TF-82''', sie führt von [[Adeje]] über [[Guía de Isora]] nach [[Icod de los Vinos]]. Von Santiago zweigt die '''TF-436''' ab nach [[Masca]], und die '''TF-464''' führt zur Küste bei ''Los Gigantes''
=== Mit dem Schiff ===
== Mobilität ==
Der Ort Santiago liegt auf einer Hochebene und kann gut zu Fuß erkundet werden.
== Sehenswürdigkeiten ==
[[Bild:SP-teneriffa-santiagodelteide-kirche-innen.jpg|200px|thumb|Altarbild der Kirche von Santiago del Teide]]
Das Zentrum des Ortes ist ein Platz, umgeben von einer einfachen weißen Kirche, daneben das Rathaus im kanarischen Stil, davor die Bronzestatue eines Guanchen.
== Aktivitäten ==
== Einkaufen ==
== Küche ==
== Nachtleben ==
== Unterkunft ==
== Gesundheit ==
== Praktische Hinweise ==
== Ausflüge ==
== Literatur ==
== Weblinks ==
{{Navigation Teneriffa}}
{{class-2}}
{{GeoData| lat= 28.3| long= -16.81667| radius= 10000}}
{{IstInKat|Teneriffa}}
kaxgduyj96doqoh07hxiq7tu2rpgl2x
Rhein-Radweg (Mittelrhein): Mainz − Bonn
0
24544
1769157
1768883
2026-04-17T07:31:23Z
Dirk Schmidt
15181
/* Rechtsrheinisch im Rheingau: Mainz-Kastel − Eltville − Rüdesheim: 34{{nnbsp}}km */
1769157
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Deutschland}}
Der '''Mittelrhein-Radweg''' ist ein Abschnitt des '''[[Rhein-Radweg]]es''' und führt von [[Mainz]] bzw. und dem Wiesbadener Stadtteil [[Wiesbaden/AKK|Mainz-Kastel]] über [[Rüdesheim am Rhein|Rüdesheim]], [[Bingen am Rhein|Bingen]] und [[Koblenz]] nach [[Bonn]].
Dieser Radreiseführer beschreibt die Strecke vom Stadtzentrum Mainz bis zum Stadtzentrum Bonn, weil dies gute Einstiegspunkte sind. Mit der Bahn werden beide Städte mindestens stündlich mit InterCitys angefahren, die auch reservierungspflichtige Fahrräder mitnehmen.
[[Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|thumb|325px|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen]]
'''Achtung:''' Im Mittelrheintal gibt es bisher nur '''linksrheinisch''' zwischen Bingen und Koblenz einen durchgehenden Radweg. Rechtsrheinisch zwischen Rüdesheim und Koblenz bestehen noch ein paar Lücken. Hier muss aktuell teilweise noch die Bundesstraße genutzt werden. Es besteht der Plan, bis zur Bundesgartenschau 2029 diese Lücken zu schließen.
== Streckenprofil ==
[[Image:Logo Rhein 555-zGh.jpg|right|95px]]
[[Bild:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|95px]]
* '''Länge:''' etwa 160{{nnbsp}}km.
* '''Ausschilderung:''' Logo mit gelben Euroradler auf blauem Grund und der Bezeichnung „Rhein“, in Hessen „RHEIN RHIN“. Zwischenwegweiser bestehen in Rheinland Pfalz aus einem grünen Pfeil auf weißem Grund und sind oft schwer auszumachen. In Hessen ist der Rheinradweg nur bis Oestrich-Winkel ausgeschildert. Ab der Landesgrenze zu Nordrhein-Westfalen in Bad Godesberg und [[Bad Honnef]] wird der Rheinradweg als „Elebnisradweg Rheinschiene“ ausgeschildert.
* '''Steigungen:''' keine
* '''Wegzustand:''' gut, fast immer asphaltiert, ausgenommen Alternativwege
* '''Verkehrsbelastung:''' häufig neben stark befahrener Bundesstraße, an einigen Stellen auf der Bundesstraße. Rechtsrheinisch zwischen Rüdesheim und Koblenz noch kein durchgehender Radweg. Bis zur BUGA 2029 besteht der Plan die Lücken zu schließen.
* '''Geeignetes Fahrrad:''' 3-Gang
* '''Familieneignung:''' ja, aber an einigen Stellen erhebliche Verkehrsbelastung
* '''Inlinereignung:''' teilweise ja
== Hintergrund ==
Geografisch gehört der Rheingau noch zum Oberrhein. Erst ab Bingerbrück am Zufluss der Nahe bzw. an der Stromschnelle Bingerloch beginnt der Mittelrhein im beliebten [[Mittelrheintal]]. Das Mittelrheintal endet in Bad-Godesberg bei Bonn.
Wie bereits erwähnt: Dieser Radreiseführer beschreibt die Strecke vom Stadtzentrum Mainz bis zum Stadtzentrum Bonn, da dies gute Einstiegspunkte in den Abschnitt des Mittelrheins sind.
== Vorbereitung ==
{{mapframe|50.496|7.800|zoom=8}}
{{Mapshape|wikidata=Q1253779|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
Zeitlich lässt sich die Strecke Problemlos in '''zwei bzw. drei Tagesetappen''' an einem '''verlängertem Wochenende''' bewältigen. Allerdings verpasst man dann viel. Um den Streckenabschnitt auch kulturell zu erkunden, kann man inklusive Aufenthaltstagen durchaus eine Woche einplanen.
== Anreise ==
=== Mit der Bahn ===
Sowohl Mainz, wie auch Bonn sind gut in das Bahnetz eingebunden. Unterwegs wird das Tal auf beiden Seiten mit Bahnlinien begleitet.
*{{Marker | name = Mainz Hauptbahnhof| type= rail | wikidata = Q636700|url = https://www.bahnhof.de/mainz-hbf}} - ist in den Fernverkehr eingebunden. Zum Rheinufer: Vom Hauptbahnhof durch die Gärtnergasse und Große Langgasse fahren. Höhe {{Marker | name = Ludwigsstraße |name-map = Strecke Mainz Hauptbahnhof zum Rheinufer: Hier von der Große Langgasse in die Ludwigsstraße einbiegen. |type= waypoint |group = gold | lat = 49.998345 | long = 8.269414}} nach links in die Fußgängerzone abbiegen. Das langsame Radfahren mit Schritttempo ist gestattet. Sehenswert ist hier u. a. der '''Dom'''. Nach Querung der Rheinstraße erreicht man Höhe {{Marker | name = Fischtorplatz |type= waypoint |group = gold | lat = 50.000085 | long = 8.278837}} das Rheinufer.
'''Anreise Nahverkehr aus dem Rhein-Main-Gebiet:'''
* {{Marker | name = Bahnhof Mainz Römisches Theater | type= rail | wikidata = Q320339|url = https://www.bahnhof.de/mainz-roemisches-theater}} − S-Bahn S8 und Regionalbahnen. Zum Rheinufer: Von der Unterführung über den Zebrastreifen, durch das Haus und rechts in die Dagobertstraße bis vor die Brücke zum Winterhafen, dort aber links am Rheinufer stromabwärts.
* {{Marker | name = Bahnhof Mainz-Kastel | type= rail | wikidata = Q3074809|url = https://www.bahnhof.de/mainz-kastel}} − '''Achtung nur Treppen an den Bahnsteigen''' - Es verkehren die S1, S9 und StadtExpress aus Frankfurt oder Wiesbaden Hbf. Der Bahnhof liegt fast direkt am rechtsrheinischen Rheinradweg: Schranke südlich Bahnhofsgebäude überqueren dann ist man am Rheinufer mit Radweg.
Das Hessenticket für bis zu 5 Personen gilt rechtsrheinisch bis [[Lorch am Rhein|Lorchhausen]] und im gesamten Mainzer Stadtgebiet bei kostenloser Fahrradbeförderung.
Die '''Fahrradmitnahme''' ist in Rheinland-Pfalz ab 9 Uhr und am Wochenende ganztags kostenlos. Beim Übergang von einem anderen Bundesland muss ein Fahrradtageskarte für den Nahverkehr gelöst werden. Im hessischen [https://www.rmv.de RMV-Verbund] ist die Fahrradbeförderung generell kostenlos. RMV-Fahrkarten und Hessenticket gelten auch in Mainz.
Das [https://www.bahn.de/angebot/regio/laender-tickets/rheinland-pfalz-ticket Rheinland-Pfalz-Ticket] für 1 - 5 Personen gilt linksrheinisch über Rolandseck hinaus bis Bonn Hbf und rechtsrheinisch auch über Wiesbaden und Rüdesheim bis vor die Grenze zu NRW in Unkel.
=== Mit dem Fahrrad ===
[[Image:Wegweiser 611-h.jpg|thumb|upright|Zwischenwegweiser in Hessen]]
Linksrheinisch (Innenstadt Rheinufer):
* '''Rhein-Radweg (Oberrhein): Basel − Mainz''' von [[Worms]] über [[Oppenheim]]
Rechtsrheinisch (Mainz-Kastel):
* '''Rhein-Radweg (Oberrhein): Basel − Mainz''' von [[Mannheim]] über [[Ginsheim-Gustavsburg]] und Mainz-Kostheim.
* [[Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3]] von [[Frankfurt am Main|Frankfurt]] über [[Hochheim]]
* [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal]], Anschluss unter der Mainbrücke in Mainz-Kostheim an den Rhein- und Main-Radweg.
=== Auf der Straße ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Wer mit dem Auto anreist kommt allerdings per Bahn recht einfach zurück zum Wagen.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
===1. Etappe: Mainz / Wiesbaden - Bingen / Rüdesheim: etwa 35 bis 40{{nnbsp}}km ===
Der von Süden kommende Rhein macht am Zufluss des Mains einen Knick nach Westen. Der Strom verzweigt sich und fließt wieder zusammen, langgestreckte Inseln und Auen auch am Ufer bilden ein fast natürliches und abwechslungsreiches Gewässer. Aufgrund dieses breiten Stroms wird der Rhein hier auch als "Inselrhein" bezeichnet.
Am nördlichen Ufer, also rechtsrheinisch, breitet sich auf den Taunushängen der [[Rheingau]] aus. Südlich des breiten Stroms grenzt [[Rheinhessen]] hier an das linksrheinische Ufer.
==== Linksrheinisch in Rheinhessen: Mainz − Ingelheim − Bingen: 35{{nnbsp}}km ====
{{Scroll Gallery|title=Unterwegs in Rheinhessen
|timeDependent=
|File:Rheinuferweg Budenheim 487-h.jpg|Vom Fähranleger Budenheim geht geradeaus vor dem Sommerdeich ein schöner Weg durch Streuobstwiesen und später am Altrhein entlang.
|Image:Rheinufer Budenheim 494-h.jpg|Abzweig zum Rhein und auf die [http://www.auenservice.de/pdf/konigsklingerBro.pdf Haderaue] zwischen Budenheim und Heidenfahrt
|Image:Rheinhessen Rheinuferweg 828-zh.jpg|Der Rheinuferweg zwischen Budenheim und Heidenfahrt. Während der breite Weg links auf den offiziellen Rheinradweg zuläuft, um dann hinter dem Hauptdeich den Blick auf die Auenlandschaft zu versperren, führt der gerade aus laufende schmale Weg auf dem Sommerdeich kurz darauf auf den Altrheinarm, um dann als breiter Weg den Rheinarm zu begleiten.
|Image:Inselrhein Hindenburgbrücke 563-Gzh.jpg|Brückenkopf der im Krieg gesprengten Hindenburgbrücke über den Rhein nach Rüdesheim / Geisenheim bei Gaulsheim vor Bingen
|Image:Bingen Industriekran 573-Gh.jpg|Hafenpark am Kulturufer Bingen mit dem Industriekran
}}
Zwischen {{Marker | name = [[Mainz]] | type= City | wikidata = Q1720}} und [[Bingen am Rhein|Bingen]] ist der offizielle Rheinradweg meist recht eintönig. Wer aber einfach "Strecke" machen möchte, ist hier richtig.
Es geht von Mainz-Stadtmitte erst durchs Industriegebiet mit viel Kfz-Verkehr. Dann wird es ruhiger, geht aber durch Schrebergärten und Obstplantagen meist hinter dem Deich entlang. Die Strecke ist auf asphaltierten oder betonierten Wirtschaftswegen zwar meist gut fahrbar, aber Blicke auf den Rhein sind selten.
Der historisch bedeutsame Stadtkern von [[Ingelheim]] liegt abseits der Strecke. Aber ab {{Marker | name = Abzweig zum Alten Stadtkern Nieder-Ingelheim | type= waypoint |group = gold | lat = 50.001933| long = 8.074983 | show = noname}} ist ein Abstecher zur Kaiserpfalz im alten Ortskern von {{Marker | name = [[Ingelheim am Rhein#In Nieder-Ingelheim|Ortskern von Nieder-Ingelheim mit Resten der alten Kaiserpfalz]] | type= see | lat = 49.977628| long =8.072752 | show = noname }} '''Nieder-Ingelheim''' problemlos möglich (zwei Kilometer einfach). Es sind von der Kaiserpfalz noch frei zugängliche Mauerreste vorhanden. Ferner gibt es ein Museum.
'''Alternativwege näher am Rheinufer:''' Auf dieser Seite gibt es Alternativwege, die direkt oder in der Nähe des Ufers entlang laufen und bei trockenem Wetter gut befahrbar sind: Vom '''Mombacher Kreisel''' geht es an der Autobahnzufahrt rechts vorbei, ab der Autobahnbrücke auf dem Sommerdeich direkt an den Auwäldern entlang nach '''Budenheim'''. Ab der "Sonntags-Fähre Budenheim" sollte man nicht mehr dem ausgeschilderten Rheinradweg folgen, sondern den Weg rechts des Sommerdeichs nutzen. Hier erlebt man die Natur der Streuobstwiesen und Auenwälder. Wenn der breite Weg einen Linksknick macht, weiter geradeaus den Pfad nehmen, man kommt kurz darauf auf breitem Weg am Altrheinarm an und landet dann in '''Heidenfahrt'''. Auch hier wieder am Ufer bleiben bis zum Hafen in '''[[Ingelheim am Rhein|Ingelheim Frei-Weinheim]]'''. Zwischen Hafenbecken und Deich geht wiederum in Rheinnähe ein breiter Weg bis '''[[Bingen am Rhein|Bingen]]'''.
Sonntags wird es am Rhein allerdings sehr eng. · Details siehe auch: [https://www.radreise-wiki.de/Rhein#Mainz Radreise-Wiki]
==== Fähre Rüdesheim − Bingen ====
* Von [[Bingen am Rhein|Bingen Hafen]] fährt eine Autofähre nach [[Rüdesheim am Rhein|Rüdesheim Bahnhof]] alle 20 - 30 min. bis 21.45 Uhr, im Sommer alle 10 - 30 min. bis Mitternacht. · [http://www.bingen-ruedesheimer.com/rheinfaehren/index.html Fahrplan]
* Von [[Bingen am Rhein|Bingen Brücke 5]] fährt eine Personenfähre nach [[Rüdesheim am Rhein|Rüdesheim Brücke 19]] montags bis freitags stündlich bis 18 Uhr. Im Sommer (1. Mai - 31. Okt.) fährt sie täglich alle 40 min. bis ca. 22 Uhr. · [http://www.bingen-ruedesheimer.com/rheinfaehren/index.html Fahrplan] − empfohlene Fähre
====Rechtsrheinisch im Rheingau: Mainz-Kastel − Eltville − Rüdesheim: 34{{nnbsp}}km ====
{{Scroll Gallery|title=Ufer bei Wiesbaden
|Image:Bastion von Schönborn Strand Mainz-Kastel 405-h.jpg|Noch schnell ein Sonnenbad in Mainz-Kastel, bevor es auf die Reise zur kühlen Nordsee geht. Nach Biebrich geht es unter die Theodor-Heuss-Brücke.
|Image:Mainz-Kastel Ornithopter 379-zh.jpg|Spielmodell des Ornithopters. Bisher sind alle Versuche des Schwebens und Fliegens aus eigener Kraft gescheitert. Wird bleiben auf dem Boden, treten in die Pedalen und rollen auf 2 Rädern am Rhein entlang.
}}
{{Scroll Gallery|title=Unterwegs im Rheingau
|timeDependent=
|File:Rheinufer Weinprobierstand Walluf.jpg|Weinprobierstand am Rhein in Walluf
|Image:Rheinaue Rheingau 619-hh.jpg|Rheinaue im [[Rheingau]] zwischen Walluf und Eltville. Durchblick zum anderen Rheinufer nach [[Rheinhessen]]
|File:Biedermeier-Pärchen und Kurfürstliche Burg Eltville.jpg|Biedermeier-Pärchen vor der Kurfürstlichen Burg in Eltville, links liegt der Rosengarten
|Image:Hattenheim Weinprobierstand 310-h.jpg|Hattenheim Weinprobierstand.
}}
Das Stadtzentrum von {{Marker | name = [[Wiesbaden]] | type= City | wikidata =Q1721 }} liegt abseits des Rheinufer. Wer Zeit für einen Aufenthaltstag in Mainz bzw. Wiesbaden hat: Eine Besichtigung lohnt. Tipp: Unbedingt den [[Neroberg]] besuchen.
* Stadtteile von [[Wiesbaden]] am Rheinufer:
** [[Wiesbaden/AKK|Mainz-Kastel]] − Theodor-Heuss-Brücke
** Mainz-Amöneburg − Über die Eisenbahnbrücke gelangt man zwar ans Mainzer Ufer, aber eingezäunte Industriegleise versperren die Fahrt nach Westen.
** Biebrich − Schloss Biebrich mit Schlossgarten, − Abzweig des Rheinradwegs zur Wiesbadener Innenstadt mit unvollständiger Ausschilderung.
** Schierstein − Hafen mit vielen Gartenlokalen.
* Walluf − Sonnstagsfähre nach Budenheim, Weinprobierstand, es folgt der schönste naturnahe Abschnitt des Rheins wenn man weiter geradeaus fährt. Folgt man der Beschilderung, wird man über die stark befahrene Landstraße geschickt. In Eltville gibt es keine Radwege.
* [[Eltville am Rhein]] − Rosengarten der Kurfürstlichen Burg, Weinprobierstand am Rheinufer.
** Erbach
** Hattenheim − Weinprobierstand am Rheinufer
* Oestrich-Winkel
** Oestrich − Alter Kran
** Mittelheim − Auto-Fähre nach [[Ingelheim|Ingelheim Frei-Weinheim]] <br> Offizielles Ende des rechtsrheinischen Rheinradwegs. Empfehlung: Weiterführung am Rhein auf dem neuen [[Hess. Radfernweg R3: Rhein - Main - Kinzig#Neuer R3 entlang des Rheins|Hess. Radfernweg R3]] bis Rüdesheim und dort die Fähre nach [[Bingen am Rhein|Bingen]] nehmen.
** Winkel
* [[Geisenheim]]
* Die Ausschilderung endet hinter dem Brückenbogen der ehemaligen Hindenburgbrücke. Von hier geht es links zum Rüdesheimer Ufer und dann am Schwimmbad vorbei.
* [[Rüdesheim am Rhein|Rüdesheim]] − Die Personen- und Autofähren nach [[Bingen am Rhein|Bingen]] sind am Ende der Stadt in Höhe des Bahnhofs.
==== Höhenvariante im Rheingau mit Kloster Eberbach ====
Variante für Pedelecnutzer: Ab Eltville zweigt eine Variante des Hessischen Radfernwegs R3 als "R3a" Richtung Kloster Eberbach ab. Die Strecke verläuft als bergige Panoramaroute durch die Weinberge. Teilweise werden allerdings Landstraßen genutzt. Ankerpunkt des R3a ist das zurecht viel besuchte {{Marker | name = [[Kloster Eberbach]] | type= see | wikidata = Q697766}}. Bei Rüdesheim kommt man wieder zurück an das Rheinufer.
===2. Etappe Bingen / Rüdesheim - Koblenz: etwa 65{{nnbsp}}km ===
'''Oberer Mittelrhein'''
Bisher floss der Rhein mit geringem Gefälle durch eine flache Talebene und hat ein Breite bis zu 800{{nnbsp}}m eingenommen. Ab Bingen stellte sich das Mittelgebirge dem Rhein entgegen. Der Strom hat sich hier ein Schroffes Druchsbruchstal geschaffen. Es wird eng, beidseitig wurden Eisenbahnen und Straßen angelegt. Verkehrslärm ist meist zu hören. Das Tal bietet eine Vielzahl an Sehenswürdigkeiten.
Wer mehr erleben möchte, sollte die Etappe halbieren und z.{{nnbsp}}B. in [[St. Goar]] oder auch [[St. Goarshausen]] noch einmal übernachten. Oder gleich einen Aufenthaltstag einlegen und die [[Loreley]] besuchen.
Der offizielle Rheinradweg der D-Route 8 verläuft im oberen Mittelrheintal als baulich durchgehende Strecke linksrheinisch. Dies ist die empfholene und bisher in der Regel auch meist genutzte Variante.
Wer auf die [[Loreley]] möchte kann von St. Goar einfach mit der Fähre übersetzen.
==== '''Linksrheinisch Bingen − Boppard − Koblenz''' ====
Wie bereits erwähnt gibt es hier bereits Seit Jahrzehnten eine durchgehende Radroute. Die linke Rheinseite ist auch belebter. Hier findet sich z.{{nnbsp}}B. die Stadt Boppard.
{{Scroll Gallery|title= Oberes Mittelrheintal: linksrheinisch
|Image:Bingen Nahemündung 213-dh.jpg|Blick auf die Nahemündung in [[Bingen am Rhein|Bingen]]
|Image:Bingen Hbf - Burgen 189-vfh.jpg|Blick von der Brücke zum [[Bingen am Rhein|Hauptbahnhof Bingen]]. Vorne die Spielburg im Park am Mäuseturm, hinter dem Stadtzentrum die Burg Klopp. Zwischen Park und Bahngleise verläuft der Rheinradweg.
|Image:Rhein-Auenwald - Ruine Ehrenfels 268-Fkh.jpg|Blick vom linksrheinischen Rheinradweg bei Bingerbrück über die Baumwipfel des Auenwalds auf die Weinberge des [[Rheingau]]s mit der Burgruine Ehrenfels bei [[Rüdesheim am Rhein|Rüdesheim]]
|Image:Bacharach hinter Bahndamm 638-zh.jpg|'''[[Bacharach]]''': Stadtfront mit Kranenturm hinter dem Bahndamm. Oben auf dem Bergfried die Burg Stahleck
|Image:Oberwesel 707-z.jpg|'''[[Oberwesel]]''': Roter Turm bzw. Haagsturm, dahinter die Liebfrauenkirche, auf dem Berg die Schönburg
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: '''[[Loreley]]''' mit Raddampfer "Gothe"
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem [[Koblenz|Koblenzer Zentrum]]
|Image:Deutsches Eck abends.jpg|'''[[Koblenz]]''': Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
{{Marker | name = [[Bingen]] | type= City | wikidata = Q285879}} Start der Etappe am Rhein-Nahe-Eck. Der Hauptbahnhof von Bingen ist nicht weit.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf den 13{{nnbsp}}km zwischen Bingen und Bacharach verläuft die Strecke als Uferweg schön '''direkt am Rhein'''. Von den Abgasen der Straße ist man so durch die Bahn getrennt. Der Weg ist meist gepflastert und geschätzt gute zwei Meter breit. Begegungen mit üblichen Kinderhängern und mehrspurigen Rädern sollten bis 0,9{{nnbsp}}m Breite kein Problem darstellen ([https://www.mapillary.com/app/?lat=49.986814600003&lng=7.8604652&z=18.485501411418436&pKey=2668133816656314&focus=photo&x=0.5109243006960521&y=0.39317697384295036&zoom=0 Bild Mapillary]). An den Ortskernen von Trechtingshausen und Niederheimbach fährt man am Ufer vorbei. Durch Bahnunterführungen sind Abstecher möglich. Hier im Bereich der Ortspromenaden bitte als Radfahrer entsprechend auf Fußgänger Rücksicht nehmen. Achtung: Die Strecke liegt im direkten Hochwasserbereich. Die Streckensperrungen bitte beachten. Dann bleibt leider nur die Nutzung der bedeutend höher liegenden, aber stark befahrenen Bundesstraße B 9 übrig.
:* {{Marker | name = [[Trechtingshausen]] | type= City | wikidata = Q680372}} - Hier südlich des Orts die alte Clemenskapelle und ein etwas spartanischer Rastplatz.
:* {{Marker | name = [[Niederheimbach]] | type= City | wikidata = Q17715}} - Südlich findet sich hier [https://www.burg-sooneck.com Burg Sooneck]. Aufgang / Auffahrt zur Anlage aus dem Bereich Niederheimbach. Burg wurde im 13. und im 17. Jahrhundert zerstört und im 19. Jahrhundert als Jagdburg wieder errichtet.
[[Datei:Bacharach Altkölnischer Hof 682-vh.jpg|mini|Fachwerkromantik in Bacharach]]
{{Marker | name = [[Bacharach]] | type= City | wikidata = Q523273}} - Kleiner aber sehenswerter Stadtkern. Hier lohnt in jedem Fall ein Abstecher bzw. erster Stopp: Historische Gebäudeensembles, eine intakte Stadtmauer, die Kirche St. Peter und die Ruinen der gotischen Kapelle St. Werner prägen die Stadt. Über der Stadt liegt die Burg Stahleck (heute Jugendherberge).
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Nun wechselt die Radroute nach oben an die Bundesstraße. Es gibt aber einen Grünstreifen mit sicherer Barriere zur Straße hin. Der Weg selbst dürfte geschätzt mindestens 2,5{{nnbsp}}m bis oft sogar 3,5{{nnbsp}}m bis 4{{nnbsp}}m Breit sein. [https://www.mapillary.com/app/?lat=50.07692762172394&lng=7.768815212463437&z=17.1445450252476&pKey=829508421743017&focus=photo&x=0.49219261145038246&y=0.5398155732875144&zoom=0 Wegmotiv von Mapillary]
{{Marker | name = [[Oberwesel]] | type= City | wikidata =Q668327}} - 3{{nnbsp}}km zum Teil begehbare mittelalterliche Stadtmauer mit 16 von 21 erhaltenen Wehrtürmen. Ruine Schönburg aus dem 12. Jh., Liebfrauenkirche (auch "rote Kirche" genannt) von 1308.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Zwischen Oberwesel und St. Goar Radweg '''ohne''' Barriere zur Bundesstraße. Der Bordstein wurde aber immerhin durch zwei weiße Linien hervorgehoben. Achtung trotzdem bei Fahrrad-Gegenverkehr, da Radweg geschätzt um die 2{{nnbsp}}m bis 2,3{{nnbsp}}m breit. [https://www.mapillary.com/app/?lat=50.1205664&lng=7.7244296&z=19.49243827846759&pKey=1193475767869481&focus=photo Wegmotiv von Mapillary]
{{Marker | name = [[St. Goar]] | type= City | wikidata =Q186037 }} - Sehenswerte Stiftskirche. Die Ruine der Burg Rheinfels erhebt sich hoch über dem Rhein. Fähre nach [[St. Goarshausen]], von dort die Loreley erreichbar.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf den 12{{nnbsp}}km außerorts zwischen St. Goar und Boppard ist der geräumige Radweg entweder durch einen Grünstreifen von der Straße getrennt ([https://www.mapillary.com/app/?lat=50.161147799997&lng=7.7027145&z=19.11348929071947&pKey=1810919355936159&focus=photo Bild Mappillary]) oder durch eine sichere Barriere ([https://www.mapillary.com/app/?lat=50.16569059999799&lng=7.696442898849455&z=18.20616798029146&pKey=100109852869771&focus=photo Wegmotiv von Mapillary]). Es gibt aber auch Bereiche wo die Strecke vermutlich nur per Borstein getrennt ist und geschätzt nur um die 2 bis 2,3{{nnbsp}}m Breit ist ([https://www.mapillary.com/app/?lat=50.171298&lng=7.6614836&z=19.158418759346016&pKey=1755421044820260&focus=photo&x=0.5096663297271463&y=0.48227391321224267&zoom=0 Bild Mapillary]).
:Ab Hirzenach wird die Radroute auf 6{{nnbsp}}km fast zu einer Art Radschnellweg: Gut asphaltiert, Barriere zur Straße. Eine weiße Trennlinie zeigt den Gehbereich zum Rhein hin an. Wenn man hier mal eine Rheinimpression knipsen möchte, gibt es also keinen Stress mit anderen Radfahrern ([https://www.mapillary.com/app/?lat=50.180148407519994&lng=7.641156881221491&z=12.812047896033965&pKey=599585545286641&focus=photo Bild breiter Radweg Höhe Bad Salzig]).
:Vor Boppard dann allerdings wieder Radweg um die 2 bis 2,3{{nnbsp}}m nur mit Bordstein. In Boppart geht es schön entlang es Ufer. Hier in Boppard Verkehrsberuhigter Bereich – also langsam fahren.
[[File:Vierseenblick boppard.jpg|miniatur|390px|Der Vierseenblick besteht aus 4 Teilen der Bopparder Rheinschleife]]
{{Marker | name = [[Boppard]] | type= City | wikidata =Q521148 }} − lebendige Stadt und Uferpromenade mit vielen schönen Häusern. Die Gastronomie lädt zur Einkehr ein. Ruinen der römischen Garnison Bodobriga, kurfürstliche Burg von 1327, Kirche St. Severus (12.-13. Jh.). Wer möchte kann mit dem [[Boppard#Panorama|Sessellift]] zum 4-Seen-Blick auffahren. Oben gibt es Gastronomie.
:Von Boppard fährt eine Bahn in den Hunsrück nach [[Emmelshausen]]. Von dort kann man auf einer ehemaligen Bahntrasse auf dem [[Schinderhannes-Radweg]] nach Simmern radeln.
[[Datei:Bundesstraße 9, Bopparder Hamm 20150514 1.jpg|mini|Blick rheinaufwärts: Breiter Radweg zwischen Boppard und Spay: Separation vom Fußverkehr und sichere Barriere zur Straße]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Zwischen Boppard und Spay wieder Radweg mit Barriere und oft auch schön breit.
{{Marker | name = Spay | type= City | wikidata =Q573555 }} - Kleines Dorf mit ein paar Einkehr- und Übernachtungsmöglichkeiten, [https://sonneneck-camping.de/ Campingplatz] südlich des Ortes.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Ab Ortseingang Spay '''schön idyllisch abseits des Kfz-Verkehrs direkt am Ufer entlang.''' Die Wege liegen teils im direkten Hochwasserbereich. Sie sind gut fahrbar gepflastert aber wohl in Teilen nur um die 2{{nnbsp}}m Breit. Bei Begegnungen acht geben ([https://www.mapillary.com/app/?lat=50.275705000000016&lng=7.630299722222162&z=17&pKey=490693195409488&focus=photo&x=0.4862930455227339&y=0.4651030811832513&zoom=0 Bild Mapillary, Blick stromaufwärts]). Es gibt schöne Blicke hinüber zur Marksburg bei [[Braubach]].
[[Datei:Historischer Ortskern Rhens.jpg|mini|Gastronomie im Ortskern Rhens]]
{{Marker | name = [[Rhens]] | type= City | wikidata = Q552498}} - Wer vor dem Trubel an der Rheinpromenade in Koblenz noch ein ruhigeres Ziel sucht, kann einen Abstecher in den historischen Kleinstadtkern machen. Es finden sich schmucke Fachwerkhäuser und auch Reste einer Stadtmauer. Einkehrmöglichkeiten am prachtvollen Fachwerkbau des Alten Rathauses. Am nahen Gebäude der Verbandsgemeindeverwaltung findet sich auch eine E-Bike-Ladestation. Knapp 1,5{{nnbsp}}km südlich des Ortskerns liegen ein [http://www.camping-freizeitzentrum-brey.de Campingplatz] und Lebenmittelmärkte für die Verpflegung.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Nördlich Rhens rückt {{Marker | name = Schloss Stolzenfels | type= castle | wikidata = Q833779 |url = https://tor-zum-welterbe.de/stolzenfels}} in den Blickpunkt. Die Anlage kann gegen Eintritt besichtigt werden. Der Rhein-Radweg bleibt zwischen Rhens und Koblenz direkt am Ufer. Teilweise etwas gröberes Pflaster, aber noch eingermaßen fahrbar. Im weiteren Verlauf auch wassergebundene Feinschotterdecken. Bald ist die belebte Rheinpromenade in Koblenz erreicht. Von hier ist es nicht mehr weit bis zum {{Marker | name = Deutschen Eck | type= see | wikidata = Q700785}}, dem Endpunkt dieser Etappe.
{{Marker | name = Koblenz | type= City | wikidata =Q3104}} - Deutsches Eck an der Moselmündung, Seilbahn zur Festung Ehrenbreitstein.
==== '''Rechtsrheinisch: Rüdeheim - St. Goarshausen - Koblenz''' ====
{{Scroll Gallery|title= Oberes Mittelrheintal: rechtsrheinisch
|Image:Rüdesheim Burgruine Ehrenfels 564-dh.jpg|Burgruine Ehrenfels am Historienweg zwischen [[Rüdesheim am Rhein|Rüdesheim]] und Assmannshausen unterhalb des Niederwalddenkmals mit Blick auf [[Bingen am Rhein|Bingen]]
|Image:Burg Rheinstein Trechtingshausen 995-Lh.jpg|Burg Rheinstein gegenüber Assmannshausen
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
}}
Zwischen Rüdesheim und Lahnstein gibt es bisher '''keinen durchgehenden Radweg.''' Große Teile der Strecke wurden als aufwendige, über den liegende Betonkostruktion aber bereits errichtet. Trotzdem gibt es immer noch einige längere Abschnitte, auf denen man auf die stark befahrene Bundesstraße muss. Ziel ist es bis 2029 zur Bundesgartenschau im Mittelrheintal auch hier eine sichere durchgehende Route zu bauen.
Der Abschnitt Rüdesheim - Lorch - Kaub ist mittlerweile sicher fahrbar. Lediglich bei Rüdesheim noch kurze 300{{nnbsp}}m lange Lücke, die aber mit Überholverbot für Kfz und Tempolimit abgesichert ist.
{{Marker | name = [[Rüdesheim]] | type= City | wikidata = Q628118}} - weltbekannte viel besuchte Stadt am Rhein mit Drosselgasse, Seilbahn zum Niederwald-Denkmal, viele Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> '''Radweg entlang der Bundesstraße B 42 nach Assmannshausen:''' Hier gibt es mittlerweile direkt an der B 42 einen fasst durchgehenden Radweg mit '''Barriere hin zur Bundestraße.''' Lediglich im Bereich der Fähre bei Rüdesheim besteht noch eine 300{{nnbsp}}m lange Lücke. Die neue Strecke nach Assmannshausen verläuft als sogenannter [[w:Kragarm|Kragarm]] überhängend über dem Rhein. Diese aufwendige Betonkonstruktion war notwendig, da es hier keinen Platz für einen Radweg gab. Die Bauzeit für den 11{{nnbsp}}km langen durchgehenden Radweg von Rüdesheim bis Lorch betrug 17 Jahre. Dabei wurde auch die Bundesstraße umfassend mit erneuert. Zur Bundesstraße hin ist der etwa 2,5{{nnbsp}}m breite Rad- und Gehweg mit einer Barriere sicher abgetrennt. Die Strecke ist mit gängigen Fahrradanhängern, wie Kinderhängern von 0,9{{nnbsp}}m Breite, befahrbar. Bei Gegenverkehr sollte, sofern alle etwas aufpassen, eine Begegung sicher möglich sein. [https://www.youtube.com/watch?v=_LscqGt_5AU Testvideo des HR auf Youtube mit Fahrt von Lorch nach Rüdesheim]
:'''Alternative Bergvariante Rüdeshein - Assmannshausen: Durch Weinberge und Wald nach Assmannshausen auf dem Historienweg'''
:Der Historienweg startet links am Parkplatz P2. Dort steht auch eine große Tafel. Der Weg führt oberhalb des Ortes durch die Weinberge und wird auch als Panoramaweg bezeichnet. Der Weg ist asphaltiert, hinter dem Naturdenkmal Ramstein ist er dann geschottert. Man sollte rechts hoch fahren und den höher gelegenen Parallelweg weiter fahren. Beide Wege führen dann vereinigt oberhalb der Burgruine Ehrenfels vorbei und sind ab dort grob geschottert. Ein idyllischer Rastplatz mit zwei im Boden versenkten Wasser- und Weinschächten mit Gläsern warten auf die Verkostung der edlen Tropfen. Weiter geht es durch ein Waldstück, um dann in den Assmannshäuser Weinbergen zu landen. Der mittelschwere Anstieg wird belohnt mit wundervollen Ausblicken.
[[Datei:Assmannshausen Blick verkl.jpg|mini|alternativtext=Blick auf Assmannshausen]]
{{Marker | name = [[Assmannshausen]] | type= City | wikidata = Q317535}} - GEmütliches, gern besuchtes Weindorf mit Einkehrmöglichkeiten. [https://www.niederwaldseilbahn.de/ Sessellift] auf die Höhe, von der Bergstation kann zu Fuß das Niederwalddenkmal erreicht werden.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auch zwischen Assmannhausen und Lorch besitzt die B 42 mittlerweile einen sicheren Radweg auf der Rheinseite. Ausbaubreite geschätzt 2,5{{nnbsp}}m '''mit sicherer Barriere zur Straße hin.'''
:Alternative zur Radweg an der B 42: Nach ca. 2{{nnbsp}}km geht eine Bahnunterführung zum Natur-Campingplatz Suleika. Gleich hinter der Bahn beginnt links die asphaltierte Alternative zur Straße. Es geht zunächst erst mal leicht bergauf und kommt dann in Lorch an der Kirche an.
{{Marker | name = [[Lorch am Rhein]] | type= City | wikidata = Q625783}} - Kleinstadt mit schönem Ortskern am Markt.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Zwischen Lorch und Kaub ebenfalls sicherer Radweg direkt über dem Rhein an der Bundesstraße. Unterwegs kommte man an {{Marker | name = Lorchhausen | type= City | wikidata = Q1619243}} vorbei. Das kleine Dorf gehört zur Stadt Lorch.
[[Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|thumb|250px|Zollburg Pfalzgrafenstein bei [[Kaub]]]]
{{Marker | name = [[Kaub]] | type= City | wikidata = Q540860}} Autofähre auf die linke Rheinseite, Zollburg Pfalzgrafenstein auf einer Rheininsel (Überfahrt per Boot möglich)
{{Marker | name = [[St. Goarshausen]] | type= City | wikidata = Q564757}} Hier liegt die bekannte [[Loreley]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Zwischen St. Goarshausen und Kestert gibt es auf den 5{{nnbsp}}km außerorts '''keinen''' durchgehenden und sicheren '''Radweg''' an der B 42. Teilweise gibt in einem kurzeren Bereich rheinseitig einen Hochbordweg mit geschätzten 1,8 bis 2{{nnbsp}}m Breite. Dieser besitzt allerdings zur Straße hin keine Barriere. Der Weg ist nicht als Radweg beschildert.
{{Marker | name = [[Kestert]] | type= City | wikidata = Q564653}} - kleines Dorf mit Einkehr- und übernachtungsmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Hier findet sich auf den 4{{nnbsp}}km außerorts ein als benutzungpflichtig beschilderter Geh- und Radweg. Die Strecke ist geschätzt um die 2{{nnbsp}}m breit. Allerdings fährt es sich nicht schön, wenn einem Kfz quasi direkt mit Tempo 100 entgegen kommen. Denn auch dieser Hochbordradweg besitzt '''keine sichere Barriere zur Bundesstraße hin.''' [https://www.mapillary.com/app/?lat=50.20979998226201&lng=7.635910898427028&z=19.19846991828831&pKey=4167100866686029&focus=photo Bild Mapillary Radweg Kestert - Kamp-Bornhofen]
{{Marker | name = [[Kamp-Bornhofen]] | type= City | wikidata =Q567183 }} typischer Dorf mit Mittelrheintal. Zwei Burgen als feindliche Brüder"
{{Marker | name = [[Braubach]] | type= City | wikidata = Q509038}} - Markburg noch über dem Rhein, Ein Besuch lohnt. Es handelt sich hier um die beste noch fast vollständig erhaltene "Ritterburg" am Mittelrhein.
{{Marker | name = [[Lahnstein]] | type= City | wikidata =Q569639 }}, Mündung der Lahn
[[Datei:Koblenz im Buga-Jahr 2011 - Rheinseilbahn 02.jpg|mini|Koblenz: Blick aus der Rheinseilbahn 2011 ]]
{{Marker | name = Koblenz | type= City | wikidata = Q3104 | show = copy }}, rechtsrheinisch liegt hier über dem Strom die Festung Ehrenbreitstein.
=== 3. Etappe: Koblenz - Bonn (etwa 65{{nnbsp}}km) ===
'''Unteres Mittelrheintal'''
Nachdem [[w:Neuwieder Becken|Neuwieder Becken]] wird das Rheintal ab Andernach wieder enger und schroffer. Erst vor Bonn geben die Berge den Rhein wieder frei.
Ob man besser links- oder rechtsrheinnisch radeln sollte? Nun, eine eindeutlige Empfohlung lässt sich hier nicht aussprechen. Es hängt z.{{nnbsp}}B. davon ab welche Sehenswürdkeiten einem interessieren. Aber es bestehen einige Rheinquerungen per Brücke und Fähre, so dass problemlos die Flussseite gewechselt werden werden kann.
==== Linksrheinisch ====
* '''Koblenz''' - Etappenstart am Deutschen Eck
* {{Marker | name = [[Weißenthurm]] | type= City | wikidata =Q541616 }}
* {{Marker | name = [[Andernach]] | type= City | wikidata = Q490058}} Histstadt mit Resten der Stadtmauer, belebte Promenade. Wer möchte kann den Kaltwassergysir besuchen. Für die Schiffstour mit Besuch des Infozentrum ist allerdings ausreichend Zeit einzuplanen.
* {{Marker | name = [[Bad Breisig]] | type= City | wikidata = Q541726}}
* {{Marker | name = [[Remagen]] | type= City | wikidata =Q486548 }}
* {{Marker | name = [[Bonn|Bad Godesberg]] | type= City | wikidata =Q153260 }} - Der Kurbereich der Stadt Bonn.
* {{Marker | name = [[Bonn]] | type= City | wikidata =Q586}}
==== rechtsrheinsich ====
[[Bild:Bonn,_vom_Drachenfels_gesehen.jpg|mini|350px|Blick aus dem Bereich des Drachenfels auf Königswinter und Bonn, rechts das Schloss Drachenburg]]
* '''Koblenz-Ehrenbreistein'''
* {{Marker | name = [[Vallendar]] | type= City | wikidata =Q536559 }}
* {{Marker | name = [[Bendorf]] | type= City | wikidata = Q708708 }}
* {{Marker | name = [[Neuwied]] | type= City | wikidata = Q3967 }} -Neuwieder Schloss mit Theater
* {{Marker | name = [[Bad Hönningen]] | type= City | wikidata = Q537973}} - Schloss Arenfels, Burg Ariendorf. Es gibt eine Personenfähre nach Bad Breisig.
* {{Marker | name = [[Linz am Rhein]] | type= City | wikidata = Q390125 }} -Historische Altstadt mit viel Fachwerk, Burgplatz, Rheintor Linz, Neutor Linz, kurfürstliche Burg
* {{Marker | name = [[Bad Honnef]] | type= City | wikidata = Q12434}} -
* {{Marker | name = [[Königswinter]] | type= City | wikidata = Q12444}} - Zahnradbahn auf den Drachenfels im [[Siebengebirge]].
* '''[[Bonn]]'''-Beul - über die Kennedybrücke ist schnell das Zentrum der Stadt erreicht.
<!-- == Weitere Übernachtungsorte == -->
== Sicherheit ==
Zum Teil enge Zweirichtungsradwege ohne bauliche Barriere zu Straße; Hier bei Gegenverkehr acht geben. Teilweise ist hier nur ein Bordstein vorhanden. Wenn gerade dann noch LKWs entgegen kommen kann es hier durch den Sog heikel werden.
Sofern kein Gegenverkehr auf dem Radweg, sollte man sich auf dem Weg am besten eher links halten um entsprechenden Abstand zum entgegenkommenden Kfz-Verkehr halten zu können. Problematisch wird es aber wenn Radverkehr entgegen kommt und man nah an den Bordstein muss. Und dann noch ein entgegenkommender LKW direkt auf der Straße mit seinem Windschlag - sicher ist was anderes.
== Weiter geht's ==
===== Fahrrad: =====
* [[Rhein-Radweg#Deutscher Niederrhein: ca. 250{{nnbsp}}km|Rhein-Radweg, Abschnitt '''Niederrhein''']]
===== Bahn: =====
* Bonn Hauptbahnhof − InterCity mit Fahrradreservierung (mind. stündlich), Regional-Express und Regionalbahnen.
** Stadtbahnen nach [[Köln]] und [[Siegburg]], Sperrzeiten für Fahrräder beachten.
* Bonn-Beuel − Regional-Express und Regionalbahn
Für die Fahrradmitnahme müssen in NRW immer Fahrradkarten gelöst werden, bei Fahrkarten des Rhein-Sieg-Verkehrsverbundes ist eine zusätzliche Fahrkarte der Preisstufe 1b (2,50 €) zu lösen.
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Broschüre '''Rhein-Radweg Band 1 - 3'''
**'''Band 3''': ''Von Mainz nach Rotterdam'' {{ISBN|3-85000-001-X}}
* Leporellos Rhein-Radweg '''Rhein-Radwanderkarte Leporello 2 bis 5'''
**'''Band 4''': ''Radwanderkarte - Radwanderkarte - LeporelloRhein-Radweg 4 Speyer - Köln'', 1:50.000, {{ISBN|978-3-89920-333-2}}
=== Digitale Karten ===
* [http://radservice.radroutenplaner.hessen.de/rrp/hessen/cgi?lang=DE&showThematicRoute=Rheinradweg%20-%20Veloroute%20Rhein Streckenverlauf im Radroutenplaner '''Hessen''']
== Weblinks ==
* Videos auf Commons: [[:File:Rheinauen Naturerbe Inselrhein.ogg]]
{{IstIn|Rhein-Radweg}}
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
njdr0yvm0k2h00bwu7eot37x2jzt7vr
1769158
1769157
2026-04-17T07:32:45Z
Dirk Schmidt
15181
1769158
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Deutschland}}
[[Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|thumb|325px|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen]]
Der '''Mittelrhein-Radweg''' ist ein Abschnitt des '''[[Rhein-Radweg]]es''' und führt von [[Mainz]] bzw. und dem Wiesbadener Stadtteil [[Wiesbaden/AKK|Mainz-Kastel]] über [[Rüdesheim am Rhein|Rüdesheim]], [[Bingen am Rhein|Bingen]] und [[Koblenz]] nach [[Bonn]].
Dieser Radreiseführer beschreibt die Strecke vom Stadtzentrum Mainz bis zum Stadtzentrum Bonn, weil dies gute Einstiegspunkte sind. Mit der Bahn sind beide Städte gut verbunden.
'''Achtung:''' Im Mittelrheintal gibt es bisher nur '''linksrheinisch''' zwischen Bingen und Koblenz einen durchgehenden Radweg. Rechtsrheinisch zwischen Rüdesheim und Koblenz bestehen noch ein paar Lücken. Hier muss aktuell teilweise noch die Bundesstraße genutzt werden. Es besteht der Plan, bis zur Bundesgartenschau 2029 diese Lücken zu schließen.
== Streckenprofil ==
[[Image:Logo Rhein 555-zGh.jpg|right|95px]]
[[Bild:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|95px]]
* '''Länge:''' etwa 160{{nnbsp}}km.
* '''Ausschilderung:''' Logo mit gelben Euroradler auf blauem Grund und der Bezeichnung „Rhein“, in Hessen „RHEIN RHIN“. Zwischenwegweiser bestehen in Rheinland Pfalz aus einem grünen Pfeil auf weißem Grund und sind oft schwer auszumachen. In Hessen ist der Rheinradweg nur bis Oestrich-Winkel ausgeschildert. Ab der Landesgrenze zu Nordrhein-Westfalen in Bad Godesberg und [[Bad Honnef]] wird der Rheinradweg als „Elebnisradweg Rheinschiene“ ausgeschildert.
* '''Steigungen:''' keine
* '''Wegzustand:''' gut, fast immer asphaltiert, ausgenommen Alternativwege
* '''Verkehrsbelastung:''' häufig neben stark befahrener Bundesstraße, an einigen Stellen auf der Bundesstraße. Rechtsrheinisch zwischen Rüdesheim und Koblenz noch kein durchgehender Radweg. Bis zur BUGA 2029 besteht der Plan die Lücken zu schließen.
* '''Geeignetes Fahrrad:''' 3-Gang
* '''Familieneignung:''' ja, aber an einigen Stellen erhebliche Verkehrsbelastung
* '''Inlinereignung:''' teilweise ja
== Hintergrund ==
Geografisch gehört der Rheingau noch zum Oberrhein. Erst ab Bingerbrück am Zufluss der Nahe bzw. an der Stromschnelle Bingerloch beginnt der Mittelrhein im beliebten [[Mittelrheintal]]. Das Mittelrheintal endet in Bad-Godesberg bei Bonn.
Wie bereits erwähnt: Dieser Radreiseführer beschreibt die Strecke vom Stadtzentrum Mainz bis zum Stadtzentrum Bonn, da dies gute Einstiegspunkte in den Abschnitt des Mittelrheins sind.
== Vorbereitung ==
{{mapframe|50.496|7.800|zoom=8}}
{{Mapshape|wikidata=Q1253779|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
Zeitlich lässt sich die Strecke Problemlos in '''zwei bzw. drei Tagesetappen''' an einem '''verlängertem Wochenende''' bewältigen. Allerdings verpasst man dann viel. Um den Streckenabschnitt auch kulturell zu erkunden, kann man inklusive Aufenthaltstagen durchaus eine Woche einplanen.
== Anreise ==
=== Mit der Bahn ===
Sowohl Mainz, wie auch Bonn sind gut in das Bahnetz eingebunden. Unterwegs wird das Tal auf beiden Seiten mit Bahnlinien begleitet.
*{{Marker | name = Mainz Hauptbahnhof| type= rail | wikidata = Q636700|url = https://www.bahnhof.de/mainz-hbf}} - ist in den Fernverkehr eingebunden. Zum Rheinufer: Vom Hauptbahnhof durch die Gärtnergasse und Große Langgasse fahren. Höhe {{Marker | name = Ludwigsstraße |name-map = Strecke Mainz Hauptbahnhof zum Rheinufer: Hier von der Große Langgasse in die Ludwigsstraße einbiegen. |type= waypoint |group = gold | lat = 49.998345 | long = 8.269414}} nach links in die Fußgängerzone abbiegen. Das langsame Radfahren mit Schritttempo ist gestattet. Sehenswert ist hier u. a. der '''Dom'''. Nach Querung der Rheinstraße erreicht man Höhe {{Marker | name = Fischtorplatz |type= waypoint |group = gold | lat = 50.000085 | long = 8.278837}} das Rheinufer.
'''Anreise Nahverkehr aus dem Rhein-Main-Gebiet:'''
* {{Marker | name = Bahnhof Mainz Römisches Theater | type= rail | wikidata = Q320339|url = https://www.bahnhof.de/mainz-roemisches-theater}} − S-Bahn S8 und Regionalbahnen. Zum Rheinufer: Von der Unterführung über den Zebrastreifen, durch das Haus und rechts in die Dagobertstraße bis vor die Brücke zum Winterhafen, dort aber links am Rheinufer stromabwärts.
* {{Marker | name = Bahnhof Mainz-Kastel | type= rail | wikidata = Q3074809|url = https://www.bahnhof.de/mainz-kastel}} − '''Achtung nur Treppen an den Bahnsteigen''' - Es verkehren die S1, S9 und StadtExpress aus Frankfurt oder Wiesbaden Hbf. Der Bahnhof liegt fast direkt am rechtsrheinischen Rheinradweg: Schranke südlich Bahnhofsgebäude überqueren dann ist man am Rheinufer mit Radweg.
Das Hessenticket für bis zu 5 Personen gilt rechtsrheinisch bis [[Lorch am Rhein|Lorchhausen]] und im gesamten Mainzer Stadtgebiet bei kostenloser Fahrradbeförderung.
Die '''Fahrradmitnahme''' ist in Rheinland-Pfalz ab 9 Uhr und am Wochenende ganztags kostenlos. Beim Übergang von einem anderen Bundesland muss ein Fahrradtageskarte für den Nahverkehr gelöst werden. Im hessischen [https://www.rmv.de RMV-Verbund] ist die Fahrradbeförderung generell kostenlos. RMV-Fahrkarten und Hessenticket gelten auch in Mainz.
Das [https://www.bahn.de/angebot/regio/laender-tickets/rheinland-pfalz-ticket Rheinland-Pfalz-Ticket] für 1 - 5 Personen gilt linksrheinisch über Rolandseck hinaus bis Bonn Hbf und rechtsrheinisch auch über Wiesbaden und Rüdesheim bis vor die Grenze zu NRW in Unkel.
=== Mit dem Fahrrad ===
[[Image:Wegweiser 611-h.jpg|thumb|upright|Zwischenwegweiser in Hessen]]
Linksrheinisch (Innenstadt Rheinufer):
* '''Rhein-Radweg (Oberrhein): Basel − Mainz''' von [[Worms]] über [[Oppenheim]]
Rechtsrheinisch (Mainz-Kastel):
* '''Rhein-Radweg (Oberrhein): Basel − Mainz''' von [[Mannheim]] über [[Ginsheim-Gustavsburg]] und Mainz-Kostheim.
* [[Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3]] von [[Frankfurt am Main|Frankfurt]] über [[Hochheim]]
* [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal]], Anschluss unter der Mainbrücke in Mainz-Kostheim an den Rhein- und Main-Radweg.
=== Auf der Straße ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Wer mit dem Auto anreist kommt allerdings per Bahn recht einfach zurück zum Wagen.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
===1. Etappe: Mainz / Wiesbaden - Bingen / Rüdesheim: etwa 35 bis 40{{nnbsp}}km ===
Der von Süden kommende Rhein macht am Zufluss des Mains einen Knick nach Westen. Der Strom verzweigt sich und fließt wieder zusammen, langgestreckte Inseln und Auen auch am Ufer bilden ein fast natürliches und abwechslungsreiches Gewässer. Aufgrund dieses breiten Stroms wird der Rhein hier auch als "Inselrhein" bezeichnet.
Am nördlichen Ufer, also rechtsrheinisch, breitet sich auf den Taunushängen der [[Rheingau]] aus. Südlich des breiten Stroms grenzt [[Rheinhessen]] hier an das linksrheinische Ufer.
==== Linksrheinisch in Rheinhessen: Mainz − Ingelheim − Bingen: 35{{nnbsp}}km ====
{{Scroll Gallery|title=Unterwegs in Rheinhessen
|timeDependent=
|File:Rheinuferweg Budenheim 487-h.jpg|Vom Fähranleger Budenheim geht geradeaus vor dem Sommerdeich ein schöner Weg durch Streuobstwiesen und später am Altrhein entlang.
|Image:Rheinufer Budenheim 494-h.jpg|Abzweig zum Rhein und auf die [http://www.auenservice.de/pdf/konigsklingerBro.pdf Haderaue] zwischen Budenheim und Heidenfahrt
|Image:Rheinhessen Rheinuferweg 828-zh.jpg|Der Rheinuferweg zwischen Budenheim und Heidenfahrt. Während der breite Weg links auf den offiziellen Rheinradweg zuläuft, um dann hinter dem Hauptdeich den Blick auf die Auenlandschaft zu versperren, führt der gerade aus laufende schmale Weg auf dem Sommerdeich kurz darauf auf den Altrheinarm, um dann als breiter Weg den Rheinarm zu begleiten.
|Image:Inselrhein Hindenburgbrücke 563-Gzh.jpg|Brückenkopf der im Krieg gesprengten Hindenburgbrücke über den Rhein nach Rüdesheim / Geisenheim bei Gaulsheim vor Bingen
|Image:Bingen Industriekran 573-Gh.jpg|Hafenpark am Kulturufer Bingen mit dem Industriekran
}}
Zwischen {{Marker | name = [[Mainz]] | type= City | wikidata = Q1720}} und [[Bingen am Rhein|Bingen]] ist der offizielle Rheinradweg meist recht eintönig. Wer aber einfach "Strecke" machen möchte, ist hier richtig.
Es geht von Mainz-Stadtmitte erst durchs Industriegebiet mit viel Kfz-Verkehr. Dann wird es ruhiger, geht aber durch Schrebergärten und Obstplantagen meist hinter dem Deich entlang. Die Strecke ist auf asphaltierten oder betonierten Wirtschaftswegen zwar meist gut fahrbar, aber Blicke auf den Rhein sind selten.
Der historisch bedeutsame Stadtkern von [[Ingelheim]] liegt abseits der Strecke. Aber ab {{Marker | name = Abzweig zum Alten Stadtkern Nieder-Ingelheim | type= waypoint |group = gold | lat = 50.001933| long = 8.074983 | show = noname}} ist ein Abstecher zur Kaiserpfalz im alten Ortskern von {{Marker | name = [[Ingelheim am Rhein#In Nieder-Ingelheim|Ortskern von Nieder-Ingelheim mit Resten der alten Kaiserpfalz]] | type= see | lat = 49.977628| long =8.072752 | show = noname }} '''Nieder-Ingelheim''' problemlos möglich (zwei Kilometer einfach). Es sind von der Kaiserpfalz noch frei zugängliche Mauerreste vorhanden. Ferner gibt es ein Museum.
'''Alternativwege näher am Rheinufer:''' Auf dieser Seite gibt es Alternativwege, die direkt oder in der Nähe des Ufers entlang laufen und bei trockenem Wetter gut befahrbar sind: Vom '''Mombacher Kreisel''' geht es an der Autobahnzufahrt rechts vorbei, ab der Autobahnbrücke auf dem Sommerdeich direkt an den Auwäldern entlang nach '''Budenheim'''. Ab der "Sonntags-Fähre Budenheim" sollte man nicht mehr dem ausgeschilderten Rheinradweg folgen, sondern den Weg rechts des Sommerdeichs nutzen. Hier erlebt man die Natur der Streuobstwiesen und Auenwälder. Wenn der breite Weg einen Linksknick macht, weiter geradeaus den Pfad nehmen, man kommt kurz darauf auf breitem Weg am Altrheinarm an und landet dann in '''Heidenfahrt'''. Auch hier wieder am Ufer bleiben bis zum Hafen in '''[[Ingelheim am Rhein|Ingelheim Frei-Weinheim]]'''. Zwischen Hafenbecken und Deich geht wiederum in Rheinnähe ein breiter Weg bis '''[[Bingen am Rhein|Bingen]]'''.
Sonntags wird es am Rhein allerdings sehr eng. · Details siehe auch: [https://www.radreise-wiki.de/Rhein#Mainz Radreise-Wiki]
==== Fähre Rüdesheim − Bingen ====
* Von [[Bingen am Rhein|Bingen Hafen]] fährt eine Autofähre nach [[Rüdesheim am Rhein|Rüdesheim Bahnhof]] alle 20 - 30 min. bis 21.45 Uhr, im Sommer alle 10 - 30 min. bis Mitternacht. · [http://www.bingen-ruedesheimer.com/rheinfaehren/index.html Fahrplan]
* Von [[Bingen am Rhein|Bingen Brücke 5]] fährt eine Personenfähre nach [[Rüdesheim am Rhein|Rüdesheim Brücke 19]] montags bis freitags stündlich bis 18 Uhr. Im Sommer (1. Mai - 31. Okt.) fährt sie täglich alle 40 min. bis ca. 22 Uhr. · [http://www.bingen-ruedesheimer.com/rheinfaehren/index.html Fahrplan] − empfohlene Fähre
====Rechtsrheinisch im Rheingau: Mainz-Kastel − Eltville − Rüdesheim: 34{{nnbsp}}km ====
{{Scroll Gallery|title=Ufer bei Wiesbaden
|Image:Bastion von Schönborn Strand Mainz-Kastel 405-h.jpg|Noch schnell ein Sonnenbad in Mainz-Kastel, bevor es auf die Reise zur kühlen Nordsee geht. Nach Biebrich geht es unter die Theodor-Heuss-Brücke.
|Image:Mainz-Kastel Ornithopter 379-zh.jpg|Spielmodell des Ornithopters. Bisher sind alle Versuche des Schwebens und Fliegens aus eigener Kraft gescheitert. Wird bleiben auf dem Boden, treten in die Pedalen und rollen auf 2 Rädern am Rhein entlang.
}}
{{Scroll Gallery|title=Unterwegs im Rheingau
|timeDependent=
|File:Rheinufer Weinprobierstand Walluf.jpg|Weinprobierstand am Rhein in Walluf
|Image:Rheinaue Rheingau 619-hh.jpg|Rheinaue im [[Rheingau]] zwischen Walluf und Eltville. Durchblick zum anderen Rheinufer nach [[Rheinhessen]]
|File:Biedermeier-Pärchen und Kurfürstliche Burg Eltville.jpg|Biedermeier-Pärchen vor der Kurfürstlichen Burg in Eltville, links liegt der Rosengarten
|Image:Hattenheim Weinprobierstand 310-h.jpg|Hattenheim Weinprobierstand.
}}
Das Stadtzentrum von {{Marker | name = [[Wiesbaden]] | type= City | wikidata =Q1721 }} liegt abseits des Rheinufer. Wer Zeit für einen Aufenthaltstag in Mainz bzw. Wiesbaden hat: Eine Besichtigung lohnt. Tipp: Unbedingt den [[Neroberg]] besuchen.
* Stadtteile von [[Wiesbaden]] am Rheinufer:
** [[Wiesbaden/AKK|Mainz-Kastel]] − Theodor-Heuss-Brücke
** Mainz-Amöneburg − Über die Eisenbahnbrücke gelangt man zwar ans Mainzer Ufer, aber eingezäunte Industriegleise versperren die Fahrt nach Westen.
** Biebrich − Schloss Biebrich mit Schlossgarten, − Abzweig des Rheinradwegs zur Wiesbadener Innenstadt mit unvollständiger Ausschilderung.
** Schierstein − Hafen mit vielen Gartenlokalen.
* Walluf − Sonnstagsfähre nach Budenheim, Weinprobierstand, es folgt der schönste naturnahe Abschnitt des Rheins wenn man weiter geradeaus fährt. Folgt man der Beschilderung, wird man über die stark befahrene Landstraße geschickt. In Eltville gibt es keine Radwege.
* [[Eltville am Rhein]] − Rosengarten der Kurfürstlichen Burg, Weinprobierstand am Rheinufer.
** Erbach
** Hattenheim − Weinprobierstand am Rheinufer
* Oestrich-Winkel
** Oestrich − Alter Kran
** Mittelheim − Auto-Fähre nach [[Ingelheim|Ingelheim Frei-Weinheim]] <br> Offizielles Ende des rechtsrheinischen Rheinradwegs. Empfehlung: Weiterführung am Rhein auf dem neuen [[Hess. Radfernweg R3: Rhein - Main - Kinzig#Neuer R3 entlang des Rheins|Hess. Radfernweg R3]] bis Rüdesheim und dort die Fähre nach [[Bingen am Rhein|Bingen]] nehmen.
** Winkel
* [[Geisenheim]]
* Die Ausschilderung endet hinter dem Brückenbogen der ehemaligen Hindenburgbrücke. Von hier geht es links zum Rüdesheimer Ufer und dann am Schwimmbad vorbei.
* [[Rüdesheim am Rhein|Rüdesheim]] − Die Personen- und Autofähren nach [[Bingen am Rhein|Bingen]] sind am Ende der Stadt in Höhe des Bahnhofs.
==== Höhenvariante im Rheingau mit Kloster Eberbach ====
Variante für Pedelecnutzer: Ab Eltville zweigt eine Variante des Hessischen Radfernwegs R3 als "R3a" Richtung Kloster Eberbach ab. Die Strecke verläuft als bergige Panoramaroute durch die Weinberge. Teilweise werden allerdings Landstraßen genutzt. Ankerpunkt des R3a ist das zurecht viel besuchte {{Marker | name = [[Kloster Eberbach]] | type= see | wikidata = Q697766}}. Bei Rüdesheim kommt man wieder zurück an das Rheinufer.
===2. Etappe Bingen / Rüdesheim - Koblenz: etwa 65{{nnbsp}}km ===
'''Oberer Mittelrhein'''
Bisher floss der Rhein mit geringem Gefälle durch eine flache Talebene und hat ein Breite bis zu 800{{nnbsp}}m eingenommen. Ab Bingen stellte sich das Mittelgebirge dem Rhein entgegen. Der Strom hat sich hier ein Schroffes Druchsbruchstal geschaffen. Es wird eng, beidseitig wurden Eisenbahnen und Straßen angelegt. Verkehrslärm ist meist zu hören. Das Tal bietet eine Vielzahl an Sehenswürdigkeiten.
Wer mehr erleben möchte, sollte die Etappe halbieren und z.{{nnbsp}}B. in [[St. Goar]] oder auch [[St. Goarshausen]] noch einmal übernachten. Oder gleich einen Aufenthaltstag einlegen und die [[Loreley]] besuchen.
Der offizielle Rheinradweg der D-Route 8 verläuft im oberen Mittelrheintal als baulich durchgehende Strecke linksrheinisch. Dies ist die empfholene und bisher in der Regel auch meist genutzte Variante.
Wer auf die [[Loreley]] möchte kann von St. Goar einfach mit der Fähre übersetzen.
==== '''Linksrheinisch Bingen − Boppard − Koblenz''' ====
Wie bereits erwähnt gibt es hier bereits Seit Jahrzehnten eine durchgehende Radroute. Die linke Rheinseite ist auch belebter. Hier findet sich z.{{nnbsp}}B. die Stadt Boppard.
{{Scroll Gallery|title= Oberes Mittelrheintal: linksrheinisch
|Image:Bingen Nahemündung 213-dh.jpg|Blick auf die Nahemündung in [[Bingen am Rhein|Bingen]]
|Image:Bingen Hbf - Burgen 189-vfh.jpg|Blick von der Brücke zum [[Bingen am Rhein|Hauptbahnhof Bingen]]. Vorne die Spielburg im Park am Mäuseturm, hinter dem Stadtzentrum die Burg Klopp. Zwischen Park und Bahngleise verläuft der Rheinradweg.
|Image:Rhein-Auenwald - Ruine Ehrenfels 268-Fkh.jpg|Blick vom linksrheinischen Rheinradweg bei Bingerbrück über die Baumwipfel des Auenwalds auf die Weinberge des [[Rheingau]]s mit der Burgruine Ehrenfels bei [[Rüdesheim am Rhein|Rüdesheim]]
|Image:Bacharach hinter Bahndamm 638-zh.jpg|'''[[Bacharach]]''': Stadtfront mit Kranenturm hinter dem Bahndamm. Oben auf dem Bergfried die Burg Stahleck
|Image:Oberwesel 707-z.jpg|'''[[Oberwesel]]''': Roter Turm bzw. Haagsturm, dahinter die Liebfrauenkirche, auf dem Berg die Schönburg
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: '''[[Loreley]]''' mit Raddampfer "Gothe"
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem [[Koblenz|Koblenzer Zentrum]]
|Image:Deutsches Eck abends.jpg|'''[[Koblenz]]''': Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
{{Marker | name = [[Bingen]] | type= City | wikidata = Q285879}} Start der Etappe am Rhein-Nahe-Eck. Der Hauptbahnhof von Bingen ist nicht weit.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf den 13{{nnbsp}}km zwischen Bingen und Bacharach verläuft die Strecke als Uferweg schön '''direkt am Rhein'''. Von den Abgasen der Straße ist man so durch die Bahn getrennt. Der Weg ist meist gepflastert und geschätzt gute zwei Meter breit. Begegungen mit üblichen Kinderhängern und mehrspurigen Rädern sollten bis 0,9{{nnbsp}}m Breite kein Problem darstellen ([https://www.mapillary.com/app/?lat=49.986814600003&lng=7.8604652&z=18.485501411418436&pKey=2668133816656314&focus=photo&x=0.5109243006960521&y=0.39317697384295036&zoom=0 Bild Mapillary]). An den Ortskernen von Trechtingshausen und Niederheimbach fährt man am Ufer vorbei. Durch Bahnunterführungen sind Abstecher möglich. Hier im Bereich der Ortspromenaden bitte als Radfahrer entsprechend auf Fußgänger Rücksicht nehmen. Achtung: Die Strecke liegt im direkten Hochwasserbereich. Die Streckensperrungen bitte beachten. Dann bleibt leider nur die Nutzung der bedeutend höher liegenden, aber stark befahrenen Bundesstraße B 9 übrig.
:* {{Marker | name = [[Trechtingshausen]] | type= City | wikidata = Q680372}} - Hier südlich des Orts die alte Clemenskapelle und ein etwas spartanischer Rastplatz.
:* {{Marker | name = [[Niederheimbach]] | type= City | wikidata = Q17715}} - Südlich findet sich hier [https://www.burg-sooneck.com Burg Sooneck]. Aufgang / Auffahrt zur Anlage aus dem Bereich Niederheimbach. Burg wurde im 13. und im 17. Jahrhundert zerstört und im 19. Jahrhundert als Jagdburg wieder errichtet.
[[Datei:Bacharach Altkölnischer Hof 682-vh.jpg|mini|Fachwerkromantik in Bacharach]]
{{Marker | name = [[Bacharach]] | type= City | wikidata = Q523273}} - Kleiner aber sehenswerter Stadtkern. Hier lohnt in jedem Fall ein Abstecher bzw. erster Stopp: Historische Gebäudeensembles, eine intakte Stadtmauer, die Kirche St. Peter und die Ruinen der gotischen Kapelle St. Werner prägen die Stadt. Über der Stadt liegt die Burg Stahleck (heute Jugendherberge).
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Nun wechselt die Radroute nach oben an die Bundesstraße. Es gibt aber einen Grünstreifen mit sicherer Barriere zur Straße hin. Der Weg selbst dürfte geschätzt mindestens 2,5{{nnbsp}}m bis oft sogar 3,5{{nnbsp}}m bis 4{{nnbsp}}m Breit sein. [https://www.mapillary.com/app/?lat=50.07692762172394&lng=7.768815212463437&z=17.1445450252476&pKey=829508421743017&focus=photo&x=0.49219261145038246&y=0.5398155732875144&zoom=0 Wegmotiv von Mapillary]
{{Marker | name = [[Oberwesel]] | type= City | wikidata =Q668327}} - 3{{nnbsp}}km zum Teil begehbare mittelalterliche Stadtmauer mit 16 von 21 erhaltenen Wehrtürmen. Ruine Schönburg aus dem 12. Jh., Liebfrauenkirche (auch "rote Kirche" genannt) von 1308.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Zwischen Oberwesel und St. Goar Radweg '''ohne''' Barriere zur Bundesstraße. Der Bordstein wurde aber immerhin durch zwei weiße Linien hervorgehoben. Achtung trotzdem bei Fahrrad-Gegenverkehr, da Radweg geschätzt um die 2{{nnbsp}}m bis 2,3{{nnbsp}}m breit. [https://www.mapillary.com/app/?lat=50.1205664&lng=7.7244296&z=19.49243827846759&pKey=1193475767869481&focus=photo Wegmotiv von Mapillary]
{{Marker | name = [[St. Goar]] | type= City | wikidata =Q186037 }} - Sehenswerte Stiftskirche. Die Ruine der Burg Rheinfels erhebt sich hoch über dem Rhein. Fähre nach [[St. Goarshausen]], von dort die Loreley erreichbar.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf den 12{{nnbsp}}km außerorts zwischen St. Goar und Boppard ist der geräumige Radweg entweder durch einen Grünstreifen von der Straße getrennt ([https://www.mapillary.com/app/?lat=50.161147799997&lng=7.7027145&z=19.11348929071947&pKey=1810919355936159&focus=photo Bild Mappillary]) oder durch eine sichere Barriere ([https://www.mapillary.com/app/?lat=50.16569059999799&lng=7.696442898849455&z=18.20616798029146&pKey=100109852869771&focus=photo Wegmotiv von Mapillary]). Es gibt aber auch Bereiche wo die Strecke vermutlich nur per Borstein getrennt ist und geschätzt nur um die 2 bis 2,3{{nnbsp}}m Breit ist ([https://www.mapillary.com/app/?lat=50.171298&lng=7.6614836&z=19.158418759346016&pKey=1755421044820260&focus=photo&x=0.5096663297271463&y=0.48227391321224267&zoom=0 Bild Mapillary]).
:Ab Hirzenach wird die Radroute auf 6{{nnbsp}}km fast zu einer Art Radschnellweg: Gut asphaltiert, Barriere zur Straße. Eine weiße Trennlinie zeigt den Gehbereich zum Rhein hin an. Wenn man hier mal eine Rheinimpression knipsen möchte, gibt es also keinen Stress mit anderen Radfahrern ([https://www.mapillary.com/app/?lat=50.180148407519994&lng=7.641156881221491&z=12.812047896033965&pKey=599585545286641&focus=photo Bild breiter Radweg Höhe Bad Salzig]).
:Vor Boppard dann allerdings wieder Radweg um die 2 bis 2,3{{nnbsp}}m nur mit Bordstein. In Boppart geht es schön entlang es Ufer. Hier in Boppard Verkehrsberuhigter Bereich – also langsam fahren.
[[File:Vierseenblick boppard.jpg|miniatur|390px|Der Vierseenblick besteht aus 4 Teilen der Bopparder Rheinschleife]]
{{Marker | name = [[Boppard]] | type= City | wikidata =Q521148 }} − lebendige Stadt und Uferpromenade mit vielen schönen Häusern. Die Gastronomie lädt zur Einkehr ein. Ruinen der römischen Garnison Bodobriga, kurfürstliche Burg von 1327, Kirche St. Severus (12.-13. Jh.). Wer möchte kann mit dem [[Boppard#Panorama|Sessellift]] zum 4-Seen-Blick auffahren. Oben gibt es Gastronomie.
:Von Boppard fährt eine Bahn in den Hunsrück nach [[Emmelshausen]]. Von dort kann man auf einer ehemaligen Bahntrasse auf dem [[Schinderhannes-Radweg]] nach Simmern radeln.
[[Datei:Bundesstraße 9, Bopparder Hamm 20150514 1.jpg|mini|Blick rheinaufwärts: Breiter Radweg zwischen Boppard und Spay: Separation vom Fußverkehr und sichere Barriere zur Straße]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Zwischen Boppard und Spay wieder Radweg mit Barriere und oft auch schön breit.
{{Marker | name = Spay | type= City | wikidata =Q573555 }} - Kleines Dorf mit ein paar Einkehr- und Übernachtungsmöglichkeiten, [https://sonneneck-camping.de/ Campingplatz] südlich des Ortes.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Ab Ortseingang Spay '''schön idyllisch abseits des Kfz-Verkehrs direkt am Ufer entlang.''' Die Wege liegen teils im direkten Hochwasserbereich. Sie sind gut fahrbar gepflastert aber wohl in Teilen nur um die 2{{nnbsp}}m Breit. Bei Begegnungen acht geben ([https://www.mapillary.com/app/?lat=50.275705000000016&lng=7.630299722222162&z=17&pKey=490693195409488&focus=photo&x=0.4862930455227339&y=0.4651030811832513&zoom=0 Bild Mapillary, Blick stromaufwärts]). Es gibt schöne Blicke hinüber zur Marksburg bei [[Braubach]].
[[Datei:Historischer Ortskern Rhens.jpg|mini|Gastronomie im Ortskern Rhens]]
{{Marker | name = [[Rhens]] | type= City | wikidata = Q552498}} - Wer vor dem Trubel an der Rheinpromenade in Koblenz noch ein ruhigeres Ziel sucht, kann einen Abstecher in den historischen Kleinstadtkern machen. Es finden sich schmucke Fachwerkhäuser und auch Reste einer Stadtmauer. Einkehrmöglichkeiten am prachtvollen Fachwerkbau des Alten Rathauses. Am nahen Gebäude der Verbandsgemeindeverwaltung findet sich auch eine E-Bike-Ladestation. Knapp 1,5{{nnbsp}}km südlich des Ortskerns liegen ein [http://www.camping-freizeitzentrum-brey.de Campingplatz] und Lebenmittelmärkte für die Verpflegung.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Nördlich Rhens rückt {{Marker | name = Schloss Stolzenfels | type= castle | wikidata = Q833779 |url = https://tor-zum-welterbe.de/stolzenfels}} in den Blickpunkt. Die Anlage kann gegen Eintritt besichtigt werden. Der Rhein-Radweg bleibt zwischen Rhens und Koblenz direkt am Ufer. Teilweise etwas gröberes Pflaster, aber noch eingermaßen fahrbar. Im weiteren Verlauf auch wassergebundene Feinschotterdecken. Bald ist die belebte Rheinpromenade in Koblenz erreicht. Von hier ist es nicht mehr weit bis zum {{Marker | name = Deutschen Eck | type= see | wikidata = Q700785}}, dem Endpunkt dieser Etappe.
{{Marker | name = Koblenz | type= City | wikidata =Q3104}} - Deutsches Eck an der Moselmündung, Seilbahn zur Festung Ehrenbreitstein.
==== '''Rechtsrheinisch: Rüdeheim - St. Goarshausen - Koblenz''' ====
{{Scroll Gallery|title= Oberes Mittelrheintal: rechtsrheinisch
|Image:Rüdesheim Burgruine Ehrenfels 564-dh.jpg|Burgruine Ehrenfels am Historienweg zwischen [[Rüdesheim am Rhein|Rüdesheim]] und Assmannshausen unterhalb des Niederwalddenkmals mit Blick auf [[Bingen am Rhein|Bingen]]
|Image:Burg Rheinstein Trechtingshausen 995-Lh.jpg|Burg Rheinstein gegenüber Assmannshausen
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
}}
Zwischen Rüdesheim und Lahnstein gibt es bisher '''keinen durchgehenden Radweg.''' Große Teile der Strecke wurden als aufwendige, über den liegende Betonkostruktion aber bereits errichtet. Trotzdem gibt es immer noch einige längere Abschnitte, auf denen man auf die stark befahrene Bundesstraße muss. Ziel ist es bis 2029 zur Bundesgartenschau im Mittelrheintal auch hier eine sichere durchgehende Route zu bauen.
Der Abschnitt Rüdesheim - Lorch - Kaub ist mittlerweile sicher fahrbar. Lediglich bei Rüdesheim noch kurze 300{{nnbsp}}m lange Lücke, die aber mit Überholverbot für Kfz und Tempolimit abgesichert ist.
{{Marker | name = [[Rüdesheim]] | type= City | wikidata = Q628118}} - weltbekannte viel besuchte Stadt am Rhein mit Drosselgasse, Seilbahn zum Niederwald-Denkmal, viele Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> '''Radweg entlang der Bundesstraße B 42 nach Assmannshausen:''' Hier gibt es mittlerweile direkt an der B 42 einen fasst durchgehenden Radweg mit '''Barriere hin zur Bundestraße.''' Lediglich im Bereich der Fähre bei Rüdesheim besteht noch eine 300{{nnbsp}}m lange Lücke. Die neue Strecke nach Assmannshausen verläuft als sogenannter [[w:Kragarm|Kragarm]] überhängend über dem Rhein. Diese aufwendige Betonkonstruktion war notwendig, da es hier keinen Platz für einen Radweg gab. Die Bauzeit für den 11{{nnbsp}}km langen durchgehenden Radweg von Rüdesheim bis Lorch betrug 17 Jahre. Dabei wurde auch die Bundesstraße umfassend mit erneuert. Zur Bundesstraße hin ist der etwa 2,5{{nnbsp}}m breite Rad- und Gehweg mit einer Barriere sicher abgetrennt. Die Strecke ist mit gängigen Fahrradanhängern, wie Kinderhängern von 0,9{{nnbsp}}m Breite, befahrbar. Bei Gegenverkehr sollte, sofern alle etwas aufpassen, eine Begegung sicher möglich sein. [https://www.youtube.com/watch?v=_LscqGt_5AU Testvideo des HR auf Youtube mit Fahrt von Lorch nach Rüdesheim]
:'''Alternative Bergvariante Rüdeshein - Assmannshausen: Durch Weinberge und Wald nach Assmannshausen auf dem Historienweg'''
:Der Historienweg startet links am Parkplatz P2. Dort steht auch eine große Tafel. Der Weg führt oberhalb des Ortes durch die Weinberge und wird auch als Panoramaweg bezeichnet. Der Weg ist asphaltiert, hinter dem Naturdenkmal Ramstein ist er dann geschottert. Man sollte rechts hoch fahren und den höher gelegenen Parallelweg weiter fahren. Beide Wege führen dann vereinigt oberhalb der Burgruine Ehrenfels vorbei und sind ab dort grob geschottert. Ein idyllischer Rastplatz mit zwei im Boden versenkten Wasser- und Weinschächten mit Gläsern warten auf die Verkostung der edlen Tropfen. Weiter geht es durch ein Waldstück, um dann in den Assmannshäuser Weinbergen zu landen. Der mittelschwere Anstieg wird belohnt mit wundervollen Ausblicken.
[[Datei:Assmannshausen Blick verkl.jpg|mini|alternativtext=Blick auf Assmannshausen]]
{{Marker | name = [[Assmannshausen]] | type= City | wikidata = Q317535}} - GEmütliches, gern besuchtes Weindorf mit Einkehrmöglichkeiten. [https://www.niederwaldseilbahn.de/ Sessellift] auf die Höhe, von der Bergstation kann zu Fuß das Niederwalddenkmal erreicht werden.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auch zwischen Assmannhausen und Lorch besitzt die B 42 mittlerweile einen sicheren Radweg auf der Rheinseite. Ausbaubreite geschätzt 2,5{{nnbsp}}m '''mit sicherer Barriere zur Straße hin.'''
:Alternative zur Radweg an der B 42: Nach ca. 2{{nnbsp}}km geht eine Bahnunterführung zum Natur-Campingplatz Suleika. Gleich hinter der Bahn beginnt links die asphaltierte Alternative zur Straße. Es geht zunächst erst mal leicht bergauf und kommt dann in Lorch an der Kirche an.
{{Marker | name = [[Lorch am Rhein]] | type= City | wikidata = Q625783}} - Kleinstadt mit schönem Ortskern am Markt.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Zwischen Lorch und Kaub ebenfalls sicherer Radweg direkt über dem Rhein an der Bundesstraße. Unterwegs kommte man an {{Marker | name = Lorchhausen | type= City | wikidata = Q1619243}} vorbei. Das kleine Dorf gehört zur Stadt Lorch.
[[Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|thumb|250px|Zollburg Pfalzgrafenstein bei [[Kaub]]]]
{{Marker | name = [[Kaub]] | type= City | wikidata = Q540860}} Autofähre auf die linke Rheinseite, Zollburg Pfalzgrafenstein auf einer Rheininsel (Überfahrt per Boot möglich)
{{Marker | name = [[St. Goarshausen]] | type= City | wikidata = Q564757}} Hier liegt die bekannte [[Loreley]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Zwischen St. Goarshausen und Kestert gibt es auf den 5{{nnbsp}}km außerorts '''keinen''' durchgehenden und sicheren '''Radweg''' an der B 42. Teilweise gibt in einem kurzeren Bereich rheinseitig einen Hochbordweg mit geschätzten 1,8 bis 2{{nnbsp}}m Breite. Dieser besitzt allerdings zur Straße hin keine Barriere. Der Weg ist nicht als Radweg beschildert.
{{Marker | name = [[Kestert]] | type= City | wikidata = Q564653}} - kleines Dorf mit Einkehr- und übernachtungsmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Hier findet sich auf den 4{{nnbsp}}km außerorts ein als benutzungpflichtig beschilderter Geh- und Radweg. Die Strecke ist geschätzt um die 2{{nnbsp}}m breit. Allerdings fährt es sich nicht schön, wenn einem Kfz quasi direkt mit Tempo 100 entgegen kommen. Denn auch dieser Hochbordradweg besitzt '''keine sichere Barriere zur Bundesstraße hin.''' [https://www.mapillary.com/app/?lat=50.20979998226201&lng=7.635910898427028&z=19.19846991828831&pKey=4167100866686029&focus=photo Bild Mapillary Radweg Kestert - Kamp-Bornhofen]
{{Marker | name = [[Kamp-Bornhofen]] | type= City | wikidata =Q567183 }} typischer Dorf mit Mittelrheintal. Zwei Burgen als feindliche Brüder"
{{Marker | name = [[Braubach]] | type= City | wikidata = Q509038}} - Markburg noch über dem Rhein, Ein Besuch lohnt. Es handelt sich hier um die beste noch fast vollständig erhaltene "Ritterburg" am Mittelrhein.
{{Marker | name = [[Lahnstein]] | type= City | wikidata =Q569639 }}, Mündung der Lahn
[[Datei:Koblenz im Buga-Jahr 2011 - Rheinseilbahn 02.jpg|mini|Koblenz: Blick aus der Rheinseilbahn 2011 ]]
{{Marker | name = Koblenz | type= City | wikidata = Q3104 | show = copy }}, rechtsrheinisch liegt hier über dem Strom die Festung Ehrenbreitstein.
=== 3. Etappe: Koblenz - Bonn (etwa 65{{nnbsp}}km) ===
'''Unteres Mittelrheintal'''
Nachdem [[w:Neuwieder Becken|Neuwieder Becken]] wird das Rheintal ab Andernach wieder enger und schroffer. Erst vor Bonn geben die Berge den Rhein wieder frei.
Ob man besser links- oder rechtsrheinnisch radeln sollte? Nun, eine eindeutlige Empfohlung lässt sich hier nicht aussprechen. Es hängt z.{{nnbsp}}B. davon ab welche Sehenswürdkeiten einem interessieren. Aber es bestehen einige Rheinquerungen per Brücke und Fähre, so dass problemlos die Flussseite gewechselt werden werden kann.
==== Linksrheinisch ====
* '''Koblenz''' - Etappenstart am Deutschen Eck
* {{Marker | name = [[Weißenthurm]] | type= City | wikidata =Q541616 }}
* {{Marker | name = [[Andernach]] | type= City | wikidata = Q490058}} Histstadt mit Resten der Stadtmauer, belebte Promenade. Wer möchte kann den Kaltwassergysir besuchen. Für die Schiffstour mit Besuch des Infozentrum ist allerdings ausreichend Zeit einzuplanen.
* {{Marker | name = [[Bad Breisig]] | type= City | wikidata = Q541726}}
* {{Marker | name = [[Remagen]] | type= City | wikidata =Q486548 }}
* {{Marker | name = [[Bonn|Bad Godesberg]] | type= City | wikidata =Q153260 }} - Der Kurbereich der Stadt Bonn.
* {{Marker | name = [[Bonn]] | type= City | wikidata =Q586}}
==== rechtsrheinsich ====
[[Bild:Bonn,_vom_Drachenfels_gesehen.jpg|mini|350px|Blick aus dem Bereich des Drachenfels auf Königswinter und Bonn, rechts das Schloss Drachenburg]]
* '''Koblenz-Ehrenbreistein'''
* {{Marker | name = [[Vallendar]] | type= City | wikidata =Q536559 }}
* {{Marker | name = [[Bendorf]] | type= City | wikidata = Q708708 }}
* {{Marker | name = [[Neuwied]] | type= City | wikidata = Q3967 }} -Neuwieder Schloss mit Theater
* {{Marker | name = [[Bad Hönningen]] | type= City | wikidata = Q537973}} - Schloss Arenfels, Burg Ariendorf. Es gibt eine Personenfähre nach Bad Breisig.
* {{Marker | name = [[Linz am Rhein]] | type= City | wikidata = Q390125 }} -Historische Altstadt mit viel Fachwerk, Burgplatz, Rheintor Linz, Neutor Linz, kurfürstliche Burg
* {{Marker | name = [[Bad Honnef]] | type= City | wikidata = Q12434}} -
* {{Marker | name = [[Königswinter]] | type= City | wikidata = Q12444}} - Zahnradbahn auf den Drachenfels im [[Siebengebirge]].
* '''[[Bonn]]'''-Beul - über die Kennedybrücke ist schnell das Zentrum der Stadt erreicht.
<!-- == Weitere Übernachtungsorte == -->
== Sicherheit ==
Zum Teil enge Zweirichtungsradwege ohne bauliche Barriere zu Straße; Hier bei Gegenverkehr acht geben. Teilweise ist hier nur ein Bordstein vorhanden. Wenn gerade dann noch LKWs entgegen kommen kann es hier durch den Sog heikel werden.
Sofern kein Gegenverkehr auf dem Radweg, sollte man sich auf dem Weg am besten eher links halten um entsprechenden Abstand zum entgegenkommenden Kfz-Verkehr halten zu können. Problematisch wird es aber wenn Radverkehr entgegen kommt und man nah an den Bordstein muss. Und dann noch ein entgegenkommender LKW direkt auf der Straße mit seinem Windschlag - sicher ist was anderes.
== Weiter geht's ==
===== Fahrrad: =====
* [[Rhein-Radweg#Deutscher Niederrhein: ca. 250{{nnbsp}}km|Rhein-Radweg, Abschnitt '''Niederrhein''']]
===== Bahn: =====
* Bonn Hauptbahnhof − InterCity mit Fahrradreservierung (mind. stündlich), Regional-Express und Regionalbahnen.
** Stadtbahnen nach [[Köln]] und [[Siegburg]], Sperrzeiten für Fahrräder beachten.
* Bonn-Beuel − Regional-Express und Regionalbahn
Für die Fahrradmitnahme müssen in NRW immer Fahrradkarten gelöst werden, bei Fahrkarten des Rhein-Sieg-Verkehrsverbundes ist eine zusätzliche Fahrkarte der Preisstufe 1b (2,50 €) zu lösen.
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Broschüre '''Rhein-Radweg Band 1 - 3'''
**'''Band 3''': ''Von Mainz nach Rotterdam'' {{ISBN|3-85000-001-X}}
* Leporellos Rhein-Radweg '''Rhein-Radwanderkarte Leporello 2 bis 5'''
**'''Band 4''': ''Radwanderkarte - Radwanderkarte - LeporelloRhein-Radweg 4 Speyer - Köln'', 1:50.000, {{ISBN|978-3-89920-333-2}}
=== Digitale Karten ===
* [http://radservice.radroutenplaner.hessen.de/rrp/hessen/cgi?lang=DE&showThematicRoute=Rheinradweg%20-%20Veloroute%20Rhein Streckenverlauf im Radroutenplaner '''Hessen''']
== Weblinks ==
* Videos auf Commons: [[:File:Rheinauen Naturerbe Inselrhein.ogg]]
{{IstIn|Rhein-Radweg}}
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
7pv3wc5szued5ou2i24bxvnmco5dlw1
1769159
1769158
2026-04-17T07:33:27Z
Dirk Schmidt
15181
1769159
wikitext
text/x-wiki
{{Radweg|kat=Radwege in Deutschland}}
[[Bild:Loreley_blick_gipfel_ds_wv_06_2008.jpg|thumb|325px|Blick von der [[Loreley]] auf den Rhein Richtung St. Goarshausen]]
Der '''Mittelrhein-Radweg''' ist ein Abschnitt des '''[[Rhein-Radweg]]es''' und führt von [[Mainz]] bzw. und dem Wiesbadener Stadtteil [[Wiesbaden/AKK|Mainz-Kastel]] über [[Rüdesheim am Rhein|Rüdesheim]], [[Bingen am Rhein|Bingen]] und [[Koblenz]] nach [[Bonn]].
Dieser Radreiseführer beschreibt die Strecke vom Stadtzentrum Mainz bis zum Stadtzentrum Bonn, weil dies gute Einstiegspunkte sind. Mit der Bahn sind beide Städte gut verbunden.
'''Achtung:''' Im Mittelrheintal gibt es bisher nur '''linksrheinisch''' zwischen Bingen und Koblenz einen durchgehenden Radweg. Rechtsrheinisch zwischen Lorch und Koblenz bestehen noch ein paar Lücken. Hier muss aktuell teilweise noch die Bundesstraße genutzt werden. Es besteht der Plan, bis zur Bundesgartenschau 2029 diese Lücken zu schließen.
== Streckenprofil ==
[[Image:Logo Rhein 555-zGh.jpg|right|95px]]
[[Bild:Erlebnisweg Rheinschiene - Logo 452k.jpg|right|95px]]
* '''Länge:''' etwa 160{{nnbsp}}km.
* '''Ausschilderung:''' Logo mit gelben Euroradler auf blauem Grund und der Bezeichnung „Rhein“, in Hessen „RHEIN RHIN“. Zwischenwegweiser bestehen in Rheinland Pfalz aus einem grünen Pfeil auf weißem Grund und sind oft schwer auszumachen. In Hessen ist der Rheinradweg nur bis Oestrich-Winkel ausgeschildert. Ab der Landesgrenze zu Nordrhein-Westfalen in Bad Godesberg und [[Bad Honnef]] wird der Rheinradweg als „Elebnisradweg Rheinschiene“ ausgeschildert.
* '''Steigungen:''' keine
* '''Wegzustand:''' gut, fast immer asphaltiert, ausgenommen Alternativwege
* '''Verkehrsbelastung:''' häufig neben stark befahrener Bundesstraße, an einigen Stellen auf der Bundesstraße. Rechtsrheinisch zwischen Rüdesheim und Koblenz noch kein durchgehender Radweg. Bis zur BUGA 2029 besteht der Plan die Lücken zu schließen.
* '''Geeignetes Fahrrad:''' 3-Gang
* '''Familieneignung:''' ja, aber an einigen Stellen erhebliche Verkehrsbelastung
* '''Inlinereignung:''' teilweise ja
== Hintergrund ==
Geografisch gehört der Rheingau noch zum Oberrhein. Erst ab Bingerbrück am Zufluss der Nahe bzw. an der Stromschnelle Bingerloch beginnt der Mittelrhein im beliebten [[Mittelrheintal]]. Das Mittelrheintal endet in Bad-Godesberg bei Bonn.
Wie bereits erwähnt: Dieser Radreiseführer beschreibt die Strecke vom Stadtzentrum Mainz bis zum Stadtzentrum Bonn, da dies gute Einstiegspunkte in den Abschnitt des Mittelrheins sind.
== Vorbereitung ==
{{mapframe|50.496|7.800|zoom=8}}
{{Mapshape|wikidata=Q1253779|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
Zeitlich lässt sich die Strecke Problemlos in '''zwei bzw. drei Tagesetappen''' an einem '''verlängertem Wochenende''' bewältigen. Allerdings verpasst man dann viel. Um den Streckenabschnitt auch kulturell zu erkunden, kann man inklusive Aufenthaltstagen durchaus eine Woche einplanen.
== Anreise ==
=== Mit der Bahn ===
Sowohl Mainz, wie auch Bonn sind gut in das Bahnetz eingebunden. Unterwegs wird das Tal auf beiden Seiten mit Bahnlinien begleitet.
*{{Marker | name = Mainz Hauptbahnhof| type= rail | wikidata = Q636700|url = https://www.bahnhof.de/mainz-hbf}} - ist in den Fernverkehr eingebunden. Zum Rheinufer: Vom Hauptbahnhof durch die Gärtnergasse und Große Langgasse fahren. Höhe {{Marker | name = Ludwigsstraße |name-map = Strecke Mainz Hauptbahnhof zum Rheinufer: Hier von der Große Langgasse in die Ludwigsstraße einbiegen. |type= waypoint |group = gold | lat = 49.998345 | long = 8.269414}} nach links in die Fußgängerzone abbiegen. Das langsame Radfahren mit Schritttempo ist gestattet. Sehenswert ist hier u. a. der '''Dom'''. Nach Querung der Rheinstraße erreicht man Höhe {{Marker | name = Fischtorplatz |type= waypoint |group = gold | lat = 50.000085 | long = 8.278837}} das Rheinufer.
'''Anreise Nahverkehr aus dem Rhein-Main-Gebiet:'''
* {{Marker | name = Bahnhof Mainz Römisches Theater | type= rail | wikidata = Q320339|url = https://www.bahnhof.de/mainz-roemisches-theater}} − S-Bahn S8 und Regionalbahnen. Zum Rheinufer: Von der Unterführung über den Zebrastreifen, durch das Haus und rechts in die Dagobertstraße bis vor die Brücke zum Winterhafen, dort aber links am Rheinufer stromabwärts.
* {{Marker | name = Bahnhof Mainz-Kastel | type= rail | wikidata = Q3074809|url = https://www.bahnhof.de/mainz-kastel}} − '''Achtung nur Treppen an den Bahnsteigen''' - Es verkehren die S1, S9 und StadtExpress aus Frankfurt oder Wiesbaden Hbf. Der Bahnhof liegt fast direkt am rechtsrheinischen Rheinradweg: Schranke südlich Bahnhofsgebäude überqueren dann ist man am Rheinufer mit Radweg.
Das Hessenticket für bis zu 5 Personen gilt rechtsrheinisch bis [[Lorch am Rhein|Lorchhausen]] und im gesamten Mainzer Stadtgebiet bei kostenloser Fahrradbeförderung.
Die '''Fahrradmitnahme''' ist in Rheinland-Pfalz ab 9 Uhr und am Wochenende ganztags kostenlos. Beim Übergang von einem anderen Bundesland muss ein Fahrradtageskarte für den Nahverkehr gelöst werden. Im hessischen [https://www.rmv.de RMV-Verbund] ist die Fahrradbeförderung generell kostenlos. RMV-Fahrkarten und Hessenticket gelten auch in Mainz.
Das [https://www.bahn.de/angebot/regio/laender-tickets/rheinland-pfalz-ticket Rheinland-Pfalz-Ticket] für 1 - 5 Personen gilt linksrheinisch über Rolandseck hinaus bis Bonn Hbf und rechtsrheinisch auch über Wiesbaden und Rüdesheim bis vor die Grenze zu NRW in Unkel.
=== Mit dem Fahrrad ===
[[Image:Wegweiser 611-h.jpg|thumb|upright|Zwischenwegweiser in Hessen]]
Linksrheinisch (Innenstadt Rheinufer):
* '''Rhein-Radweg (Oberrhein): Basel − Mainz''' von [[Worms]] über [[Oppenheim]]
Rechtsrheinisch (Mainz-Kastel):
* '''Rhein-Radweg (Oberrhein): Basel − Mainz''' von [[Mannheim]] über [[Ginsheim-Gustavsburg]] und Mainz-Kostheim.
* [[Main-Radweg]] und [[Hess. Radfernweg R3: Rhein - Main - Kinzig|Hess. Radfernweg R3]] von [[Frankfurt am Main|Frankfurt]] über [[Hochheim]]
* [[Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal|Hess. Radfernweg R6: Vom Waldecker Land ins Rheintal]], Anschluss unter der Mainbrücke in Mainz-Kostheim an den Rhein- und Main-Radweg.
=== Auf der Straße ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Wer mit dem Auto anreist kommt allerdings per Bahn recht einfach zurück zum Wagen.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
===1. Etappe: Mainz / Wiesbaden - Bingen / Rüdesheim: etwa 35 bis 40{{nnbsp}}km ===
Der von Süden kommende Rhein macht am Zufluss des Mains einen Knick nach Westen. Der Strom verzweigt sich und fließt wieder zusammen, langgestreckte Inseln und Auen auch am Ufer bilden ein fast natürliches und abwechslungsreiches Gewässer. Aufgrund dieses breiten Stroms wird der Rhein hier auch als "Inselrhein" bezeichnet.
Am nördlichen Ufer, also rechtsrheinisch, breitet sich auf den Taunushängen der [[Rheingau]] aus. Südlich des breiten Stroms grenzt [[Rheinhessen]] hier an das linksrheinische Ufer.
==== Linksrheinisch in Rheinhessen: Mainz − Ingelheim − Bingen: 35{{nnbsp}}km ====
{{Scroll Gallery|title=Unterwegs in Rheinhessen
|timeDependent=
|File:Rheinuferweg Budenheim 487-h.jpg|Vom Fähranleger Budenheim geht geradeaus vor dem Sommerdeich ein schöner Weg durch Streuobstwiesen und später am Altrhein entlang.
|Image:Rheinufer Budenheim 494-h.jpg|Abzweig zum Rhein und auf die [http://www.auenservice.de/pdf/konigsklingerBro.pdf Haderaue] zwischen Budenheim und Heidenfahrt
|Image:Rheinhessen Rheinuferweg 828-zh.jpg|Der Rheinuferweg zwischen Budenheim und Heidenfahrt. Während der breite Weg links auf den offiziellen Rheinradweg zuläuft, um dann hinter dem Hauptdeich den Blick auf die Auenlandschaft zu versperren, führt der gerade aus laufende schmale Weg auf dem Sommerdeich kurz darauf auf den Altrheinarm, um dann als breiter Weg den Rheinarm zu begleiten.
|Image:Inselrhein Hindenburgbrücke 563-Gzh.jpg|Brückenkopf der im Krieg gesprengten Hindenburgbrücke über den Rhein nach Rüdesheim / Geisenheim bei Gaulsheim vor Bingen
|Image:Bingen Industriekran 573-Gh.jpg|Hafenpark am Kulturufer Bingen mit dem Industriekran
}}
Zwischen {{Marker | name = [[Mainz]] | type= City | wikidata = Q1720}} und [[Bingen am Rhein|Bingen]] ist der offizielle Rheinradweg meist recht eintönig. Wer aber einfach "Strecke" machen möchte, ist hier richtig.
Es geht von Mainz-Stadtmitte erst durchs Industriegebiet mit viel Kfz-Verkehr. Dann wird es ruhiger, geht aber durch Schrebergärten und Obstplantagen meist hinter dem Deich entlang. Die Strecke ist auf asphaltierten oder betonierten Wirtschaftswegen zwar meist gut fahrbar, aber Blicke auf den Rhein sind selten.
Der historisch bedeutsame Stadtkern von [[Ingelheim]] liegt abseits der Strecke. Aber ab {{Marker | name = Abzweig zum Alten Stadtkern Nieder-Ingelheim | type= waypoint |group = gold | lat = 50.001933| long = 8.074983 | show = noname}} ist ein Abstecher zur Kaiserpfalz im alten Ortskern von {{Marker | name = [[Ingelheim am Rhein#In Nieder-Ingelheim|Ortskern von Nieder-Ingelheim mit Resten der alten Kaiserpfalz]] | type= see | lat = 49.977628| long =8.072752 | show = noname }} '''Nieder-Ingelheim''' problemlos möglich (zwei Kilometer einfach). Es sind von der Kaiserpfalz noch frei zugängliche Mauerreste vorhanden. Ferner gibt es ein Museum.
'''Alternativwege näher am Rheinufer:''' Auf dieser Seite gibt es Alternativwege, die direkt oder in der Nähe des Ufers entlang laufen und bei trockenem Wetter gut befahrbar sind: Vom '''Mombacher Kreisel''' geht es an der Autobahnzufahrt rechts vorbei, ab der Autobahnbrücke auf dem Sommerdeich direkt an den Auwäldern entlang nach '''Budenheim'''. Ab der "Sonntags-Fähre Budenheim" sollte man nicht mehr dem ausgeschilderten Rheinradweg folgen, sondern den Weg rechts des Sommerdeichs nutzen. Hier erlebt man die Natur der Streuobstwiesen und Auenwälder. Wenn der breite Weg einen Linksknick macht, weiter geradeaus den Pfad nehmen, man kommt kurz darauf auf breitem Weg am Altrheinarm an und landet dann in '''Heidenfahrt'''. Auch hier wieder am Ufer bleiben bis zum Hafen in '''[[Ingelheim am Rhein|Ingelheim Frei-Weinheim]]'''. Zwischen Hafenbecken und Deich geht wiederum in Rheinnähe ein breiter Weg bis '''[[Bingen am Rhein|Bingen]]'''.
Sonntags wird es am Rhein allerdings sehr eng. · Details siehe auch: [https://www.radreise-wiki.de/Rhein#Mainz Radreise-Wiki]
==== Fähre Rüdesheim − Bingen ====
* Von [[Bingen am Rhein|Bingen Hafen]] fährt eine Autofähre nach [[Rüdesheim am Rhein|Rüdesheim Bahnhof]] alle 20 - 30 min. bis 21.45 Uhr, im Sommer alle 10 - 30 min. bis Mitternacht. · [http://www.bingen-ruedesheimer.com/rheinfaehren/index.html Fahrplan]
* Von [[Bingen am Rhein|Bingen Brücke 5]] fährt eine Personenfähre nach [[Rüdesheim am Rhein|Rüdesheim Brücke 19]] montags bis freitags stündlich bis 18 Uhr. Im Sommer (1. Mai - 31. Okt.) fährt sie täglich alle 40 min. bis ca. 22 Uhr. · [http://www.bingen-ruedesheimer.com/rheinfaehren/index.html Fahrplan] − empfohlene Fähre
====Rechtsrheinisch im Rheingau: Mainz-Kastel − Eltville − Rüdesheim: 34{{nnbsp}}km ====
{{Scroll Gallery|title=Ufer bei Wiesbaden
|Image:Bastion von Schönborn Strand Mainz-Kastel 405-h.jpg|Noch schnell ein Sonnenbad in Mainz-Kastel, bevor es auf die Reise zur kühlen Nordsee geht. Nach Biebrich geht es unter die Theodor-Heuss-Brücke.
|Image:Mainz-Kastel Ornithopter 379-zh.jpg|Spielmodell des Ornithopters. Bisher sind alle Versuche des Schwebens und Fliegens aus eigener Kraft gescheitert. Wird bleiben auf dem Boden, treten in die Pedalen und rollen auf 2 Rädern am Rhein entlang.
}}
{{Scroll Gallery|title=Unterwegs im Rheingau
|timeDependent=
|File:Rheinufer Weinprobierstand Walluf.jpg|Weinprobierstand am Rhein in Walluf
|Image:Rheinaue Rheingau 619-hh.jpg|Rheinaue im [[Rheingau]] zwischen Walluf und Eltville. Durchblick zum anderen Rheinufer nach [[Rheinhessen]]
|File:Biedermeier-Pärchen und Kurfürstliche Burg Eltville.jpg|Biedermeier-Pärchen vor der Kurfürstlichen Burg in Eltville, links liegt der Rosengarten
|Image:Hattenheim Weinprobierstand 310-h.jpg|Hattenheim Weinprobierstand.
}}
Das Stadtzentrum von {{Marker | name = [[Wiesbaden]] | type= City | wikidata =Q1721 }} liegt abseits des Rheinufer. Wer Zeit für einen Aufenthaltstag in Mainz bzw. Wiesbaden hat: Eine Besichtigung lohnt. Tipp: Unbedingt den [[Neroberg]] besuchen.
* Stadtteile von [[Wiesbaden]] am Rheinufer:
** [[Wiesbaden/AKK|Mainz-Kastel]] − Theodor-Heuss-Brücke
** Mainz-Amöneburg − Über die Eisenbahnbrücke gelangt man zwar ans Mainzer Ufer, aber eingezäunte Industriegleise versperren die Fahrt nach Westen.
** Biebrich − Schloss Biebrich mit Schlossgarten, − Abzweig des Rheinradwegs zur Wiesbadener Innenstadt mit unvollständiger Ausschilderung.
** Schierstein − Hafen mit vielen Gartenlokalen.
* Walluf − Sonnstagsfähre nach Budenheim, Weinprobierstand, es folgt der schönste naturnahe Abschnitt des Rheins wenn man weiter geradeaus fährt. Folgt man der Beschilderung, wird man über die stark befahrene Landstraße geschickt. In Eltville gibt es keine Radwege.
* [[Eltville am Rhein]] − Rosengarten der Kurfürstlichen Burg, Weinprobierstand am Rheinufer.
** Erbach
** Hattenheim − Weinprobierstand am Rheinufer
* Oestrich-Winkel
** Oestrich − Alter Kran
** Mittelheim − Auto-Fähre nach [[Ingelheim|Ingelheim Frei-Weinheim]] <br> Offizielles Ende des rechtsrheinischen Rheinradwegs. Empfehlung: Weiterführung am Rhein auf dem neuen [[Hess. Radfernweg R3: Rhein - Main - Kinzig#Neuer R3 entlang des Rheins|Hess. Radfernweg R3]] bis Rüdesheim und dort die Fähre nach [[Bingen am Rhein|Bingen]] nehmen.
** Winkel
* [[Geisenheim]]
* Die Ausschilderung endet hinter dem Brückenbogen der ehemaligen Hindenburgbrücke. Von hier geht es links zum Rüdesheimer Ufer und dann am Schwimmbad vorbei.
* [[Rüdesheim am Rhein|Rüdesheim]] − Die Personen- und Autofähren nach [[Bingen am Rhein|Bingen]] sind am Ende der Stadt in Höhe des Bahnhofs.
==== Höhenvariante im Rheingau mit Kloster Eberbach ====
Variante für Pedelecnutzer: Ab Eltville zweigt eine Variante des Hessischen Radfernwegs R3 als "R3a" Richtung Kloster Eberbach ab. Die Strecke verläuft als bergige Panoramaroute durch die Weinberge. Teilweise werden allerdings Landstraßen genutzt. Ankerpunkt des R3a ist das zurecht viel besuchte {{Marker | name = [[Kloster Eberbach]] | type= see | wikidata = Q697766}}. Bei Rüdesheim kommt man wieder zurück an das Rheinufer.
===2. Etappe Bingen / Rüdesheim - Koblenz: etwa 65{{nnbsp}}km ===
'''Oberer Mittelrhein'''
Bisher floss der Rhein mit geringem Gefälle durch eine flache Talebene und hat ein Breite bis zu 800{{nnbsp}}m eingenommen. Ab Bingen stellte sich das Mittelgebirge dem Rhein entgegen. Der Strom hat sich hier ein Schroffes Druchsbruchstal geschaffen. Es wird eng, beidseitig wurden Eisenbahnen und Straßen angelegt. Verkehrslärm ist meist zu hören. Das Tal bietet eine Vielzahl an Sehenswürdigkeiten.
Wer mehr erleben möchte, sollte die Etappe halbieren und z.{{nnbsp}}B. in [[St. Goar]] oder auch [[St. Goarshausen]] noch einmal übernachten. Oder gleich einen Aufenthaltstag einlegen und die [[Loreley]] besuchen.
Der offizielle Rheinradweg der D-Route 8 verläuft im oberen Mittelrheintal als baulich durchgehende Strecke linksrheinisch. Dies ist die empfholene und bisher in der Regel auch meist genutzte Variante.
Wer auf die [[Loreley]] möchte kann von St. Goar einfach mit der Fähre übersetzen.
==== '''Linksrheinisch Bingen − Boppard − Koblenz''' ====
Wie bereits erwähnt gibt es hier bereits Seit Jahrzehnten eine durchgehende Radroute. Die linke Rheinseite ist auch belebter. Hier findet sich z.{{nnbsp}}B. die Stadt Boppard.
{{Scroll Gallery|title= Oberes Mittelrheintal: linksrheinisch
|Image:Bingen Nahemündung 213-dh.jpg|Blick auf die Nahemündung in [[Bingen am Rhein|Bingen]]
|Image:Bingen Hbf - Burgen 189-vfh.jpg|Blick von der Brücke zum [[Bingen am Rhein|Hauptbahnhof Bingen]]. Vorne die Spielburg im Park am Mäuseturm, hinter dem Stadtzentrum die Burg Klopp. Zwischen Park und Bahngleise verläuft der Rheinradweg.
|Image:Rhein-Auenwald - Ruine Ehrenfels 268-Fkh.jpg|Blick vom linksrheinischen Rheinradweg bei Bingerbrück über die Baumwipfel des Auenwalds auf die Weinberge des [[Rheingau]]s mit der Burgruine Ehrenfels bei [[Rüdesheim am Rhein|Rüdesheim]]
|Image:Bacharach hinter Bahndamm 638-zh.jpg|'''[[Bacharach]]''': Stadtfront mit Kranenturm hinter dem Bahndamm. Oben auf dem Bergfried die Burg Stahleck
|Image:Oberwesel 707-z.jpg|'''[[Oberwesel]]''': Roter Turm bzw. Haagsturm, dahinter die Liebfrauenkirche, auf dem Berg die Schönburg
|Bild:loreley_rhine_valley_d_schmidt_08_07.jpg|Rheinromantik pur: '''[[Loreley]]''' mit Raddampfer "Gothe"
|Image:Koblenz Rheinradweg 599-hh.jpg|Rheinradweg vor dem [[Koblenz|Koblenzer Zentrum]]
|Image:Deutsches Eck abends.jpg|'''[[Koblenz]]''': Deutsches Eck am Abend, wo die Mosel in den Rhein fließt. Dieses Motiv kann auch [https://www.bafg.de/php/deutsches-eck-gross.jpg hier] aktuell per Webcam angeschaut werden.
}}
{{Marker | name = [[Bingen]] | type= City | wikidata = Q285879}} Start der Etappe am Rhein-Nahe-Eck. Der Hauptbahnhof von Bingen ist nicht weit.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf den 13{{nnbsp}}km zwischen Bingen und Bacharach verläuft die Strecke als Uferweg schön '''direkt am Rhein'''. Von den Abgasen der Straße ist man so durch die Bahn getrennt. Der Weg ist meist gepflastert und geschätzt gute zwei Meter breit. Begegungen mit üblichen Kinderhängern und mehrspurigen Rädern sollten bis 0,9{{nnbsp}}m Breite kein Problem darstellen ([https://www.mapillary.com/app/?lat=49.986814600003&lng=7.8604652&z=18.485501411418436&pKey=2668133816656314&focus=photo&x=0.5109243006960521&y=0.39317697384295036&zoom=0 Bild Mapillary]). An den Ortskernen von Trechtingshausen und Niederheimbach fährt man am Ufer vorbei. Durch Bahnunterführungen sind Abstecher möglich. Hier im Bereich der Ortspromenaden bitte als Radfahrer entsprechend auf Fußgänger Rücksicht nehmen. Achtung: Die Strecke liegt im direkten Hochwasserbereich. Die Streckensperrungen bitte beachten. Dann bleibt leider nur die Nutzung der bedeutend höher liegenden, aber stark befahrenen Bundesstraße B 9 übrig.
:* {{Marker | name = [[Trechtingshausen]] | type= City | wikidata = Q680372}} - Hier südlich des Orts die alte Clemenskapelle und ein etwas spartanischer Rastplatz.
:* {{Marker | name = [[Niederheimbach]] | type= City | wikidata = Q17715}} - Südlich findet sich hier [https://www.burg-sooneck.com Burg Sooneck]. Aufgang / Auffahrt zur Anlage aus dem Bereich Niederheimbach. Burg wurde im 13. und im 17. Jahrhundert zerstört und im 19. Jahrhundert als Jagdburg wieder errichtet.
[[Datei:Bacharach Altkölnischer Hof 682-vh.jpg|mini|Fachwerkromantik in Bacharach]]
{{Marker | name = [[Bacharach]] | type= City | wikidata = Q523273}} - Kleiner aber sehenswerter Stadtkern. Hier lohnt in jedem Fall ein Abstecher bzw. erster Stopp: Historische Gebäudeensembles, eine intakte Stadtmauer, die Kirche St. Peter und die Ruinen der gotischen Kapelle St. Werner prägen die Stadt. Über der Stadt liegt die Burg Stahleck (heute Jugendherberge).
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Nun wechselt die Radroute nach oben an die Bundesstraße. Es gibt aber einen Grünstreifen mit sicherer Barriere zur Straße hin. Der Weg selbst dürfte geschätzt mindestens 2,5{{nnbsp}}m bis oft sogar 3,5{{nnbsp}}m bis 4{{nnbsp}}m Breit sein. [https://www.mapillary.com/app/?lat=50.07692762172394&lng=7.768815212463437&z=17.1445450252476&pKey=829508421743017&focus=photo&x=0.49219261145038246&y=0.5398155732875144&zoom=0 Wegmotiv von Mapillary]
{{Marker | name = [[Oberwesel]] | type= City | wikidata =Q668327}} - 3{{nnbsp}}km zum Teil begehbare mittelalterliche Stadtmauer mit 16 von 21 erhaltenen Wehrtürmen. Ruine Schönburg aus dem 12. Jh., Liebfrauenkirche (auch "rote Kirche" genannt) von 1308.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Zwischen Oberwesel und St. Goar Radweg '''ohne''' Barriere zur Bundesstraße. Der Bordstein wurde aber immerhin durch zwei weiße Linien hervorgehoben. Achtung trotzdem bei Fahrrad-Gegenverkehr, da Radweg geschätzt um die 2{{nnbsp}}m bis 2,3{{nnbsp}}m breit. [https://www.mapillary.com/app/?lat=50.1205664&lng=7.7244296&z=19.49243827846759&pKey=1193475767869481&focus=photo Wegmotiv von Mapillary]
{{Marker | name = [[St. Goar]] | type= City | wikidata =Q186037 }} - Sehenswerte Stiftskirche. Die Ruine der Burg Rheinfels erhebt sich hoch über dem Rhein. Fähre nach [[St. Goarshausen]], von dort die Loreley erreichbar.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf den 12{{nnbsp}}km außerorts zwischen St. Goar und Boppard ist der geräumige Radweg entweder durch einen Grünstreifen von der Straße getrennt ([https://www.mapillary.com/app/?lat=50.161147799997&lng=7.7027145&z=19.11348929071947&pKey=1810919355936159&focus=photo Bild Mappillary]) oder durch eine sichere Barriere ([https://www.mapillary.com/app/?lat=50.16569059999799&lng=7.696442898849455&z=18.20616798029146&pKey=100109852869771&focus=photo Wegmotiv von Mapillary]). Es gibt aber auch Bereiche wo die Strecke vermutlich nur per Borstein getrennt ist und geschätzt nur um die 2 bis 2,3{{nnbsp}}m Breit ist ([https://www.mapillary.com/app/?lat=50.171298&lng=7.6614836&z=19.158418759346016&pKey=1755421044820260&focus=photo&x=0.5096663297271463&y=0.48227391321224267&zoom=0 Bild Mapillary]).
:Ab Hirzenach wird die Radroute auf 6{{nnbsp}}km fast zu einer Art Radschnellweg: Gut asphaltiert, Barriere zur Straße. Eine weiße Trennlinie zeigt den Gehbereich zum Rhein hin an. Wenn man hier mal eine Rheinimpression knipsen möchte, gibt es also keinen Stress mit anderen Radfahrern ([https://www.mapillary.com/app/?lat=50.180148407519994&lng=7.641156881221491&z=12.812047896033965&pKey=599585545286641&focus=photo Bild breiter Radweg Höhe Bad Salzig]).
:Vor Boppard dann allerdings wieder Radweg um die 2 bis 2,3{{nnbsp}}m nur mit Bordstein. In Boppart geht es schön entlang es Ufer. Hier in Boppard Verkehrsberuhigter Bereich – also langsam fahren.
[[File:Vierseenblick boppard.jpg|miniatur|390px|Der Vierseenblick besteht aus 4 Teilen der Bopparder Rheinschleife]]
{{Marker | name = [[Boppard]] | type= City | wikidata =Q521148 }} − lebendige Stadt und Uferpromenade mit vielen schönen Häusern. Die Gastronomie lädt zur Einkehr ein. Ruinen der römischen Garnison Bodobriga, kurfürstliche Burg von 1327, Kirche St. Severus (12.-13. Jh.). Wer möchte kann mit dem [[Boppard#Panorama|Sessellift]] zum 4-Seen-Blick auffahren. Oben gibt es Gastronomie.
:Von Boppard fährt eine Bahn in den Hunsrück nach [[Emmelshausen]]. Von dort kann man auf einer ehemaligen Bahntrasse auf dem [[Schinderhannes-Radweg]] nach Simmern radeln.
[[Datei:Bundesstraße 9, Bopparder Hamm 20150514 1.jpg|mini|Blick rheinaufwärts: Breiter Radweg zwischen Boppard und Spay: Separation vom Fußverkehr und sichere Barriere zur Straße]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Zwischen Boppard und Spay wieder Radweg mit Barriere und oft auch schön breit.
{{Marker | name = Spay | type= City | wikidata =Q573555 }} - Kleines Dorf mit ein paar Einkehr- und Übernachtungsmöglichkeiten, [https://sonneneck-camping.de/ Campingplatz] südlich des Ortes.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Ab Ortseingang Spay '''schön idyllisch abseits des Kfz-Verkehrs direkt am Ufer entlang.''' Die Wege liegen teils im direkten Hochwasserbereich. Sie sind gut fahrbar gepflastert aber wohl in Teilen nur um die 2{{nnbsp}}m Breit. Bei Begegnungen acht geben ([https://www.mapillary.com/app/?lat=50.275705000000016&lng=7.630299722222162&z=17&pKey=490693195409488&focus=photo&x=0.4862930455227339&y=0.4651030811832513&zoom=0 Bild Mapillary, Blick stromaufwärts]). Es gibt schöne Blicke hinüber zur Marksburg bei [[Braubach]].
[[Datei:Historischer Ortskern Rhens.jpg|mini|Gastronomie im Ortskern Rhens]]
{{Marker | name = [[Rhens]] | type= City | wikidata = Q552498}} - Wer vor dem Trubel an der Rheinpromenade in Koblenz noch ein ruhigeres Ziel sucht, kann einen Abstecher in den historischen Kleinstadtkern machen. Es finden sich schmucke Fachwerkhäuser und auch Reste einer Stadtmauer. Einkehrmöglichkeiten am prachtvollen Fachwerkbau des Alten Rathauses. Am nahen Gebäude der Verbandsgemeindeverwaltung findet sich auch eine E-Bike-Ladestation. Knapp 1,5{{nnbsp}}km südlich des Ortskerns liegen ein [http://www.camping-freizeitzentrum-brey.de Campingplatz] und Lebenmittelmärkte für die Verpflegung.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Nördlich Rhens rückt {{Marker | name = Schloss Stolzenfels | type= castle | wikidata = Q833779 |url = https://tor-zum-welterbe.de/stolzenfels}} in den Blickpunkt. Die Anlage kann gegen Eintritt besichtigt werden. Der Rhein-Radweg bleibt zwischen Rhens und Koblenz direkt am Ufer. Teilweise etwas gröberes Pflaster, aber noch eingermaßen fahrbar. Im weiteren Verlauf auch wassergebundene Feinschotterdecken. Bald ist die belebte Rheinpromenade in Koblenz erreicht. Von hier ist es nicht mehr weit bis zum {{Marker | name = Deutschen Eck | type= see | wikidata = Q700785}}, dem Endpunkt dieser Etappe.
{{Marker | name = Koblenz | type= City | wikidata =Q3104}} - Deutsches Eck an der Moselmündung, Seilbahn zur Festung Ehrenbreitstein.
==== '''Rechtsrheinisch: Rüdeheim - St. Goarshausen - Koblenz''' ====
{{Scroll Gallery|title= Oberes Mittelrheintal: rechtsrheinisch
|Image:Rüdesheim Burgruine Ehrenfels 564-dh.jpg|Burgruine Ehrenfels am Historienweg zwischen [[Rüdesheim am Rhein|Rüdesheim]] und Assmannshausen unterhalb des Niederwalddenkmals mit Blick auf [[Bingen am Rhein|Bingen]]
|Image:Burg Rheinstein Trechtingshausen 995-Lh.jpg|Burg Rheinstein gegenüber Assmannshausen
|Bild:Bacharach_von_rechter_rheinseite_ds_wv_07_2008.jpg|Blick vom rechten Rheinufer auf [[Bacharach]] mit Burg Stahleck
|Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|Zollburg Pfalzgrafenstein bei [[Kaub]]
|Bild:Lahnmuendung_mit_schloss_stolzenfels_ds_08_2007.jpg|Lahnmündung bei [[Lahnstein]] am Rhein. Im Hintergrund auf der anderen Rheinseite liegt [[Koblenz#Burgen, Schlösser und Paläste|Schloss Stolzenfels]].
}}
Zwischen Rüdesheim und Lahnstein gibt es bisher '''keinen durchgehenden Radweg.''' Große Teile der Strecke wurden als aufwendige, über den liegende Betonkostruktion aber bereits errichtet. Trotzdem gibt es immer noch einige längere Abschnitte, auf denen man auf die stark befahrene Bundesstraße muss. Ziel ist es bis 2029 zur Bundesgartenschau im Mittelrheintal auch hier eine sichere durchgehende Route zu bauen.
Der Abschnitt Rüdesheim - Lorch - Kaub ist mittlerweile sicher fahrbar. Lediglich bei Rüdesheim noch kurze 300{{nnbsp}}m lange Lücke, die aber mit Überholverbot für Kfz und Tempolimit abgesichert ist.
{{Marker | name = [[Rüdesheim]] | type= City | wikidata = Q628118}} - weltbekannte viel besuchte Stadt am Rhein mit Drosselgasse, Seilbahn zum Niederwald-Denkmal, viele Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> '''Radweg entlang der Bundesstraße B 42 nach Assmannshausen:''' Hier gibt es mittlerweile direkt an der B 42 einen fasst durchgehenden Radweg mit '''Barriere hin zur Bundestraße.''' Lediglich im Bereich der Fähre bei Rüdesheim besteht noch eine 300{{nnbsp}}m lange Lücke. Die neue Strecke nach Assmannshausen verläuft als sogenannter [[w:Kragarm|Kragarm]] überhängend über dem Rhein. Diese aufwendige Betonkonstruktion war notwendig, da es hier keinen Platz für einen Radweg gab. Die Bauzeit für den 11{{nnbsp}}km langen durchgehenden Radweg von Rüdesheim bis Lorch betrug 17 Jahre. Dabei wurde auch die Bundesstraße umfassend mit erneuert. Zur Bundesstraße hin ist der etwa 2,5{{nnbsp}}m breite Rad- und Gehweg mit einer Barriere sicher abgetrennt. Die Strecke ist mit gängigen Fahrradanhängern, wie Kinderhängern von 0,9{{nnbsp}}m Breite, befahrbar. Bei Gegenverkehr sollte, sofern alle etwas aufpassen, eine Begegung sicher möglich sein. [https://www.youtube.com/watch?v=_LscqGt_5AU Testvideo des HR auf Youtube mit Fahrt von Lorch nach Rüdesheim]
:'''Alternative Bergvariante Rüdeshein - Assmannshausen: Durch Weinberge und Wald nach Assmannshausen auf dem Historienweg'''
:Der Historienweg startet links am Parkplatz P2. Dort steht auch eine große Tafel. Der Weg führt oberhalb des Ortes durch die Weinberge und wird auch als Panoramaweg bezeichnet. Der Weg ist asphaltiert, hinter dem Naturdenkmal Ramstein ist er dann geschottert. Man sollte rechts hoch fahren und den höher gelegenen Parallelweg weiter fahren. Beide Wege führen dann vereinigt oberhalb der Burgruine Ehrenfels vorbei und sind ab dort grob geschottert. Ein idyllischer Rastplatz mit zwei im Boden versenkten Wasser- und Weinschächten mit Gläsern warten auf die Verkostung der edlen Tropfen. Weiter geht es durch ein Waldstück, um dann in den Assmannshäuser Weinbergen zu landen. Der mittelschwere Anstieg wird belohnt mit wundervollen Ausblicken.
[[Datei:Assmannshausen Blick verkl.jpg|mini|alternativtext=Blick auf Assmannshausen]]
{{Marker | name = [[Assmannshausen]] | type= City | wikidata = Q317535}} - GEmütliches, gern besuchtes Weindorf mit Einkehrmöglichkeiten. [https://www.niederwaldseilbahn.de/ Sessellift] auf die Höhe, von der Bergstation kann zu Fuß das Niederwalddenkmal erreicht werden.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auch zwischen Assmannhausen und Lorch besitzt die B 42 mittlerweile einen sicheren Radweg auf der Rheinseite. Ausbaubreite geschätzt 2,5{{nnbsp}}m '''mit sicherer Barriere zur Straße hin.'''
:Alternative zur Radweg an der B 42: Nach ca. 2{{nnbsp}}km geht eine Bahnunterführung zum Natur-Campingplatz Suleika. Gleich hinter der Bahn beginnt links die asphaltierte Alternative zur Straße. Es geht zunächst erst mal leicht bergauf und kommt dann in Lorch an der Kirche an.
{{Marker | name = [[Lorch am Rhein]] | type= City | wikidata = Q625783}} - Kleinstadt mit schönem Ortskern am Markt.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Zwischen Lorch und Kaub ebenfalls sicherer Radweg direkt über dem Rhein an der Bundesstraße. Unterwegs kommte man an {{Marker | name = Lorchhausen | type= City | wikidata = Q1619243}} vorbei. Das kleine Dorf gehört zur Stadt Lorch.
[[Bild:Zollburg_pfalzgrafenstein_ds_wv_06_2008.jpg|thumb|250px|Zollburg Pfalzgrafenstein bei [[Kaub]]]]
{{Marker | name = [[Kaub]] | type= City | wikidata = Q540860}} Autofähre auf die linke Rheinseite, Zollburg Pfalzgrafenstein auf einer Rheininsel (Überfahrt per Boot möglich)
{{Marker | name = [[St. Goarshausen]] | type= City | wikidata = Q564757}} Hier liegt die bekannte [[Loreley]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Zwischen St. Goarshausen und Kestert gibt es auf den 5{{nnbsp}}km außerorts '''keinen''' durchgehenden und sicheren '''Radweg''' an der B 42. Teilweise gibt in einem kurzeren Bereich rheinseitig einen Hochbordweg mit geschätzten 1,8 bis 2{{nnbsp}}m Breite. Dieser besitzt allerdings zur Straße hin keine Barriere. Der Weg ist nicht als Radweg beschildert.
{{Marker | name = [[Kestert]] | type= City | wikidata = Q564653}} - kleines Dorf mit Einkehr- und übernachtungsmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Hier findet sich auf den 4{{nnbsp}}km außerorts ein als benutzungpflichtig beschilderter Geh- und Radweg. Die Strecke ist geschätzt um die 2{{nnbsp}}m breit. Allerdings fährt es sich nicht schön, wenn einem Kfz quasi direkt mit Tempo 100 entgegen kommen. Denn auch dieser Hochbordradweg besitzt '''keine sichere Barriere zur Bundesstraße hin.''' [https://www.mapillary.com/app/?lat=50.20979998226201&lng=7.635910898427028&z=19.19846991828831&pKey=4167100866686029&focus=photo Bild Mapillary Radweg Kestert - Kamp-Bornhofen]
{{Marker | name = [[Kamp-Bornhofen]] | type= City | wikidata =Q567183 }} typischer Dorf mit Mittelrheintal. Zwei Burgen als feindliche Brüder"
{{Marker | name = [[Braubach]] | type= City | wikidata = Q509038}} - Markburg noch über dem Rhein, Ein Besuch lohnt. Es handelt sich hier um die beste noch fast vollständig erhaltene "Ritterburg" am Mittelrhein.
{{Marker | name = [[Lahnstein]] | type= City | wikidata =Q569639 }}, Mündung der Lahn
[[Datei:Koblenz im Buga-Jahr 2011 - Rheinseilbahn 02.jpg|mini|Koblenz: Blick aus der Rheinseilbahn 2011 ]]
{{Marker | name = Koblenz | type= City | wikidata = Q3104 | show = copy }}, rechtsrheinisch liegt hier über dem Strom die Festung Ehrenbreitstein.
=== 3. Etappe: Koblenz - Bonn (etwa 65{{nnbsp}}km) ===
'''Unteres Mittelrheintal'''
Nachdem [[w:Neuwieder Becken|Neuwieder Becken]] wird das Rheintal ab Andernach wieder enger und schroffer. Erst vor Bonn geben die Berge den Rhein wieder frei.
Ob man besser links- oder rechtsrheinnisch radeln sollte? Nun, eine eindeutlige Empfohlung lässt sich hier nicht aussprechen. Es hängt z.{{nnbsp}}B. davon ab welche Sehenswürdkeiten einem interessieren. Aber es bestehen einige Rheinquerungen per Brücke und Fähre, so dass problemlos die Flussseite gewechselt werden werden kann.
==== Linksrheinisch ====
* '''Koblenz''' - Etappenstart am Deutschen Eck
* {{Marker | name = [[Weißenthurm]] | type= City | wikidata =Q541616 }}
* {{Marker | name = [[Andernach]] | type= City | wikidata = Q490058}} Histstadt mit Resten der Stadtmauer, belebte Promenade. Wer möchte kann den Kaltwassergysir besuchen. Für die Schiffstour mit Besuch des Infozentrum ist allerdings ausreichend Zeit einzuplanen.
* {{Marker | name = [[Bad Breisig]] | type= City | wikidata = Q541726}}
* {{Marker | name = [[Remagen]] | type= City | wikidata =Q486548 }}
* {{Marker | name = [[Bonn|Bad Godesberg]] | type= City | wikidata =Q153260 }} - Der Kurbereich der Stadt Bonn.
* {{Marker | name = [[Bonn]] | type= City | wikidata =Q586}}
==== rechtsrheinsich ====
[[Bild:Bonn,_vom_Drachenfels_gesehen.jpg|mini|350px|Blick aus dem Bereich des Drachenfels auf Königswinter und Bonn, rechts das Schloss Drachenburg]]
* '''Koblenz-Ehrenbreistein'''
* {{Marker | name = [[Vallendar]] | type= City | wikidata =Q536559 }}
* {{Marker | name = [[Bendorf]] | type= City | wikidata = Q708708 }}
* {{Marker | name = [[Neuwied]] | type= City | wikidata = Q3967 }} -Neuwieder Schloss mit Theater
* {{Marker | name = [[Bad Hönningen]] | type= City | wikidata = Q537973}} - Schloss Arenfels, Burg Ariendorf. Es gibt eine Personenfähre nach Bad Breisig.
* {{Marker | name = [[Linz am Rhein]] | type= City | wikidata = Q390125 }} -Historische Altstadt mit viel Fachwerk, Burgplatz, Rheintor Linz, Neutor Linz, kurfürstliche Burg
* {{Marker | name = [[Bad Honnef]] | type= City | wikidata = Q12434}} -
* {{Marker | name = [[Königswinter]] | type= City | wikidata = Q12444}} - Zahnradbahn auf den Drachenfels im [[Siebengebirge]].
* '''[[Bonn]]'''-Beul - über die Kennedybrücke ist schnell das Zentrum der Stadt erreicht.
<!-- == Weitere Übernachtungsorte == -->
== Sicherheit ==
Zum Teil enge Zweirichtungsradwege ohne bauliche Barriere zu Straße; Hier bei Gegenverkehr acht geben. Teilweise ist hier nur ein Bordstein vorhanden. Wenn gerade dann noch LKWs entgegen kommen kann es hier durch den Sog heikel werden.
Sofern kein Gegenverkehr auf dem Radweg, sollte man sich auf dem Weg am besten eher links halten um entsprechenden Abstand zum entgegenkommenden Kfz-Verkehr halten zu können. Problematisch wird es aber wenn Radverkehr entgegen kommt und man nah an den Bordstein muss. Und dann noch ein entgegenkommender LKW direkt auf der Straße mit seinem Windschlag - sicher ist was anderes.
== Weiter geht's ==
===== Fahrrad: =====
* [[Rhein-Radweg#Deutscher Niederrhein: ca. 250{{nnbsp}}km|Rhein-Radweg, Abschnitt '''Niederrhein''']]
===== Bahn: =====
* Bonn Hauptbahnhof − InterCity mit Fahrradreservierung (mind. stündlich), Regional-Express und Regionalbahnen.
** Stadtbahnen nach [[Köln]] und [[Siegburg]], Sperrzeiten für Fahrräder beachten.
* Bonn-Beuel − Regional-Express und Regionalbahn
Für die Fahrradmitnahme müssen in NRW immer Fahrradkarten gelöst werden, bei Fahrkarten des Rhein-Sieg-Verkehrsverbundes ist eine zusätzliche Fahrkarte der Preisstufe 1b (2,50 €) zu lösen.
== Literatur- und Kartenhinweise ==
=== Radwanderführer ===
* Bikeline Broschüre '''Rhein-Radweg Band 1 - 3'''
**'''Band 3''': ''Von Mainz nach Rotterdam'' {{ISBN|3-85000-001-X}}
* Leporellos Rhein-Radweg '''Rhein-Radwanderkarte Leporello 2 bis 5'''
**'''Band 4''': ''Radwanderkarte - Radwanderkarte - LeporelloRhein-Radweg 4 Speyer - Köln'', 1:50.000, {{ISBN|978-3-89920-333-2}}
=== Digitale Karten ===
* [http://radservice.radroutenplaner.hessen.de/rrp/hessen/cgi?lang=DE&showThematicRoute=Rheinradweg%20-%20Veloroute%20Rhein Streckenverlauf im Radroutenplaner '''Hessen''']
== Weblinks ==
* Videos auf Commons: [[:File:Rheinauen Naturerbe Inselrhein.ogg]]
{{IstIn|Rhein-Radweg}}
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
m6hil8pwdtyer740m5ax7qaglvc89qg
Bad Langensalza
0
29492
1769210
1768540
2026-04-17T11:28:32Z
Ousw
57729
/* Küche */ Hinzugefügte vCard für Rosencafé
1769210
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/ Touristinformation]
| TouriInfoTel = +49 (0)3603 834424
}}
Die Kur- und Rosenstadt '''Bad Langensalza''' ist eine ehemalige Kreisstadt am Nordwestrand des [[Thüringer Kernland|Thüringer Beckens]]. Neben einer Therme und zwei Kliniken kennzeichen die Stadt besonders ihre historische Altstadt, zehn Parks und Gärten, die teils ganzjährig zum Besuch einladen, sowie die Blumenpracht im gesamten Ort.
== Hintergrund ==
{{Mapframe|51.10806| long= 10.646|zoom=14|height=300|width=300|type=geoline}}
Bad Langensalza (bis 1956: Langensalza) ist ein Schwefel-Sole-Heilbad und staatlich anerkannter Kurort. Zu Beginn des 9. Jahrhunderts wurde erstmals ein Ort namens Salza – im lateinischen Text Salzaha – urkundlich erwähnt. Bad Langensalza gehört zu den historisch bedeutendsten Städten im Thüringer Becken, wovon die reichhaltige historische Bausubstanz in der Altstadt zeugt. Als eine der Waidstädte war Bad Langensalza sehr wohlhabend, sodass große Kirchen und eine mächtige Stadtmauer aus Langensalzaer Travertin, der direkt im Südwesten der Altstadt abgebaut werden konnte, errichtet wurden. Um 1300 wurde die Stadtmauer mit vier Eingangstoren fertiggestellt. Ein verheerender Stadtbrand legte 1711 Teile der Altstadt in Schutt und Asche. Die im prachtvollen Barockstil an ihrer Stelle entstandenen Bürgerhäuser prägen noch heute das Bild der Stadt. Heute sind von der ältesten Stadtbefestigung noch vier Stadtmauertürme erhalten.
Bekannt ist die Stadt auch für die [[w:Schlacht_bei_Langensalza|Schlacht bei Langensalza]] zwischen Preussen und Hannover 1866, in deren Folge Preussen Hannover annektierte. Im [[#vCard_Arboretum|Arboretum]] steht das daran erinnernde [[w:Langensalza-Denkmal_(Bad_Langensalza)|Denkmal]] der Stadt.
Im Juni 1938 wurde im Reinhardbrunner Hof eine antisemitische Hetzausstellung gezeigt. Ebenso wurden Sinti- und Roma-Familien verfolgt, von denen einige im KZ Langensalza, einem Außenlager des KZ Buchenwald, inhaftiert waren. Dort mussten insgesamt etwa 1300 ausländische Frauen und Männer Zwangsarbeit für ein Projekt der Junkers verrichten. Am 5. April 1945 wurde Langensalza durch amerikanische Truppen besetzt und Anfang Juli an die Rote Armee übergeben. So wurde es Teil der Sowjetischen Besatzungszone (SBZ) und ab 1949 der DDR.
Seit dem 28. Juni 1956 trägt Langensalza den Namenszusatz Bad. Seit 1990 wurde die Altstadt zu einem großen Teil restauriert. Später konnten in der Stadt Heilquellen erschlossen werden, die bis heute dem Kurbetrieb dienen. Damit einher ging die Anlage mehrerer Parks, wie Rosengarten und Japanischer Garten. Seit dem 22. Juni 2002 nennt sich Bad Langensalza „Rosenstadt“. Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [[#Kurtaxe|Kurtaxe]].
== Anreise ==
=== Mit dem Flugzeug ===
* Die nächstgelegenen Verkehrsflughäfen mit Linienverkehr sind der {{marker|type = airport|name = Flughafen Leipzig Halle |wikidata = Q668382}} und der {{marker|type = airport|name = Flughafen Frankfurt am Main|wikidata = Q46033}}.
* Auf dem in ca. 65{{nnbsp}}km entfernten {{marker | type = airport | name = Flughafen Erfurt–Weimar | wikidata = Q703794}} starten und landen mittlerweile nur noch Chartermaschinen. Er ist aber weiterhin für Geschäfts- und Sportflieger offen.
* {{vCard|name=Flugplatz Bad Langensalza|type=landing site|wikidata=Q2900762|directions=ca. 3{{nnbsp}}km nördlich|description=Der als [[w:Sonderlandeplatz|Sonderlandeplatz]] klassifizierte Fluplatz verfügt über eine 800{{nnbsp}}m lange Graslandebahn und kann von Ultraleichtfliegern angeflogen werden. Der Platz wird betrieben vom Flugsportverein „Otto Lilienthal“.}}
=== Mit der Bahn ===
{{vCard | name = Bahnhof Langensalza | type = rail | wikidata = Q62415577 | lastedit = 2026-04-10 | description = Betreuung nur mittels '''Video'''-Reisezentrum (geöffnet Mo-Fr 7:15–18:30, Sa 8:15–13:30), behindertengerechte Toilette nur mit entsprechendem Schlüssel. Am Bahnhof halten Regionalzüge aus Erfurt über Gotha oder über Gräfentonna sowie aus Kassel und Göttingen über Leinefelde und Mühlhausen. Der Bahnhof liegt am südlichen Stadtrand etwa ein Kilometer vom Stadtzentrum. Jeder hier verkehrende Zug bedient auch den Landkreis Gotha. Das nahegelegene [[Gotha]] bietet den nächsten ICE-Bahnhof. Mit der Stadtbuslinie B kann man direkt von der Haltestelle am Bahnhofsvorplatz Mo-Fr tagsüber halbstündlich und Sa vormittags alle zwei Stunden in die Innenstadt und zurück fahren; Aus-/Einstieg an der Endhaltestelle „Treffpunkt Wiebeckplatz“ (Fahrplan siehe [[#Mobilität|Mobilität]]). Das geschlossene Bahnhofsgebäude ist leider nicht einladend, obwohl es auch so noch vom früheren Wohlstand der Stadt zeugt, man wird aber im Ort dafür entschädigt. Zwischen Bahnhof und Busbahnhof gibt es den Imbiss ''Herbigs Grill''. }}
=== Mit dem Bus ===
Der {{Marker | type = bus | name = ZOB | lat=51.10166 | long=10.64270}} befindet sich ein Stück neben dem Bahnhofsvorplatz. Aufgrund der Lage bietet er nicht nur die Möglichkeit, über verschiedene Buslinien die benachbarten Gemeinden zu erreichen, sondern ermöglicht direkt zwischen Schienen-, Buslinien- und Stadtbusverkehr (Linie B, Haltestelle nicht am ZOB, sondern direkt am Bahnhofsvorplatz) zu wechseln. Auch [[Fernbusse in Deutschland|Fernbusse]] halten hier.
=== Auf der Straße ===
* Über die Autobahn {{RSIGN|DE|A|4}}, Anschlussstelle {{Ausfahrt|Eisenach-Ost,|40a,}} und der {{RSIGN|DE|B|84}} gelangt man in die Stadt.
* Die {{RSIGN|DE|B|247}} führt von [[Gotha]] oder von [[Mühlhausen (Thüringen)]] nach Bad Langensalza.
=== Mit dem Fahrrad ===
Der [[Unstrut-Radweg|Unstrut-Radweg]] durchquert den Ortsteil Thamsbrück.
== Mobilität ==
Aufgrund der Größe ist die Stadt gut zu Fuß zu erkunden. Parkplätze stehen auch an vielen Stellen zur Verfügung. Es gibt zwei Stadtbuslinien: [https://www.salzatours.de/fahrplanauskunft/ Fahrplanauskunft] der Salza–Tours König GmbH & Co. KG
* '''Linie A''' Gewerbegebiet Nord '''–''' EKZ Rasenmühlenweg – Treffpunkt Wiebeckplatz – Gutenbergstraße – Gewerbegebiet Ost
* '''Linie B''' Ufhoven Schenke – Bahnhof – Gutenbergstraße – Treffpunkt Wiebeckplatz & zurück
===Thiemsburg===
Buslinie 150 Verkehrsgemeinschaft Wartburgregion im Sommer mindestens 4 mal täglich Bad Langensalza - [[Thiemsburg]] - [[Behringen]] - [[Eisenach]].
== Sehenswürdigkeiten ==
[[Datei:LangensalzaGottesackerkirche.JPG|mini|Gottesackerkirche St. Trinitatis]]
=== Kirchen ===
* {{vCard | name = Marktkirche ''St. Bonifacii'' | comment = ev. Hauptkirche | type = church | wikidata = Q1901085 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/marktkirche-st-bonifacii/ | phone = +49 (0)3603 846402 | hours = Mo-Sa 14:00–16:00 und nach Vereinbarung | description = Die Marktkirche St. Bonifacii ist die evangelische Hauptkirche der Stadt und wurde in mehreren Bauphasen von Mitte des 13. bis Ende des 16. Jahrhunderts im Stil der Gotik erbaut und erweitert. Aus diesem Grund besteht sie aus vielen sich deutlich voneinander abhebenden Teilen. Eine Besonderheit ist die Einzeigeruhr am 74 m hohen Turm, einem der höchsten Kirchtürme in Thüringen. Die Malereien aus dem 16. Jahrhundert wurden erst Anfang des 20. Jahrhunderts wieder freigelegt. Die barocke Kanzel im Mittelschiff stammt aus dem Jahr 1734. Das Altarbild, eine Kreuzigungsszene darstellend, wurde vermutlich zwischen 1486 und 1490 hergestellt. Mai–Sep. Orgelmusik zur Marktzeit um 12 Uhr.
}}
* {{vCard | name = Bergkirche ''St. Stephani'' | type = church | wikidata = Q16857152 | url = https://evangelische-kirche-lsz.de/bergkirche-st-stephani-st-stephan/ | description = Ursprünglich außerhalb der ersten Stadtmauer als dreischiffige Basillika erbaut war sie die Pfarrkirche der Neustadt. Das im Jahr 1196 erstmals urkundlich als Kapelle erwähnte Gotteshaus ist der älteste Sakralbau in Bad Langensalza. Aus einer ursprünglichen Mönchskapelle entwickelte sich die Kirche durch Um- und Anbauten. Die Kanzel wurde 1590 im Renaissancestil aufgebaut. Die Glasfenster sind Stiftungen der Bürger im 19. Jahrhundert. An den Decken sind heute noch die Wappen der Spenderfamilien zu sehen. Die Orgel der Kirche wurde 1884/1985 von dem Bad Langensalzaer Orgelbauer [[w:Friedrich Erdmann Petersilie|Friedrich Petersilie]] erbaut. Der Turm hat eine Höhe von 53,5{{nnbsp}}m.
}}
* {{vCard | name = Gottesackerkirche ''St. Trinitatis'' | type = church | wikidata = Q16857154 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/gottesackerkirche-st-trinitatis/ | address = Tuchmachergasse 5, 99947 Bad Langensalza | directions = Im [[#vCard_Arboretum|Arboretum]], direkt neben dem Eingang. | hours = Nur bei Veranstaltungen zugänglich | lastedit = 2026-04-14 | description = Die Friedhofskirche wird als Konzertkirche mit vielfältigen musikalischen Veranstaltungen und einzigartiger Akustik genutzt. '''Geschichte''': Die Kirche wurde 1734–1739 unter der Schirmherrschaft von Herzog ''Christian von Sachsen–Weißenfels'' mit Travertinsteinen der im 30-jährigen Krieg zerstörten Marienkirche errichtet, woran die Kartusche über dem östlichen Portal erinnert. Über das Spitzbogenportal an der Westseite gelangt man zu den restaurierten Grüften. In Gegensatz zum strengen, symmetrischen Außenbau steht die reiche barocke Innenausstattung der Saalkirche mit zweigeschossigen Holzemporen und dem Kanzelaltar von 1734. Die aufwendige Gestaltung des Deckengewölbes zeigt sich in den barocken Malereien in ovalen Medaillons und Stuckaturen. Zur Ausstattung gehören das Madonnen-Relief aus der Marienkirche, zwei barocke Epitaphien und eine Orgel von ''Friedrich Erdmann Petersilie'' (1869). Umfangreiche Sanierungs- und Restaurierungsarbeiten 2008/2009 führten zu neuem Glanz.
}}
=== Bauwerke ===
* {{vCard|name=Rathaus|type=town hall|wikidata=Q119440667|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/rathaus/|description=Das Glockenspiel mit 32 Glocken und 5 Figuren kann 16 verschiedene Melodien spielen und erklingt täglich um 12 und 18 Uhr. Möglichkeit zu einer [https://badlangensalza.de/kur-tourismus/planen-buchen/gastefuhrungen/gruppenfuehrungen-3/unter-dem-pflaster/ Stadt- und Kellerführung], Dauer: 120 min, Preis 135,00 €, optional: „Herrliches Gesöff“ zum Abschluss zzgl. 2,50 € pro Getränk.
}}
* {{vCard | name = Schloss Dryburg | type = chateau | wikidata = Q2240669 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/schloss-dryburg/ | hours = Galerie: Do–Sa 14:00–17:00 und nach Vereinbarung. An Feiertagen geschlossen | lastedit = 2026-04-12 | description = Das Schloss Dryburg ist das älteste erhaltene, komplett aus Stein gemauerte Profangebäude in der Stadt. Von der mittelalterlichen Kernburg ist noch der Westflügel erhalten. Er beherbergt seit Anfang 2011 unter anderem die Galerie des [https://www.kunstwestthueringer.com/ Kunstwestthüringer e. V.], für Kunstliebhaber ein Muss. Der gemeinnützige Kunstverein sieht seine Aufgabe in Präsentation, Vermittlung und Aktion in Sachen zeitgenössischer bildender Kunst. Pro Jahr sind ca. sechs Ausstellungen zu sehen, eine davon immer im Mai ist die Präsentation von Werken internationaler Künstler.
}}
* {{vCard | name = Friederikenschlösschen | type = chateau | wikidata = Q19279910 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/friederikenschloesschen/ | address = Mauergasse 2, 99947 Bad Langensalza | hours = „Tag des offenen Schlösschens“ jeweils 14:00–17:00, aktuell: 17.05.26, 28.06.26, 12.07.26, 02.08.26, 16.08.26, 13.09.26 (Tag des offenen Denkmals 10:00–17:00), 18.10.26 | price = frei / auf Spendenbasis | lastedit = 2026-04-08 | description = Die Herzoginwitwe Friederike von Sachsen-Weißenfels ließ 1749 bis 1751 das Rokoko-Lustschloss errichten. Im Festsaal des Friederikenschlösschens werden Kleinkunstprogramme und Kammerkonzerte aufgeführt.
}}
* {{vCard | name = Stadtmauer und Türme | type = monument | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmauer-und-tuerme/ | lat = 51.10934 | long = 10.64943 | description = Bad Langensalza besitzt bis heute einen gut erhaltenen mittelalterlichen Stadtmauerring, von dem noch 16 Wachtürme und ein Eingangstor erhalten geblieben sind. Der 35,40 Meter hohe Klagetorturm an der Kurpromenade ist einer der wenigen noch erhaltenen Tortürme in Thüringen.
}}
* {{vCard | name = Kultur- und Kongresszentrum Bad Langensalza | comment = Jahnplatz als Parkfläche direkt hinter dem Haus | type = conference center | url = https://www.kkz-badlangensalza.de/ | address = Bürgermeister–Schönau–Platz 1, 99947 Bad Langensalza | lat = 51.11050 | long = 10.64223 | phone = +49 (0)3603 859 190 | email = kkz@bad-langensalza.de | lastedit = 2026-04-14 | description = NUTZUNG: Für Veranstaltungen (Tagung, Festlichkeit oder Konzert) von 10 bis zu 500 Personen: Unterschiedliche Räumlichkeiten (Saal, Bühne, Clubraum (Hufelandraum), Probesaal (Wieglebsaal), Saalnebenräume (Kloppstocksaal), kleiner Saal (Hermstedtsaal), Foyer) für jeden Anlass, moderne Tagungs- und Bühnentechnik, erfahrenes Veranstaltungsmanagement und hochwertige Gastronomie. Die Stadt veranstaltet hier (wie in der [[#vCard_Q16857154|Konzertkirche]] und an anderen Orten) diverse Events, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender]. GESCHICHTE: Das heutige Kultur- und Kongresszentrum hat eine lange Geschichte und wurde ehemals als Schützenhaus (erstmalige Erwähnung der „sagittarii“, der „Kappentragenden Pfeilschützen“, im Jahre 1380) erbaut und ersetzte zwei Vorgängerbauten für die Langensalzaer Schützengilde. Von 1717–1733 wurde das erste Schützenhaus errichtet und litt dann unter den deutschen Befreiungskriegen (1813 Pulvermagazin, 1814 Lazarett). Das baufällige Fachwerkgebäude diente nicht mehr seinem Zweck und wurde 1833 abgerissen. Der Neubau wurde dem Mauermeister ''Johann Benjamin Schneider'' und dem Zimmermeister ''Christian Andreas Wenk'' übertragen. Da die Schützen die Kosten nicht tragen konnten, wurden 215 Aktien verkauft. Grundsteinlegung war 1833, die Einweihung selbst fand im Juli 1834 statt. Der umfangreichere Neubau erhielt an der Frontseite einen repräsentativen Balkon sowie einen dreiseitigen Giebel. Bei den Kapitulationsverhandlungen 1866 (Hannover vs. Preußen) gastierte der König Georg V. von Hannover im Juni 1866 im Schützenhaus und der Kriegsrat besiegelte die Kapitulation. Im Nachhinein erfolgte die Benennung als „Königszimmer“ oder „Blaues Zimmer“. im Dezember 1906 wurde das gesamte Gebäude ein Raub der Flammen, glücklicherweise gab es.eine Entschädigungszahlung der ''Provinzial-Feuersozietät''. Das nach Bauplänen des hiesigen Stadtbaumeisters '''Ferdinand Kummer'' im November 1907 fertiggestellte Gebäude wurde mit Festbankett und Festball eingeweiht. Die veralteten Schießstände mussten auf königlichen Befehl erneuert und umzäunt werden. Im 1. Weltkrieg pausierten die Vereinsaktivitäten und das Schützenhaus wurde ab Herbst 1914 bis Anfang 1919 als Reservelazarett genutzt. Nach dem 2. Weltkrieg wurde das Schützenhaus von der Besatzungsmacht beschlagnahmt und 1946 mit dem Ziel der Errichtung eines Kulturzentrums der Sozialistischen Einheitspartei Deutschlands übertragen. Die Umbenennung des Gebäudes in Kulturhaus erfolgte schließlich Abfang Oktober 1952. Ab Januar 1961 wurde das geschlossene Kulturhaus in drei Bauabschnitten umgestaltet, die Gastronomie modernisiert. Mit einer symbolischen Schlüsselübergabe eröffnete das renovierte Kulturhaus Ende April 1962 und der Kulturhaus–Beirat kümmerte sich um die Nutzung. Der Kulturhausgarten wurde erstmals 1967 genutzt, die alte Kegelbahn 1978 abgerissen. Im Juni 1986 erfolgte einen Komplettumbau. Aufgrund von finanziellen und materiellen Engpässen wurden die Handwerker immer wieder unterbrochen, denn in den Wirren der Wendezeit versiegten die Geldquellen. Mit Hilfe von Bundes- und Landesmitteln konnte das Vorhaben eines modernen Kultur- und Kongresszentrums schließlich vollendet werden. Die Wiedereröffnung fand im Rahmen einer feierlichen Veranstaltung am 21. Februar 1992 statt. Der neue Name repräsentierte die kulturellen und künstlerischen Aspekte. In Vorbereitung des Landesprojektes ''Mensch–Natur–Städtebau'' wurde im Jahr 2009 das Kultur- und Kongresszentrum abermals umfangreich restauriert und modernisiert, insbesondere die Rosenlounge, die Außenfassade und der große Saal erstrahlen in neuem Glanz.
}}
=== Aussichtspunkt ===
[[Datei:Langensalza Dreitürmeblick.jpg|mini|Drei-Türme-Blick]]
[[Datei:LangensalzaDreitürmeblick2.JPG|mini|Blick durch die Skulptur]]
* {{vCard|name=Drei-Türme-Blick|type=viewpoint | lat = 51.1092 | long = 10.6417 |directions = vor der Gottesackerkirche neben dem Eingang in das Arboretum |url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/drei-tuerme-blick/ |description= Vom „Argusblick“ (die Skulptur wurde von dem Bad Langensalzaer Künstler [[w:Harald_Stieding|Harald Stieding]] geschaffen), einem aus Stein gehauenen Auge, das auf einer Travertinsäule thront, sind der Turm der einstigen Augustinerkirche, der Turm des Rathauses und schließlich der Turm der Marktkirche St. Bonifacii zu sehen. Diese drei Türme prägen die Ansicht der Kurstadt und sind immer wieder ein beliebtes Fotomotiv.
}}
=== Museen ===
[[Datei:Schild Wassermuseum vor Klagetor Bad Langensalza.jpg|mini|upright|Schild Wassermuseum mit dem Klagetor im Hintergrund]]
* {{vCard|name=Stadtmuseum im Augustinerkloster|type=museum|wikidata=Q76639038|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmuseum-im-augustinerkloster/|address=Augustinerplatz 1-2, 99947 Bad Langensalza|phone=+49 03603 813002|email=stadtmuseum@bad-langensalza.de|hours=Fr–So 13:00–17:00, Feiertagsregelungen beachten|price=Normal 5,00{{nnbsp}}€/Tag, erm. 4,00{{nnbsp}}€/Tag, Kinder und Schüler frei; Kombiticket Apotheken- und Stadtmuseum Erw. 8,00{{nnbsp}}€, erm. 6,00{{nnbsp}}€|lastedit=2026-04-01
}}
* {{vCard | name = Thüringer Apothekenmuseum | comment = im „Haus Rosenthal“ | type = museum | wikidata = Q20479980 | hours = Derzeit wie [[#vCard_Q76639038|Stadtmuseum]] | price = Wie [[#vCard_Q76639038|Stadtmuseum]] | lastedit = 2026-04-05 | description = Das historische Gebäude „Haus Rosenthal“ beherbergt seit Mai 2014 das Thüringer Apothekenmuseum. Die Besucher können im restaurierten Baudenkmal aus dem Jahr 1515, dessen Renovierung in einem FIlm gezeigt wird, u.{{nnbsp}}a. die historischen Wandvertäfelungen und zwei Holzstuben auf sich wirken lassen. Für die gelungene Sanierung erhielt die Stadt im Wettbewerb um den''Thüringer Holzbaupreis 2013'' eine Anerkennung sowie im Jahr 2015 den Thüringer Denkmalschutzpreis. Im Obergeschoss des Baudenkmals wird auf 276{{nnbsp}}m² eine Ausstellung zur Pharmaziegeschichte des 18. bis 20. Jahrhunderts präsentiert. In acht Räumen sind die verschiedenen Arbeitsbereiche einer alten Apotheke abgebildet. Neben einer Darstellung des Lebens und Wirkens des Langensalzaer Apothekers und Chemikers ''Johann Christian Wiegleb'' (1732–1800) werden Standgefäße aus Glas, Porzellan und Holz sowie eine Vielzahl an pharmazeutischen Arbeitsgeräten zur Herstellung von Arzneimitteln gezeigt. Das Museum ergänzt der angrenzende [[#vCard_Apothekergarten|Apothekergarten]], in dem mehr als 80 verschiedene, überwiegend heimische, Heilkräuter wachsen. Hinweis: Im Gebäude sind nur die Ausstellungen im Erdgeschoß sowie der Apothekergarten barrierefrei zu erreichen.
}}
* {{vCard | name = Rosenmuseum | comment = beim [[#vCard_Q112079448|Rosengarten]] | type = museum | address = Vor dem Klagetor 3, 99947 Bad Langensalza | directions = Zugang beim Kassenhäuschen des Rosengartens | lat = 51.11081 | long = 10.65237 | phone = +49 03603 834424 | hours = Wie [[#vCard_Q112079448|Rosengarten]] | lastedit = 2026-04-08 | description = Das Museum hat sich seit seiner Einrichtung kaum verändert und strahlt daher ein entsprechendes Flair aus, ist aber auch sehr informativ. Beispielsweise lernt man die In-vitro-Vermehrung von Rosen, bei der dünnste Scheiben von Rosenknospen steril in Nährmedien kultiviert werden, kennen, die die schnelle Produktion großer Mengen von Klonen ermöglicht. Das Museum soll beginnend mit der Saison 2026 sukzessive erneuert und mit modernen Medien ausgestattet werden.
}}
* {{vCard|name=Historische Druckerei|id=Historische_Druckerei|type=museum|lat=51.1092|long=10.6512|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/historische-druckerei/|hours=ganzjährig Di,Mi, Fr 9:00–12:00, sowie nach Vereinbarung|price=frei|description=Im Park des Friederikenschlösschens in der ehemaligen Kutscherremise befindet sich seit März 2008 die „Historische Druckerei“. Sie beherbergt heute u.{{nnbsp}}a. eine beeindruckende Handtiegelpresse aus dem Jahr 1854 sowie diverse Utensilien für den Handsatz und wird in kleinem Rahmen nach wie vor für Sonderdrucke genutzt. Die Druckerei kann an drei Tagen in der Woche vormittags ganzjährig besichtigt werden und die Besucher erhalten auf Wunsch von einem der sie betreuenden ehemaligen Setzer eine Führung mit der Möglichkeit, selbst ein Andenken zu drucken.}}
* {{vCard | name = Wassermuseum | type = museum | address = Hüngelsgasse 13, 99947 Bad Langensalza | lat = 51.11079 | long = 10.64951 | phone = +49 (0)3603 84070 | hours = Di 8:00–12:00, 13:30–17:30; Do 8:00–12:00, 13:30–15:30 | image = Wassermuseum Bad Langensalza.JPG | lastedit = 2026-04-07 | description = Betreiber: Verbandswasserwerk Bad Langensalza / Abwasserzweckverband (WAZV) "Mittlere Unstrut". Die beiden Google-Rezensionen des winzigen Museums im Eingangsbereich des Amtes innerhalb des letzten Jahres sind 5/5.
}}
=== Parks und Gärten ===
[[Datei:Bad Langensalza Arboretum Lageplan.jpg|mini|Lageplan Arboretum]]
[[Datei:Bad Langensalza Arboretum Pflanzensystematik.jpg|mini|Pflanzensystematik Arboretum]]
[[Datei:Bad Langensalza, japanischer Garten, Bild 8.jpg|mini|Japanischer Garten]]
[[Datei:Bad Langensalza 2022 - Rosengarten.jpg|mini|Rosengarten]]
[[Datei:Erblühende Magnolien am Wasserlauf vor Magnoliengarten Bad Langensalza.jpg|mini|Erblühende Magnolien am Wasserlauf vor dem Magnoliengarten]]
[[Datei:Ulmus parvifolia "Chinesische Kiefer" frei aufrechte Form Alter ca. 130 Jahre Japanischer Garten Bad Langensalza 02.jpg|mini|upright|Austreibender Bonsai Ulmus parvifolia „Chinesische Kiefer“, frei aufrechte Form, Alter ca. 130 Jahre, vor blühendem Baum im Japanischen Garten]]
Die Stadt besticht durch eine Vielzahl von [https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/ Parks und Gärten]:
* {{vCard | name = Arboretum | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/arboretum/ | lat = 51.10834 | long = 10.63949 | hours = Mär,Okt: täglich 10:00–18:00, Apr–Sep: täglich 10:00–19:00, Nov–Feb: geschlossen | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Das Arboretum (Baumgarten) ist eine geschichtsträchtige Parkanlage. Es lädt neben Entspannung und Erholung zum bummeln durch die Vielfalt an Bäumen und Sträuchern ein. Hier ist der Jahrezeitenwechsel am deutlichsten von allen Gärten der Stadt zu erleben. So zeigt sich das Arboretum von von Mitte März bis Oktober im bunten Blüten- und Blätterkleid. Auch bevor die Bäume ausschlagen bereichern den Garten zur Frühjahrsblüte durch früh blühende [[w:Magnolien|Magnolien]] und [[w:Frühjahrsblüher|Frühjahrsblüher]] mehr als nur einzelne Farbtupfer. Im Arboretum wachsen über 200 verschiedene Arten von [[w:Gehölz|Gehölz]]en, die zu mehr als 20 Pflanzenfamilien gehören. Eine umfangreiche Erweiterung der Gehölzsammlung konnte fast ausschließlich durch Spenden von Bürgern, Unternehmen und Institutionen realisiert werden. Ergänzt wird der Eindruck durch die zwölf Skulpturen aus Holz und Muschelkalk von neun Künstlern aus vier Ländern sowie einem Zeugnis der Stadtgeschichte, dem ''Hannoveraner Denkmal'', das an die Schlacht bei Langensalza 1866 erinnert. Die ebenfalls dort befindliche [[#vCard_Q16857154|Gottesackerkirche]] aus dem Jahr 1734 (von 2008–2009 saniert) wird als Konzertkirche ''St. Trinitatis'' genutzt. Das Arboretum ist zusätzlich zu einem Lageplan reichlich mit Text und Systematiken auf Schautafeln beschildert, so dass man viel über die [[w:Systematik des Pflanzenreichs|Systematik des Pflanzenreichs]] erfährt und die Gehölze entsprechend leicht finden und zuordnen kann. | id = Arboretum
}}
* {{vCard | name = Botanischer Garten ''Garten der Vielfalt'' | type = botanical garden | wikidata = Q4948492 | hours = Mai–Okt täglich 10:00–18:00 | price = frei | subtype = nodogs | lastedit = 2026-04-11 | description = Der Garten mit einem Sukkulentenhaus im Zentrum ist nach dem Umbau der ''[[#vCard_Friederiken Therme|Friederiken Therme]]'' seit 2025 erneut geöffnet und beinhaltet auch ein Kneippsches Tretbecken; insbesondere der Alpingarten (Alpinum) und die Gräserlandschaft werden zurzeit wieder neu angelegt. Besonders beeindrucken die teils sehr großen Goldkugelkakteen („Schwiegermuttersitz“ bzw. „-stuhl“).
}}
* {{vCard | name = Japanischer Garten ''Garten der Glückseligkeit'' | name-local = (jap. 幸福の庭, Kōfuku no niwa | alt = genauer ein [[w:Japanischer Wandelgarten|Japanischer Wandelgarten]] | type = garden | wikidata = Q26821540 | hours = Mär, Okt: täglich 10:00–18:00; Apr-Sep: täglich 10:00–19:00 | price = ab 12 J. 6,00 €/Tag, erm. 5,00 €/Tag; Feierabendticket (ab 17:00) 4,00 €/Tag; Kombiticket (alle Gärten, Stadt- und Apothekenmuseum) 20,00 €/Tag, erm. 16,00 €/Tag; bei Sonderveranstaltungen teils andere Preise | subtype = nodogs | lastedit = 2026-04-05 | description = Besucher tauchen ein in die Harmonie der Stille der verschiedenen Landschaften. Das Wasser hat eine wichtige symbolische Bedeutung: Wellenbewegungen fließen vom Wasserfall über den Teich in den Trockenbach, Pflanzen und Steine führen die Bewegung weiter. Im Kontrast zur Teichlandschaft steht die Trockenlandschaft. Ein Pflanzenpavillon mit Teehaus und der „Pavillon des Teetrinkens“, in dem ohne Zeremonie grüner Tee gereicht wird, ergänzen das Ensemble. Im April beginnen die Kirsch- und Magnoilienblüte, im Mai blüht die Azaleenlandschaft, Iris und Seerosen folgen im Juni. Es finden diverse Veranstaltungen (mit Vorführung japanischer Kampf- und Trommelkünste, Origami, Sushi uvm.) statt: Hanami Kirschblütenfest (April, aktuell 25. April 2026), Kodomo NoHi Kinderfest (Mai), Märchenfest (Juni), Tanabata Sternenfest (Juli). Im Dezember 2025 wurde zudem erstmalig (innerhalb der eigentlich üblichen Schließzeit November bis Februar) eine ''Fernöstliche Lichter-Poesie'' veranstaltet. Bei dieser wurde der Garten mit wechselnden Lichtfarben beleuchtet, es gab zwei Videoprojektionen u.{{nnbsp}}a. mit Videos und Bildern über den Garten sowie Musikuntermalung. Nach Aussage der Mitarbeiter war die Veranstaltung so gut besucht, dass sie vsl. in den kommenden Jahren wiederholt wird.
}}
* {{vCard|name=Kurpark|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/kurpark/|lat=51.10881|long=10.65008|hours=24/7|price=frei|lastedit=2026-03-05|description=Der Park liegt teilweise entlang der Stadtmauer und ist zur Hälfte von einem kleinen Wasserlauf durchzogen. Am einen Ende befindet sich ein künstlicher Wasserfall, und der Weg führt dann vorbei am Friederikenschlösschen, einem Kinderspielplatz, dem Abzweig zum Rosengarten, weiter zwischen dem Japanischen Garten und dem Natur!Gärten und geht dann in den Weg zum Magnoliengarten und den Botanischen Garten über. Blumenbeete, zugeschnittene Bäume und Bögen aus Büschen, unter denen man durchgehen kann, bereichern das Ambiente.}}
* {{vCard | name = Rosengarten ''Garten der Liebe'' | type = garden | wikidata = Q112079448 | hours = Mai-Sep: täglich 10:00–19:00; Okt: täglich 10:00-–8:00 | price = Wie [[#vCard_Q26821540|Japanischer Garten]] | subtype = nodogs | lastedit = 2026-04-05 | description = Auf 18.000 qm erblühen und duften fast 450 Rosenarten wie historische und Englische Rosen, Wildrosen und Edelrosen, Rosenhochstämme und Kleinstrauchrosen; besonders sehenswert ist die Sammlung der Bad Langensalzaer Rosen (1950–990 wurden hier allein 91 Rosensorten gezüchtet. Anni Berger, die einzige Rosenzüchterin Deutschlands, war in Bad Langensalza tätig. Sie ist Namensgeberin einer Stiftung, die die Rosentradition, Denkmalpflege und Umweltschutz fördert – vgl. Anni-Berger-Stiftung.de), Skulpturen der Künstler Gert van Acker und Harald Stieding ergänzen das Gartenbild. Da auch die Vorgärten und die Stadtplätze vielfältige Rosen zieren, verwundert es nicht, dass 2002 der Stadt das Prädikat „Rosenstadt“ verliehen wurde.
}}
* {{vCard | name = Magnoliengarten | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/magnoliengarten/ | lat = 51.11366 | long = 10.64912 | hours = 24/7 | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Der 2006 eröffnete Magnoliengarten zeigt auf 1.500 qm mehr als 30 Magnolienarten, die von März bis Juli blühen – eine Zaubernuss beginnt den Blütenreigen. Magnolien gehören mit zu den ältesten Blütenpflanzen der Erde (vor der Eiszeit auch in Europa heimisch!), die heute in Ostasien und Amerika zu finden sind. Ergänzt werden sie durch Hortensien, Waldreben, Ginkgobäume sowie Blumen und Sträucher, teils auf einem kleinen Hügel als weiteres gestalterisches Element.
}}
* {{vCard | name = Schlösschenpark | comment = des [[#vCard_Q19279910|Friederikenschlösschens]] | type = park | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/schloesschenpark/ | lat = 51.10892 | long = 10.65177 | price = frei | lastedit = 2026-04-05 | description = Der von der der Herzogin Friederike von Sachsen-Weißenfels terrassenartig angelegte kleine Park aus der Mitte des 18. Jahrhunderts mit Blick auf das Schlösschen lädt zum Verweilen ein. Im hinteren Teil des Gartens ist ein historischer Gartenpavillon aus dem Jahr 1878 erhalten. Dort sprudelt aus einem Bronzebecken Schwefelwasser, das seit 1812 in der Kurstadt Bad Langensalza als Heilwasser verwendet wird. In der ehemaligen Remise befindet sich eine [[#vCard_Historische_Druckerei|historische Druckerei]].
}}
* {{vCard | name = Apothekergarten | alt = ''Garten der Heilkräuter'' | comment = beim [[#vCard_Q20479980|Apothekenmuseum]] | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/apothekergarten/ | lat = 51.11016 | long = 10.64459 | hours = Wie Apothekenmuseum, in der Wintersaison geschlossen | lastedit = 2026-04-05 | description = Der Apothekergarten hinter dem „Haus Rosenthal“ (daher nur über das Apothekenmuseum zugänglich) zeigt eine Auswahl an in Mitteldeutschland heimischer Pflanzen, die immer noch zur Herstellung von Arzneidrogen verwendet werden. Die Heilpflanzen sind in neun Beeten nach ihren Anwendungen bzw. medizinischer Indikation geordnet und beschildert. Umsäumt werden die Kräuterbeete von Blumen (Rosen brauchen in Bad Langensalza gar nicht extra erwähnt werden) sowie einigen Obstbäumen und Sträuchern. | id = Apothekergarten
}}
* {{vCard | name = Natur!Garten | comment = betrieben vom [[w:Bund_für_Umwelt_und_Naturschutz_Deutschland|BUND]] Ortsverband Bad Langensalza[https://badlangensalza.bund.net/]. Das '''Café'''[https://baeckerei-esche.de/bund-naturgarten-cafe/] im Garten hat '''kürzere''' Öffnungszeiten: Apr–Okt Mi–Fr 13:00–17:00, Sa/So/Fe bis 18:00 | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/naturgarten/ | lat = 51.1121 | long = 10.6489 | hours = Mär–Okt: täglich 8:00–18:00 | price = frei | lastedit = 2026-04-05 | description = Der 1.600 m² große Garten ermöglicht es, die Natur anzufassen (-> einheimische Pflanzen und Insekten). Er besteht seit 1994 auf und wurde 2019/20 neu gestaltet, dazu gehörten ein Pflanzenbestand mit über 1.000 neuen einheimischen bzw. für einen Bauerngarten typische Blumenzwiebeln, Stauden und Gehölze. Der Garten dient auch der Umweltbildung und verbindet einen nachhaltigen Bauerngarten (zentrales Brunnenhäuschen, Obst- und Gemüsebeete, Kräuterbank, klassische Bauerngarten-Blumenbeete, Färberpflanzen, Kompost) mit einem reinen Naturgarten (Blumenrasen, Wild-Stauden-Wall, „Beet der Flatterlinge“, Teich mit Sumpfwiese, Benjes-Hecke, größter Mirabellen-Baum und höchster Holunder-Strauch von Bad Langensalza). Kinder dürfen spielen und die Natur erforschen, Erwachsene erhalten Anregungen für eine naturnahe Gartengestaltung. Nätürlich ist auch für Verweilplätze gesorgt. Last but not least erreicht man durch den Garten das '''einzige begehbare Stück Stadtmauer-Wehrgang''' und zwei Stadtmauertürme. Zur nach ökologischen Gesichtspunkten sanierten Stadtmauer gehören im Stadtmauer-Rundturm ein „Raum der Stille“ und im Eckturm die Lese-Ecken.
}}
* {{vCard|name=TRACO Park|alt=Garten des Travertins|comment=betrieben von der Firma [https://traco.de/ TRACO]|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/traco-park/|address=Poststraße 17, 99947 Bad Langensalza|lat=51.1039|long=10.6377|phone=+49 (0)3603 8520|hours=Mo–Fr 9:00–18:00, Sa 10:00–13:00, in den Wintermonaten verkürzt|price=frei|subtype=wheelchair, free parking|lastedit=2026-04-10|description=Ausstellungsgarten zeigt breites Spektrum der natürlichen und ästhetischen Garten- und Landschaftsgestaltung mit Sandstein, Muschelkalk und Travertin aus firmeneigenen Steinbrüchen bei Weimar, Gotha und Bad Langensalza: Mauern, Treppen, Wege, Wasserkunst….}}
== Aktivitäten ==
* {{vCard | name = Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | lat = 51.11442 | long = 10.64683 | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = ''Thermalbad+Sauna'': So–Mi 10:00–21:00, Do–Sa 10:00–22:00 | price = ab 5{{nnbsp}}J komplexes Preissystem: Bad, Sauna, Kombitarife, Spättarife, Rabatte, s. Webseite | lastedit = 2026-04-13 | description = (Kinder bis zur Vollendung des 12.{{nnbsp}}Lebensjahres nur in Begleitung Erwachsener.) Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT).
}}
* {{vCard | name = Kino ''Burgtheater'' | type = cinema | url = https://burg-theater.de/ | address = Vor dem Schlosse 5e, 99947 Bad Langensalza | lat = 51.10903 | long = 10.64725 | phone = +49 (0)3603 846206 | fax = +49 (0)3212 1080916 | email = kino@burg-theater.de | hours = Tageweise Mo-So, teils ab 12:15, letzte Vorstellung 20:00 | price = 6,50–10 €; Aufschläge: ab 120 min +0,50 €, ab 140 min +1 €, 3D–Filme +2,50 €, teils Kinderermäßigungen vor 19:00; Di. Kinotag (nicht feiertags) | lastedit = 2026-04-08
}}
* {{vCard | name = Kindererlebniswelt ''Rumpelburg'' | type = children | url = https://kindererlebniswelt-rumpelburg.de/ | address = Sperlingsgasse 4, 99947 Bad Langensalza | lat = 51.10664 | long = 10.64754 | phone = +49 (0)3603 398-4604 | email = info@kindererlebniswelt-rumpelburg.de | hours = Di–Fr 14:00–18:00, Sa 10:00–18:00, So 10:00–17:00, auf Vorbestellung für Gruppen Di–Fr 10:00–13:00, Schließzeiten beachten (ges. Feiertage, Sommer-Betriebsferien, Weihnachtsferien) | price = 0–1J frei, 1–2J 3,50{{nnbsp}}€/1{{nnbsp}}Std, ab 2J/Erw. 4,00{{nnbsp}}€/1{{nnbsp}}Std, Rabatte/Sonderaktionen s. Webseite | lastedit = 2026-04-10 | description = Klettern, rutschen und toben in einer fantastischen Welt mit Spiel, Spaß und Entdeckungen. Netzbrücken, geheimnisvolle Baumhäuser, riesige Puppenstube und wilde Rutschpartien – Abwechslung bei jedem Wetter für Groß und Klein. Ereignisreiche Stunden durch verschiedene Rollen spielerisch erleben in: Spielhaus, Schiff, Tiergehege mit Holztieren oder Spielstadt. Aufmerksame Kinder entdecken vielleicht die geheimnisvollen Rumpelburgbewohner: Rosentroll Puck, Wasserelfe Tine oder Rumpel, das Gespenst.
}}
* Die Stadt veranstaltet insbesondere in der [[Bad Langensalza#vCard Q16857154|Konzertkirche]], dem [[Bad Langensalza#vCard Kongress- und Kulturzentrum Bad Langensalza|Kongress- und Kulturzentrum Bad Langensalza]] sowie an anderen Orten diverse '''Events''' wie beispielsweise Konzerte, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender Eventkalender].
* '''[https://badlangensalza.de/kur-tourismus/planen-buchen/veranstaltungen/veranstaltungshighlights/mittelalterstadtfest/ Mittelalterstadtfest]''' mit Handwerker- und Händlerständen, Musik- und Kleinkunstprogramm sowie Schaukämpfen am letzten Augustwochenende (aktuell 29./30. August 2026)
* Im ''Japanischen Garten'' finden diverse Veranstaltungen statt (Details finden sich beim [[#vCard_Q26821540|Japanischen Garten]]):
** '''Hanami Kirschblütenfest''' (April)
** '''Kodomo NoHi Kinderfest''' (Mai)
** '''Märchenfest''' (Juni)
** '''Tanabata Sternenfest''' (Juli)
** '''Fernöstliche Lichter-Poesie''': Sie wurde im Dezember 2025 (innerhalb der eigentlich üblichen Schließzeit November bis Februar) erstmalig veranstaltet und wird vsl. in den kommenden Jahren wiederholt.
* {{vCard | name = Flugplatz Bad Langensalza | type = landing site | wikidata = Q2900762 | directions = 3{{nnbsp}}km nordwestlich von Bad Langensalza | show = copy| price = Schnupperflug ab 30 €; ''Pilot für einen Tag'' (ca. 3 Std.) 199 € | lastedit = 2026-04-04 | description = Er wurde 1927 errichtet und von der [[w:Wehrmacht|Wehrmacht]] genutzt. Aktuell wird der [[w:Sonderlandeplatz|Sonderlandeplatz]] vom Flugsportverein ''„Otto Lilienthal“ Bad Langensalza e.{{nnbsp}}V.'' betrieben. Er verfügt über eine Gras-Start- und Landebahn mit der Größe 800{{nnbsp}}m × 40{{nnbsp}}m. Angebote: Segelflug, Ultraleichtflug (UL-Flug), Rundflüge und Gastflüge.
}}
== Einkaufen ==
Es gibt Bad in Langensalza das typische Angebot einer Kleinstadt. Spezielle lokale Reisesouvenirs sind hier zu erwerben.
* {{vCard|name=Wochenmarkt|type=market|url=https://citymanagement-badlangensalza.de/events/wochenmarkt/|address=Fußgängerzone|lat=51.1086|long=10.6454|hours=Mi 8:00–14:00|lastedit=2026-04-06|description=Auf dem Wochenmarkt gibt es nicht nur frisches Obst und Gemüse, Geflügel und Fisch, Backwaren, Eier und Teigwaren, Wurst- und Käsesorten, Pasti und Antipasti, Gewürze, Kräuter, Honig und Marmeladen sowie Blumen und Pflanzen zu kaufen, man kann dort auch diverse warme Gerichte gleich essen oder mitnehmen. Viele der Angebote stammen dabei aus der Region. Für eine thüringer Stadt eher ungewöhnlich erhält man als eine der beiden je eintägigen Möglichkeiten im Ort ''[[w:Thüringer Rostbratwürste|Thüringer Rostbratwürste]]'' in einer Semmel (gute Wurst, sehr gutes Brötchen, 3{{nnbsp}}€).}}
* {{vCard | name = Buchhandlung ''Buchgeschwister'' | type = book seller | url = https://www.genialokal.de/buchhandlung/bad-langensalza/buchgeschwister/ | address = Mühlhäuser Str. 39, 99947 Bad Langensalza | lat = 51.10895 | long = 10.64475 | phone = +49 (0)3603 842449 | email = kontakt@buchgeschwister.com | instagram = buchgeschwister.lsz | hours = Di–Fr 10:00–13:00, 14:00–17:00, Sa 10:00–13:00 | image = Buchhandlung "Buchgeschwister" Bad Langensalza.jpg | lastedit = 2026-04-09 | description = sehr persönliche Beratung.
}}
== Küche ==
Bei vielen Cafés und Restaurants kann man auch draußen sitzen. Letztere haben oft werktags ein Mittagsangebot.
* {{vCard | name = Café Schwesterherz | comment = Gegründet von den Schwestern Anni und Ulrike | type = cafe | url = https://cafe-schwesterherz.jimdofree.com/ | address = Mühlhäuser Str. 2, 99947 Bad Langensalza | lat = 51.10878 | long = 10.64463 | phone = +49 (0)3603 3989345 | email = Cafe-Schwesterherz@freenet.de | hours = Di–Fr 9:00–17:30, 2.+4. Sa im Monat 9:30—17:00, 1.+3. Sa im Monat 9:30—12:30 | image = Cafe Schwesterherz Bad Langensalza.jpg | lastedit = 2026-04-08 | description = Uriges Ambiente mit der Möglichkeit, schöne Dinge zu erwerben und auch draußen zu sitzen. Eine der Spezialitäten sind nach dem Motto ''Kuchen wie bei Omi'' selbstgebackene Kuchen. Die ausführlichen Rezensionen des Cafés (Google 4,8/5) sprechen oft von begeisterten Besuchern. Um sicher einen Platz zu bekommen ist eine Reservierung empfehlenswert.
}}
* {{vCard | name = Ristorante Venezia | type = restaurant | url = https://www.venezia-restaurant.de/ | address = Marktstraße 31, 99947 Bad Langensalza | lat = 51.10820 | long = 10.64577 | phone = +49 03603 895469 | fax = +49 03603 8969308 | hours = tägl. 10:00–0:00, warme Küche durchgehend 11:00–23:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Villa Italia | type = restaurant | url = https://www.villa-italia.de/ | address = Kurpromenade 5a, 99947 Bad Langensalza | lat = 51.10838 | long = 10.65071 | phone = +49 03603 892861 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Punjabi Bad'sha | alt = Indisches Restaurant & Eiscafe | type = restaurant | url = https://www.punjabi-badshah.de/ | address = Kornmarkt 2, 99947 Bad Langensalza | lat = 51.10761 | long = 10.64739 | phone = +49 (0)36031 279246 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Herkules | type = restaurant | address = Steinweg 11, 99947 Bad Langensalza | lat = 51.10547 | long = 10.64209 | phone = +49 03603 1277321 | facebook = Restaurant.Herkules | hours = Di–Fr 17:00—23:00; Sa,So 11:30—14:30 und 17:00—23:00 | subtype = greek | lastedit = 2026-04-06 | description = Beliebter Grieche in passendem Ambiente.
}}
* {{vCard | name = Pizzeria Flamingo | type = restaurant | address = Steingrubenstraße 7, 99947 Bad Langensalza | lat = 51.10656 | long = 10.64428 | phone = +49 03603 1277589 | instagram = pizzeriaflamingoo | hours = Mo–Sa 10:30–21:30, So 13:00–21:30 | lastedit = 2026-04-06
}}
* {{vCard | name = PHANtastic | alt = Asian Fusion | comment = Gästeparkplatz hinten im Schlosshof 3, 99947 Bad Langensalza | type = restaurant | address = Marktstraße 3, 99947 Bad Langensalza | lat = 51.10866 | long = 10.64578 | phone = +49 (0)3603 8955218 | hours = Di-Sa 10:30-22:00, So 11:30-22:00, Mo nur feiertags geöffnet | lastedit = 2026-04-09 | description = Neueröffnung 11.4.2026, Aktionsangebot 11.4.—19.4.2026 15% Rabatt.
}}
* {{vCard | name = Ratswaage | type = restaurant | url = https://ratswaage-lsz.de/ | address = Mühlhäuser Straße 40, 99947 Bad Langensalza | lat = 51.10893 | long = 10.64494 | phone = +49 (0)3603 8955310 | email = info@ratswaage-lsz.de | hours = tägl. 11:00—14:30, 17:00—23:00 | image = Restaurant Ratswaage Bad Langensalza.jpg | lastedit = 2026-04-09
}}
* {{vCard|name=Asia Food & Salza Grill|type=restaurant|address=Rathausstraße 9, 99947 Bad Langensalza|lat=51.10818|long=10.64437|phone=+49 (0)3603 84 86 16|hours=Mo-Fr 11:00-21:00, So/Fe 11:00-21:00|price=günstig|payment=derzeit nur Barzahlung|subtype=asian, grill, takeaway|lastedit=2026-04-09|description=alle Speisen auch zum Mitnehmen, ein paar Tische innen und ein paar draußen, Personal freundlich, Essen gut, „große Portion“ heißt zu Recht so!
}}
* {{vCard | name = Schnitzel-Steak-Haus | type = restaurant | url = https://schnitzel-steak-haus.metro.rest/?lang=de | address = Marktstraße 19, 99947 Bad Langensalza | lat = 51.10830 | long = 10.64739 | phone = +49 (0)3603 896970 | email = dido2004@abv.bg | hours = Mo–So 10:00–22:00 | lastedit = 2026-04-10 | description = Jede Woche ein Mittagsmenü: typischerweise Suppe, zwei verschiedene Hauptgerichte, Eis.
}}
* {{vCard | name = Rosencafé | type = restaurant | url = https://www.rosencafe-bad-langensalza.de/ | address = Am Rosengarten 11, 99947 Bad Langensalza | directions = Direkt am [[#vCard_Q112079448|Rosengarten]], Zugangsmöglichkeit von dort aus, zurück benötigt man die Eintrittskarte für das Drehkreuz. Eingang auch vom neuen Wohngebiet aus. | lat = 51.11224 | long = 10.65247 | phone = +49 (0)3603 891601 | email = info@rosencafe-bad-langensalza.de | hours = Do–So 10:00–17:00, bis 15:00 warme Küche | subtype = accessible, parking | lastedit = 2026-04-17
}}
== Nachtleben ==
== Unterkunft ==
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig für Übernachtungsgäste eine [[#Kurtaxe|Kurtaxe]]. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza.
* {{vCard | name = Hotel Sante Royale | type = hotel, restaurant | url = https://www.sante-royale.de/hotels/bad-langensalza | address = Parkstraße 1, 99947 Bad Langensalza | lat = 51.11412 | long = 10.64527 | tollfree = +49 0800 9022090 | email = info.badlangensalza@sante-royale.com | subtype = 4, free wlan, restaurant, sauna, spa, dogs, indoor pool, outdoor pool | lastedit = 2026-04-07 | description = Großes, modernes Hotel mit 130 Zimmern und Suiten.
}}
* {{vCard| type = hotel |name=Hotel L.A. CHICAGO|address=Tonnaerstraße 33, 99947 Bad Langensalza |phone=+49 03603 856836|email=info@lachicago.de|fax=+49 03603 856837|url=http://www.lachicago.de |hours=|price= |lat=51.10675 |long=10.65281
}}
* {{vCard| type = hotel |name=Zur Lohgerberei |address=Löbersgasse 2, 99947 Bad Langensalza |phone=+49 03603 846131 |email=kontakt@pension-zur-lohgerberei.de |fax=+49 03603 894344 |url=http://www.pension-zur-lohgerberei.de/ |hours=|price=EZ ab 37 €, DZ ab 27 € (jeweils inkl. Frühstück). |lat=51.11096 |long=10.64662 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Zöllner |address=Steinweg 1, 99947 Bad Langensalza |phone=+49 03603 815664 |email=info@pension-zoellner-thueringen.de |fax= |url=http://www.pension-zoellner-thueringen.de/ |hours=|price=EZ ab 30 €, DZ ab 50 € (jeweils inkl. Frühstück). |lat=51.10611 |long=10.64204 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Bergstube |address=Bergstraße 7, 99947 Bad Langensalza |phone=+49 03603 846980 |email=j.schroe@tonline.de |fax=+49 03603 814132 |url=http://bergstube.de/ |hours=|price=EZ ab 35 €, DZ als EZ ab 43 €, DZ ab 55 €. |lat=51.13836 |long=10.63443 |lastedit= |description=
}}
* {{vCard| type = hotel |name=Gasthaus zur Weintraube |address=Mühlhäuser Straße 11, 99947 Bad Langensalza |phone=+49 03603 846133 |email=info@zur-weintraube.de |fax=+49 03603 892830 |url=http://zur-weintraube.de/ |hours= Gasthaus: tägl. ab 10:00 |price=EZ ab 35 €, DZ ab 65 € (jeweils inkl. Frühstück. |lat=51.10943 |long=10.64351 |lastedit=|description=
}}
== Sicherheit ==
* {{vCard|name=Polizeistation |wikidata=|type=police |address=Bahnhofstraße 3, 99947 Bad Langensalza |phone=+49 03603 8310 |email=|fax=|url=|hours=|price=|lat=51.10375 |long=10.64196 |lastedit=|description=}}
== Gesundheit ==
=== Krankenhäuser ===
* {{vCard | name = Hufelandklinik | type = hospital | wikidata = Q107295076 | hours = 24/7 (Notaufnahme) | lastedit = 2026-04-06
}}
* {{vCard|name=Rehaklinik |wikidata=|type=hospital |address=Kurpromenade 6-8, 99947 Bad Langensalza |phone=+49 03603 8030 |email=info@rehaklinik-badlangensalza.de |fax=+49 03603 803100 |url=https://www.rehaklinik-badlangensalza.de/ |hours=|price=|lat=51.10941 |long=10.65063 |lastedit=|description=
}}
=== Sonstiges ===
Es gibt im Ort ein Ärztehaus, ein Medizinisches Versorgungszentrum (MVZ), dieserse Arztpraxen, Zahnärzte sowie drei Apotheken und zwei Sanitätshäuser.
* {{vCard | name = Therapie- und Kurbereich mit MTT der Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = '''Therapie+Kurbereich'': Mo—Fr 7:30—19:30 und nach Vereinbarung; ''Medizinische Trainingstherapie'': Mo—Fr 9:00—19:30 und nach Vereinbarung, Sep—Feb zusätzlich Sa 10:00—14:00 (außer an Feiertagen) | lastedit = 2026-04-13 | description = Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT). | copy-marker = Friederiken Therme
}}
== Praktische Hinweise ==
* {{vCard|name=Touristinformation Langensalza|type=tourist information|url=https://badlangensalza.de/kur-tourismus/service-info/touristinfo/|address=Bei der Marktkirche 11, 99947 Bad Langensalza|lat=51.10791|long=10.64866|phone=+49 (0)3603 834424|fax=+49 (0)3603 834421|email=touristinfo@badlangensalza.de|hours=Apr—Okt: Mo—Fr 9:00—18:00, Sa/So 10:00—16:00, Fe 10:00—14:00; Nov—Mär: Mo-Fr 9:00—17:00, Sa/Fe 10:00—14:00, So geschlossen}}
* Die Stadt bietet an diversen Orten '''kostenloses WLAN''' namens [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/w-langensalza/ W-LANgensalza]. Es gibt einen [https://badlangensalza.de/core/webp-express/webp-images/uploads/sites/2/2024/03/csm_Stadtplan-WLAN_65049e16b6.jpg.webp Stadtplan mit den eingezeichneten Hotspots], zur Verfügung steht es hier:
** Kultur- und Kongresszentrum
** An der Alten Post/Jahnplatz
** Wiebeckplatz, Ecke Lange Straße
** Rathaus
** Bei der Marktkirche
** Parkplatz am Ende der Friedrich-Mann-Straße
** Kornmarkt
** Touristeninformation
* Stadtführungen werden angeboten. Die Informationen dazu sind bei der Tourismusinformation zu erfragen.
* Die Filiale der Post befindet sich in der Tonnaer Straße 38.
=== Kurtaxe ===
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [https://badlangensalza.de/kur-tourismus/planen-buchen/gaestekarte/ Kurtaxe]. Sie beträgt für Erwachsene 3,00{{nnbsp}}€/Übernachtung, für Kinder im Alter von 6 bis 15 Jahren 1,50{{nnbsp}}€/Übernachtung. Für Schwerbehinderte und Blinde mit Schwerbehindertenausweis wird der Kurbeitrag um 50{{nnbsp}}% ermäßigt. Erwerbsunfähige Kriegsbeschädigte und Begleitpersonen von Schwerbehinderten sind von der Kurtaxe befreit. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza. Details: [https://badlangensalza.de/storage/sites/2/2025/03/Kurbeitragssatzung.pdf Kurbeitragssatzung der Stadt Bad Langensalza (pdf)]
== Ausflüge ==
* Der [[Nationalpark Hainich]] mit dem [[w:Baumkronenpfad_Hainich|Baumkronenpfad]] ([https://www.nationalpark-hainich.de/de/ausflugsziele/baumkronenpfad.html Webseite des Nationalparks], [https://www.baumkronen-pfad.de/ Webseite Bad Langensalza]) an der [[w:Thiemsburg|Thiemsburg]] liegt nur wenige Kilometer südlich der Stadt.
* [[Eisenach]] mit der [[w:Wartburg|Wartburg]] ist mit dem Auto in weniger als 30 Minuten zu erreichen.
<!--
== Literatur ==
-->
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.10806| long= 10.64667| radius= }}
{{IstInKat|Thüringen||Thüringer Kernland||Kurort in Thüringen}}
8hnypwgei5x9cck8dq99l6dhrxlfulr
1769211
1769210
2026-04-17T11:30:16Z
Ousw
57729
Rosencafe oben einsortiert
1769211
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/ Touristinformation]
| TouriInfoTel = +49 (0)3603 834424
}}
Die Kur- und Rosenstadt '''Bad Langensalza''' ist eine ehemalige Kreisstadt am Nordwestrand des [[Thüringer Kernland|Thüringer Beckens]]. Neben einer Therme und zwei Kliniken kennzeichen die Stadt besonders ihre historische Altstadt, zehn Parks und Gärten, die teils ganzjährig zum Besuch einladen, sowie die Blumenpracht im gesamten Ort.
== Hintergrund ==
{{Mapframe|51.10806| long= 10.646|zoom=14|height=300|width=300|type=geoline}}
Bad Langensalza (bis 1956: Langensalza) ist ein Schwefel-Sole-Heilbad und staatlich anerkannter Kurort. Zu Beginn des 9. Jahrhunderts wurde erstmals ein Ort namens Salza – im lateinischen Text Salzaha – urkundlich erwähnt. Bad Langensalza gehört zu den historisch bedeutendsten Städten im Thüringer Becken, wovon die reichhaltige historische Bausubstanz in der Altstadt zeugt. Als eine der Waidstädte war Bad Langensalza sehr wohlhabend, sodass große Kirchen und eine mächtige Stadtmauer aus Langensalzaer Travertin, der direkt im Südwesten der Altstadt abgebaut werden konnte, errichtet wurden. Um 1300 wurde die Stadtmauer mit vier Eingangstoren fertiggestellt. Ein verheerender Stadtbrand legte 1711 Teile der Altstadt in Schutt und Asche. Die im prachtvollen Barockstil an ihrer Stelle entstandenen Bürgerhäuser prägen noch heute das Bild der Stadt. Heute sind von der ältesten Stadtbefestigung noch vier Stadtmauertürme erhalten.
Bekannt ist die Stadt auch für die [[w:Schlacht_bei_Langensalza|Schlacht bei Langensalza]] zwischen Preussen und Hannover 1866, in deren Folge Preussen Hannover annektierte. Im [[#vCard_Arboretum|Arboretum]] steht das daran erinnernde [[w:Langensalza-Denkmal_(Bad_Langensalza)|Denkmal]] der Stadt.
Im Juni 1938 wurde im Reinhardbrunner Hof eine antisemitische Hetzausstellung gezeigt. Ebenso wurden Sinti- und Roma-Familien verfolgt, von denen einige im KZ Langensalza, einem Außenlager des KZ Buchenwald, inhaftiert waren. Dort mussten insgesamt etwa 1300 ausländische Frauen und Männer Zwangsarbeit für ein Projekt der Junkers verrichten. Am 5. April 1945 wurde Langensalza durch amerikanische Truppen besetzt und Anfang Juli an die Rote Armee übergeben. So wurde es Teil der Sowjetischen Besatzungszone (SBZ) und ab 1949 der DDR.
Seit dem 28. Juni 1956 trägt Langensalza den Namenszusatz Bad. Seit 1990 wurde die Altstadt zu einem großen Teil restauriert. Später konnten in der Stadt Heilquellen erschlossen werden, die bis heute dem Kurbetrieb dienen. Damit einher ging die Anlage mehrerer Parks, wie Rosengarten und Japanischer Garten. Seit dem 22. Juni 2002 nennt sich Bad Langensalza „Rosenstadt“. Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [[#Kurtaxe|Kurtaxe]].
== Anreise ==
=== Mit dem Flugzeug ===
* Die nächstgelegenen Verkehrsflughäfen mit Linienverkehr sind der {{marker|type = airport|name = Flughafen Leipzig Halle |wikidata = Q668382}} und der {{marker|type = airport|name = Flughafen Frankfurt am Main|wikidata = Q46033}}.
* Auf dem in ca. 65{{nnbsp}}km entfernten {{marker | type = airport | name = Flughafen Erfurt–Weimar | wikidata = Q703794}} starten und landen mittlerweile nur noch Chartermaschinen. Er ist aber weiterhin für Geschäfts- und Sportflieger offen.
* {{vCard|name=Flugplatz Bad Langensalza|type=landing site|wikidata=Q2900762|directions=ca. 3{{nnbsp}}km nördlich|description=Der als [[w:Sonderlandeplatz|Sonderlandeplatz]] klassifizierte Fluplatz verfügt über eine 800{{nnbsp}}m lange Graslandebahn und kann von Ultraleichtfliegern angeflogen werden. Der Platz wird betrieben vom Flugsportverein „Otto Lilienthal“.}}
=== Mit der Bahn ===
{{vCard | name = Bahnhof Langensalza | type = rail | wikidata = Q62415577 | lastedit = 2026-04-10 | description = Betreuung nur mittels '''Video'''-Reisezentrum (geöffnet Mo-Fr 7:15–18:30, Sa 8:15–13:30), behindertengerechte Toilette nur mit entsprechendem Schlüssel. Am Bahnhof halten Regionalzüge aus Erfurt über Gotha oder über Gräfentonna sowie aus Kassel und Göttingen über Leinefelde und Mühlhausen. Der Bahnhof liegt am südlichen Stadtrand etwa ein Kilometer vom Stadtzentrum. Jeder hier verkehrende Zug bedient auch den Landkreis Gotha. Das nahegelegene [[Gotha]] bietet den nächsten ICE-Bahnhof. Mit der Stadtbuslinie B kann man direkt von der Haltestelle am Bahnhofsvorplatz Mo-Fr tagsüber halbstündlich und Sa vormittags alle zwei Stunden in die Innenstadt und zurück fahren; Aus-/Einstieg an der Endhaltestelle „Treffpunkt Wiebeckplatz“ (Fahrplan siehe [[#Mobilität|Mobilität]]). Das geschlossene Bahnhofsgebäude ist leider nicht einladend, obwohl es auch so noch vom früheren Wohlstand der Stadt zeugt, man wird aber im Ort dafür entschädigt. Zwischen Bahnhof und Busbahnhof gibt es den Imbiss ''Herbigs Grill''. }}
=== Mit dem Bus ===
Der {{Marker | type = bus | name = ZOB | lat=51.10166 | long=10.64270}} befindet sich ein Stück neben dem Bahnhofsvorplatz. Aufgrund der Lage bietet er nicht nur die Möglichkeit, über verschiedene Buslinien die benachbarten Gemeinden zu erreichen, sondern ermöglicht direkt zwischen Schienen-, Buslinien- und Stadtbusverkehr (Linie B, Haltestelle nicht am ZOB, sondern direkt am Bahnhofsvorplatz) zu wechseln. Auch [[Fernbusse in Deutschland|Fernbusse]] halten hier.
=== Auf der Straße ===
* Über die Autobahn {{RSIGN|DE|A|4}}, Anschlussstelle {{Ausfahrt|Eisenach-Ost,|40a,}} und der {{RSIGN|DE|B|84}} gelangt man in die Stadt.
* Die {{RSIGN|DE|B|247}} führt von [[Gotha]] oder von [[Mühlhausen (Thüringen)]] nach Bad Langensalza.
=== Mit dem Fahrrad ===
Der [[Unstrut-Radweg|Unstrut-Radweg]] durchquert den Ortsteil Thamsbrück.
== Mobilität ==
Aufgrund der Größe ist die Stadt gut zu Fuß zu erkunden. Parkplätze stehen auch an vielen Stellen zur Verfügung. Es gibt zwei Stadtbuslinien: [https://www.salzatours.de/fahrplanauskunft/ Fahrplanauskunft] der Salza–Tours König GmbH & Co. KG
* '''Linie A''' Gewerbegebiet Nord '''–''' EKZ Rasenmühlenweg – Treffpunkt Wiebeckplatz – Gutenbergstraße – Gewerbegebiet Ost
* '''Linie B''' Ufhoven Schenke – Bahnhof – Gutenbergstraße – Treffpunkt Wiebeckplatz & zurück
===Thiemsburg===
Buslinie 150 Verkehrsgemeinschaft Wartburgregion im Sommer mindestens 4 mal täglich Bad Langensalza - [[Thiemsburg]] - [[Behringen]] - [[Eisenach]].
== Sehenswürdigkeiten ==
[[Datei:LangensalzaGottesackerkirche.JPG|mini|Gottesackerkirche St. Trinitatis]]
=== Kirchen ===
* {{vCard | name = Marktkirche ''St. Bonifacii'' | comment = ev. Hauptkirche | type = church | wikidata = Q1901085 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/marktkirche-st-bonifacii/ | phone = +49 (0)3603 846402 | hours = Mo-Sa 14:00–16:00 und nach Vereinbarung | description = Die Marktkirche St. Bonifacii ist die evangelische Hauptkirche der Stadt und wurde in mehreren Bauphasen von Mitte des 13. bis Ende des 16. Jahrhunderts im Stil der Gotik erbaut und erweitert. Aus diesem Grund besteht sie aus vielen sich deutlich voneinander abhebenden Teilen. Eine Besonderheit ist die Einzeigeruhr am 74 m hohen Turm, einem der höchsten Kirchtürme in Thüringen. Die Malereien aus dem 16. Jahrhundert wurden erst Anfang des 20. Jahrhunderts wieder freigelegt. Die barocke Kanzel im Mittelschiff stammt aus dem Jahr 1734. Das Altarbild, eine Kreuzigungsszene darstellend, wurde vermutlich zwischen 1486 und 1490 hergestellt. Mai–Sep. Orgelmusik zur Marktzeit um 12 Uhr.
}}
* {{vCard | name = Bergkirche ''St. Stephani'' | type = church | wikidata = Q16857152 | url = https://evangelische-kirche-lsz.de/bergkirche-st-stephani-st-stephan/ | description = Ursprünglich außerhalb der ersten Stadtmauer als dreischiffige Basillika erbaut war sie die Pfarrkirche der Neustadt. Das im Jahr 1196 erstmals urkundlich als Kapelle erwähnte Gotteshaus ist der älteste Sakralbau in Bad Langensalza. Aus einer ursprünglichen Mönchskapelle entwickelte sich die Kirche durch Um- und Anbauten. Die Kanzel wurde 1590 im Renaissancestil aufgebaut. Die Glasfenster sind Stiftungen der Bürger im 19. Jahrhundert. An den Decken sind heute noch die Wappen der Spenderfamilien zu sehen. Die Orgel der Kirche wurde 1884/1985 von dem Bad Langensalzaer Orgelbauer [[w:Friedrich Erdmann Petersilie|Friedrich Petersilie]] erbaut. Der Turm hat eine Höhe von 53,5{{nnbsp}}m.
}}
* {{vCard | name = Gottesackerkirche ''St. Trinitatis'' | type = church | wikidata = Q16857154 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/gottesackerkirche-st-trinitatis/ | address = Tuchmachergasse 5, 99947 Bad Langensalza | directions = Im [[#vCard_Arboretum|Arboretum]], direkt neben dem Eingang. | hours = Nur bei Veranstaltungen zugänglich | lastedit = 2026-04-14 | description = Die Friedhofskirche wird als Konzertkirche mit vielfältigen musikalischen Veranstaltungen und einzigartiger Akustik genutzt. '''Geschichte''': Die Kirche wurde 1734–1739 unter der Schirmherrschaft von Herzog ''Christian von Sachsen–Weißenfels'' mit Travertinsteinen der im 30-jährigen Krieg zerstörten Marienkirche errichtet, woran die Kartusche über dem östlichen Portal erinnert. Über das Spitzbogenportal an der Westseite gelangt man zu den restaurierten Grüften. In Gegensatz zum strengen, symmetrischen Außenbau steht die reiche barocke Innenausstattung der Saalkirche mit zweigeschossigen Holzemporen und dem Kanzelaltar von 1734. Die aufwendige Gestaltung des Deckengewölbes zeigt sich in den barocken Malereien in ovalen Medaillons und Stuckaturen. Zur Ausstattung gehören das Madonnen-Relief aus der Marienkirche, zwei barocke Epitaphien und eine Orgel von ''Friedrich Erdmann Petersilie'' (1869). Umfangreiche Sanierungs- und Restaurierungsarbeiten 2008/2009 führten zu neuem Glanz.
}}
=== Bauwerke ===
* {{vCard|name=Rathaus|type=town hall|wikidata=Q119440667|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/rathaus/|description=Das Glockenspiel mit 32 Glocken und 5 Figuren kann 16 verschiedene Melodien spielen und erklingt täglich um 12 und 18 Uhr. Möglichkeit zu einer [https://badlangensalza.de/kur-tourismus/planen-buchen/gastefuhrungen/gruppenfuehrungen-3/unter-dem-pflaster/ Stadt- und Kellerführung], Dauer: 120 min, Preis 135,00 €, optional: „Herrliches Gesöff“ zum Abschluss zzgl. 2,50 € pro Getränk.
}}
* {{vCard | name = Schloss Dryburg | type = chateau | wikidata = Q2240669 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/schloss-dryburg/ | hours = Galerie: Do–Sa 14:00–17:00 und nach Vereinbarung. An Feiertagen geschlossen | lastedit = 2026-04-12 | description = Das Schloss Dryburg ist das älteste erhaltene, komplett aus Stein gemauerte Profangebäude in der Stadt. Von der mittelalterlichen Kernburg ist noch der Westflügel erhalten. Er beherbergt seit Anfang 2011 unter anderem die Galerie des [https://www.kunstwestthueringer.com/ Kunstwestthüringer e. V.], für Kunstliebhaber ein Muss. Der gemeinnützige Kunstverein sieht seine Aufgabe in Präsentation, Vermittlung und Aktion in Sachen zeitgenössischer bildender Kunst. Pro Jahr sind ca. sechs Ausstellungen zu sehen, eine davon immer im Mai ist die Präsentation von Werken internationaler Künstler.
}}
* {{vCard | name = Friederikenschlösschen | type = chateau | wikidata = Q19279910 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/friederikenschloesschen/ | address = Mauergasse 2, 99947 Bad Langensalza | hours = „Tag des offenen Schlösschens“ jeweils 14:00–17:00, aktuell: 17.05.26, 28.06.26, 12.07.26, 02.08.26, 16.08.26, 13.09.26 (Tag des offenen Denkmals 10:00–17:00), 18.10.26 | price = frei / auf Spendenbasis | lastedit = 2026-04-08 | description = Die Herzoginwitwe Friederike von Sachsen-Weißenfels ließ 1749 bis 1751 das Rokoko-Lustschloss errichten. Im Festsaal des Friederikenschlösschens werden Kleinkunstprogramme und Kammerkonzerte aufgeführt.
}}
* {{vCard | name = Stadtmauer und Türme | type = monument | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmauer-und-tuerme/ | lat = 51.10934 | long = 10.64943 | description = Bad Langensalza besitzt bis heute einen gut erhaltenen mittelalterlichen Stadtmauerring, von dem noch 16 Wachtürme und ein Eingangstor erhalten geblieben sind. Der 35,40 Meter hohe Klagetorturm an der Kurpromenade ist einer der wenigen noch erhaltenen Tortürme in Thüringen.
}}
* {{vCard | name = Kultur- und Kongresszentrum Bad Langensalza | comment = Jahnplatz als Parkfläche direkt hinter dem Haus | type = conference center | url = https://www.kkz-badlangensalza.de/ | address = Bürgermeister–Schönau–Platz 1, 99947 Bad Langensalza | lat = 51.11050 | long = 10.64223 | phone = +49 (0)3603 859 190 | email = kkz@bad-langensalza.de | lastedit = 2026-04-14 | description = NUTZUNG: Für Veranstaltungen (Tagung, Festlichkeit oder Konzert) von 10 bis zu 500 Personen: Unterschiedliche Räumlichkeiten (Saal, Bühne, Clubraum (Hufelandraum), Probesaal (Wieglebsaal), Saalnebenräume (Kloppstocksaal), kleiner Saal (Hermstedtsaal), Foyer) für jeden Anlass, moderne Tagungs- und Bühnentechnik, erfahrenes Veranstaltungsmanagement und hochwertige Gastronomie. Die Stadt veranstaltet hier (wie in der [[#vCard_Q16857154|Konzertkirche]] und an anderen Orten) diverse Events, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender]. GESCHICHTE: Das heutige Kultur- und Kongresszentrum hat eine lange Geschichte und wurde ehemals als Schützenhaus (erstmalige Erwähnung der „sagittarii“, der „Kappentragenden Pfeilschützen“, im Jahre 1380) erbaut und ersetzte zwei Vorgängerbauten für die Langensalzaer Schützengilde. Von 1717–1733 wurde das erste Schützenhaus errichtet und litt dann unter den deutschen Befreiungskriegen (1813 Pulvermagazin, 1814 Lazarett). Das baufällige Fachwerkgebäude diente nicht mehr seinem Zweck und wurde 1833 abgerissen. Der Neubau wurde dem Mauermeister ''Johann Benjamin Schneider'' und dem Zimmermeister ''Christian Andreas Wenk'' übertragen. Da die Schützen die Kosten nicht tragen konnten, wurden 215 Aktien verkauft. Grundsteinlegung war 1833, die Einweihung selbst fand im Juli 1834 statt. Der umfangreichere Neubau erhielt an der Frontseite einen repräsentativen Balkon sowie einen dreiseitigen Giebel. Bei den Kapitulationsverhandlungen 1866 (Hannover vs. Preußen) gastierte der König Georg V. von Hannover im Juni 1866 im Schützenhaus und der Kriegsrat besiegelte die Kapitulation. Im Nachhinein erfolgte die Benennung als „Königszimmer“ oder „Blaues Zimmer“. im Dezember 1906 wurde das gesamte Gebäude ein Raub der Flammen, glücklicherweise gab es.eine Entschädigungszahlung der ''Provinzial-Feuersozietät''. Das nach Bauplänen des hiesigen Stadtbaumeisters '''Ferdinand Kummer'' im November 1907 fertiggestellte Gebäude wurde mit Festbankett und Festball eingeweiht. Die veralteten Schießstände mussten auf königlichen Befehl erneuert und umzäunt werden. Im 1. Weltkrieg pausierten die Vereinsaktivitäten und das Schützenhaus wurde ab Herbst 1914 bis Anfang 1919 als Reservelazarett genutzt. Nach dem 2. Weltkrieg wurde das Schützenhaus von der Besatzungsmacht beschlagnahmt und 1946 mit dem Ziel der Errichtung eines Kulturzentrums der Sozialistischen Einheitspartei Deutschlands übertragen. Die Umbenennung des Gebäudes in Kulturhaus erfolgte schließlich Abfang Oktober 1952. Ab Januar 1961 wurde das geschlossene Kulturhaus in drei Bauabschnitten umgestaltet, die Gastronomie modernisiert. Mit einer symbolischen Schlüsselübergabe eröffnete das renovierte Kulturhaus Ende April 1962 und der Kulturhaus–Beirat kümmerte sich um die Nutzung. Der Kulturhausgarten wurde erstmals 1967 genutzt, die alte Kegelbahn 1978 abgerissen. Im Juni 1986 erfolgte einen Komplettumbau. Aufgrund von finanziellen und materiellen Engpässen wurden die Handwerker immer wieder unterbrochen, denn in den Wirren der Wendezeit versiegten die Geldquellen. Mit Hilfe von Bundes- und Landesmitteln konnte das Vorhaben eines modernen Kultur- und Kongresszentrums schließlich vollendet werden. Die Wiedereröffnung fand im Rahmen einer feierlichen Veranstaltung am 21. Februar 1992 statt. Der neue Name repräsentierte die kulturellen und künstlerischen Aspekte. In Vorbereitung des Landesprojektes ''Mensch–Natur–Städtebau'' wurde im Jahr 2009 das Kultur- und Kongresszentrum abermals umfangreich restauriert und modernisiert, insbesondere die Rosenlounge, die Außenfassade und der große Saal erstrahlen in neuem Glanz.
}}
=== Aussichtspunkt ===
[[Datei:Langensalza Dreitürmeblick.jpg|mini|Drei-Türme-Blick]]
[[Datei:LangensalzaDreitürmeblick2.JPG|mini|Blick durch die Skulptur]]
* {{vCard|name=Drei-Türme-Blick|type=viewpoint | lat = 51.1092 | long = 10.6417 |directions = vor der Gottesackerkirche neben dem Eingang in das Arboretum |url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/drei-tuerme-blick/ |description= Vom „Argusblick“ (die Skulptur wurde von dem Bad Langensalzaer Künstler [[w:Harald_Stieding|Harald Stieding]] geschaffen), einem aus Stein gehauenen Auge, das auf einer Travertinsäule thront, sind der Turm der einstigen Augustinerkirche, der Turm des Rathauses und schließlich der Turm der Marktkirche St. Bonifacii zu sehen. Diese drei Türme prägen die Ansicht der Kurstadt und sind immer wieder ein beliebtes Fotomotiv.
}}
=== Museen ===
[[Datei:Schild Wassermuseum vor Klagetor Bad Langensalza.jpg|mini|upright|Schild Wassermuseum mit dem Klagetor im Hintergrund]]
* {{vCard|name=Stadtmuseum im Augustinerkloster|type=museum|wikidata=Q76639038|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmuseum-im-augustinerkloster/|address=Augustinerplatz 1-2, 99947 Bad Langensalza|phone=+49 03603 813002|email=stadtmuseum@bad-langensalza.de|hours=Fr–So 13:00–17:00, Feiertagsregelungen beachten|price=Normal 5,00{{nnbsp}}€/Tag, erm. 4,00{{nnbsp}}€/Tag, Kinder und Schüler frei; Kombiticket Apotheken- und Stadtmuseum Erw. 8,00{{nnbsp}}€, erm. 6,00{{nnbsp}}€|lastedit=2026-04-01
}}
* {{vCard | name = Thüringer Apothekenmuseum | comment = im „Haus Rosenthal“ | type = museum | wikidata = Q20479980 | hours = Derzeit wie [[#vCard_Q76639038|Stadtmuseum]] | price = Wie [[#vCard_Q76639038|Stadtmuseum]] | lastedit = 2026-04-05 | description = Das historische Gebäude „Haus Rosenthal“ beherbergt seit Mai 2014 das Thüringer Apothekenmuseum. Die Besucher können im restaurierten Baudenkmal aus dem Jahr 1515, dessen Renovierung in einem FIlm gezeigt wird, u.{{nnbsp}}a. die historischen Wandvertäfelungen und zwei Holzstuben auf sich wirken lassen. Für die gelungene Sanierung erhielt die Stadt im Wettbewerb um den''Thüringer Holzbaupreis 2013'' eine Anerkennung sowie im Jahr 2015 den Thüringer Denkmalschutzpreis. Im Obergeschoss des Baudenkmals wird auf 276{{nnbsp}}m² eine Ausstellung zur Pharmaziegeschichte des 18. bis 20. Jahrhunderts präsentiert. In acht Räumen sind die verschiedenen Arbeitsbereiche einer alten Apotheke abgebildet. Neben einer Darstellung des Lebens und Wirkens des Langensalzaer Apothekers und Chemikers ''Johann Christian Wiegleb'' (1732–1800) werden Standgefäße aus Glas, Porzellan und Holz sowie eine Vielzahl an pharmazeutischen Arbeitsgeräten zur Herstellung von Arzneimitteln gezeigt. Das Museum ergänzt der angrenzende [[#vCard_Apothekergarten|Apothekergarten]], in dem mehr als 80 verschiedene, überwiegend heimische, Heilkräuter wachsen. Hinweis: Im Gebäude sind nur die Ausstellungen im Erdgeschoß sowie der Apothekergarten barrierefrei zu erreichen.
}}
* {{vCard | name = Rosenmuseum | comment = beim [[#vCard_Q112079448|Rosengarten]] | type = museum | address = Vor dem Klagetor 3, 99947 Bad Langensalza | directions = Zugang beim Kassenhäuschen des Rosengartens | lat = 51.11081 | long = 10.65237 | phone = +49 03603 834424 | hours = Wie [[#vCard_Q112079448|Rosengarten]] | lastedit = 2026-04-08 | description = Das Museum hat sich seit seiner Einrichtung kaum verändert und strahlt daher ein entsprechendes Flair aus, ist aber auch sehr informativ. Beispielsweise lernt man die In-vitro-Vermehrung von Rosen, bei der dünnste Scheiben von Rosenknospen steril in Nährmedien kultiviert werden, kennen, die die schnelle Produktion großer Mengen von Klonen ermöglicht. Das Museum soll beginnend mit der Saison 2026 sukzessive erneuert und mit modernen Medien ausgestattet werden.
}}
* {{vCard|name=Historische Druckerei|id=Historische_Druckerei|type=museum|lat=51.1092|long=10.6512|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/historische-druckerei/|hours=ganzjährig Di,Mi, Fr 9:00–12:00, sowie nach Vereinbarung|price=frei|description=Im Park des Friederikenschlösschens in der ehemaligen Kutscherremise befindet sich seit März 2008 die „Historische Druckerei“. Sie beherbergt heute u.{{nnbsp}}a. eine beeindruckende Handtiegelpresse aus dem Jahr 1854 sowie diverse Utensilien für den Handsatz und wird in kleinem Rahmen nach wie vor für Sonderdrucke genutzt. Die Druckerei kann an drei Tagen in der Woche vormittags ganzjährig besichtigt werden und die Besucher erhalten auf Wunsch von einem der sie betreuenden ehemaligen Setzer eine Führung mit der Möglichkeit, selbst ein Andenken zu drucken.}}
* {{vCard | name = Wassermuseum | type = museum | address = Hüngelsgasse 13, 99947 Bad Langensalza | lat = 51.11079 | long = 10.64951 | phone = +49 (0)3603 84070 | hours = Di 8:00–12:00, 13:30–17:30; Do 8:00–12:00, 13:30–15:30 | image = Wassermuseum Bad Langensalza.JPG | lastedit = 2026-04-07 | description = Betreiber: Verbandswasserwerk Bad Langensalza / Abwasserzweckverband (WAZV) "Mittlere Unstrut". Die beiden Google-Rezensionen des winzigen Museums im Eingangsbereich des Amtes innerhalb des letzten Jahres sind 5/5.
}}
=== Parks und Gärten ===
[[Datei:Bad Langensalza Arboretum Lageplan.jpg|mini|Lageplan Arboretum]]
[[Datei:Bad Langensalza Arboretum Pflanzensystematik.jpg|mini|Pflanzensystematik Arboretum]]
[[Datei:Bad Langensalza, japanischer Garten, Bild 8.jpg|mini|Japanischer Garten]]
[[Datei:Bad Langensalza 2022 - Rosengarten.jpg|mini|Rosengarten]]
[[Datei:Erblühende Magnolien am Wasserlauf vor Magnoliengarten Bad Langensalza.jpg|mini|Erblühende Magnolien am Wasserlauf vor dem Magnoliengarten]]
[[Datei:Ulmus parvifolia "Chinesische Kiefer" frei aufrechte Form Alter ca. 130 Jahre Japanischer Garten Bad Langensalza 02.jpg|mini|upright|Austreibender Bonsai Ulmus parvifolia „Chinesische Kiefer“, frei aufrechte Form, Alter ca. 130 Jahre, vor blühendem Baum im Japanischen Garten]]
Die Stadt besticht durch eine Vielzahl von [https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/ Parks und Gärten]:
* {{vCard | name = Arboretum | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/arboretum/ | lat = 51.10834 | long = 10.63949 | hours = Mär,Okt: täglich 10:00–18:00, Apr–Sep: täglich 10:00–19:00, Nov–Feb: geschlossen | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Das Arboretum (Baumgarten) ist eine geschichtsträchtige Parkanlage. Es lädt neben Entspannung und Erholung zum bummeln durch die Vielfalt an Bäumen und Sträuchern ein. Hier ist der Jahrezeitenwechsel am deutlichsten von allen Gärten der Stadt zu erleben. So zeigt sich das Arboretum von von Mitte März bis Oktober im bunten Blüten- und Blätterkleid. Auch bevor die Bäume ausschlagen bereichern den Garten zur Frühjahrsblüte durch früh blühende [[w:Magnolien|Magnolien]] und [[w:Frühjahrsblüher|Frühjahrsblüher]] mehr als nur einzelne Farbtupfer. Im Arboretum wachsen über 200 verschiedene Arten von [[w:Gehölz|Gehölz]]en, die zu mehr als 20 Pflanzenfamilien gehören. Eine umfangreiche Erweiterung der Gehölzsammlung konnte fast ausschließlich durch Spenden von Bürgern, Unternehmen und Institutionen realisiert werden. Ergänzt wird der Eindruck durch die zwölf Skulpturen aus Holz und Muschelkalk von neun Künstlern aus vier Ländern sowie einem Zeugnis der Stadtgeschichte, dem ''Hannoveraner Denkmal'', das an die Schlacht bei Langensalza 1866 erinnert. Die ebenfalls dort befindliche [[#vCard_Q16857154|Gottesackerkirche]] aus dem Jahr 1734 (von 2008–2009 saniert) wird als Konzertkirche ''St. Trinitatis'' genutzt. Das Arboretum ist zusätzlich zu einem Lageplan reichlich mit Text und Systematiken auf Schautafeln beschildert, so dass man viel über die [[w:Systematik des Pflanzenreichs|Systematik des Pflanzenreichs]] erfährt und die Gehölze entsprechend leicht finden und zuordnen kann. | id = Arboretum
}}
* {{vCard | name = Botanischer Garten ''Garten der Vielfalt'' | type = botanical garden | wikidata = Q4948492 | hours = Mai–Okt täglich 10:00–18:00 | price = frei | subtype = nodogs | lastedit = 2026-04-11 | description = Der Garten mit einem Sukkulentenhaus im Zentrum ist nach dem Umbau der ''[[#vCard_Friederiken Therme|Friederiken Therme]]'' seit 2025 erneut geöffnet und beinhaltet auch ein Kneippsches Tretbecken; insbesondere der Alpingarten (Alpinum) und die Gräserlandschaft werden zurzeit wieder neu angelegt. Besonders beeindrucken die teils sehr großen Goldkugelkakteen („Schwiegermuttersitz“ bzw. „-stuhl“).
}}
* {{vCard | name = Japanischer Garten ''Garten der Glückseligkeit'' | name-local = (jap. 幸福の庭, Kōfuku no niwa | alt = genauer ein [[w:Japanischer Wandelgarten|Japanischer Wandelgarten]] | type = garden | wikidata = Q26821540 | hours = Mär, Okt: täglich 10:00–18:00; Apr-Sep: täglich 10:00–19:00 | price = ab 12 J. 6,00 €/Tag, erm. 5,00 €/Tag; Feierabendticket (ab 17:00) 4,00 €/Tag; Kombiticket (alle Gärten, Stadt- und Apothekenmuseum) 20,00 €/Tag, erm. 16,00 €/Tag; bei Sonderveranstaltungen teils andere Preise | subtype = nodogs | lastedit = 2026-04-05 | description = Besucher tauchen ein in die Harmonie der Stille der verschiedenen Landschaften. Das Wasser hat eine wichtige symbolische Bedeutung: Wellenbewegungen fließen vom Wasserfall über den Teich in den Trockenbach, Pflanzen und Steine führen die Bewegung weiter. Im Kontrast zur Teichlandschaft steht die Trockenlandschaft. Ein Pflanzenpavillon mit Teehaus und der „Pavillon des Teetrinkens“, in dem ohne Zeremonie grüner Tee gereicht wird, ergänzen das Ensemble. Im April beginnen die Kirsch- und Magnoilienblüte, im Mai blüht die Azaleenlandschaft, Iris und Seerosen folgen im Juni. Es finden diverse Veranstaltungen (mit Vorführung japanischer Kampf- und Trommelkünste, Origami, Sushi uvm.) statt: Hanami Kirschblütenfest (April, aktuell 25. April 2026), Kodomo NoHi Kinderfest (Mai), Märchenfest (Juni), Tanabata Sternenfest (Juli). Im Dezember 2025 wurde zudem erstmalig (innerhalb der eigentlich üblichen Schließzeit November bis Februar) eine ''Fernöstliche Lichter-Poesie'' veranstaltet. Bei dieser wurde der Garten mit wechselnden Lichtfarben beleuchtet, es gab zwei Videoprojektionen u.{{nnbsp}}a. mit Videos und Bildern über den Garten sowie Musikuntermalung. Nach Aussage der Mitarbeiter war die Veranstaltung so gut besucht, dass sie vsl. in den kommenden Jahren wiederholt wird.
}}
* {{vCard|name=Kurpark|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/kurpark/|lat=51.10881|long=10.65008|hours=24/7|price=frei|lastedit=2026-03-05|description=Der Park liegt teilweise entlang der Stadtmauer und ist zur Hälfte von einem kleinen Wasserlauf durchzogen. Am einen Ende befindet sich ein künstlicher Wasserfall, und der Weg führt dann vorbei am Friederikenschlösschen, einem Kinderspielplatz, dem Abzweig zum Rosengarten, weiter zwischen dem Japanischen Garten und dem Natur!Gärten und geht dann in den Weg zum Magnoliengarten und den Botanischen Garten über. Blumenbeete, zugeschnittene Bäume und Bögen aus Büschen, unter denen man durchgehen kann, bereichern das Ambiente.}}
* {{vCard | name = Rosengarten ''Garten der Liebe'' | type = garden | wikidata = Q112079448 | hours = Mai-Sep: täglich 10:00–19:00; Okt: täglich 10:00-–8:00 | price = Wie [[#vCard_Q26821540|Japanischer Garten]] | subtype = nodogs | lastedit = 2026-04-05 | description = Auf 18.000 qm erblühen und duften fast 450 Rosenarten wie historische und Englische Rosen, Wildrosen und Edelrosen, Rosenhochstämme und Kleinstrauchrosen; besonders sehenswert ist die Sammlung der Bad Langensalzaer Rosen (1950–990 wurden hier allein 91 Rosensorten gezüchtet. Anni Berger, die einzige Rosenzüchterin Deutschlands, war in Bad Langensalza tätig. Sie ist Namensgeberin einer Stiftung, die die Rosentradition, Denkmalpflege und Umweltschutz fördert – vgl. Anni-Berger-Stiftung.de), Skulpturen der Künstler Gert van Acker und Harald Stieding ergänzen das Gartenbild. Da auch die Vorgärten und die Stadtplätze vielfältige Rosen zieren, verwundert es nicht, dass 2002 der Stadt das Prädikat „Rosenstadt“ verliehen wurde.
}}
* {{vCard | name = Magnoliengarten | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/magnoliengarten/ | lat = 51.11366 | long = 10.64912 | hours = 24/7 | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Der 2006 eröffnete Magnoliengarten zeigt auf 1.500 qm mehr als 30 Magnolienarten, die von März bis Juli blühen – eine Zaubernuss beginnt den Blütenreigen. Magnolien gehören mit zu den ältesten Blütenpflanzen der Erde (vor der Eiszeit auch in Europa heimisch!), die heute in Ostasien und Amerika zu finden sind. Ergänzt werden sie durch Hortensien, Waldreben, Ginkgobäume sowie Blumen und Sträucher, teils auf einem kleinen Hügel als weiteres gestalterisches Element.
}}
* {{vCard | name = Schlösschenpark | comment = des [[#vCard_Q19279910|Friederikenschlösschens]] | type = park | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/schloesschenpark/ | lat = 51.10892 | long = 10.65177 | price = frei | lastedit = 2026-04-05 | description = Der von der der Herzogin Friederike von Sachsen-Weißenfels terrassenartig angelegte kleine Park aus der Mitte des 18. Jahrhunderts mit Blick auf das Schlösschen lädt zum Verweilen ein. Im hinteren Teil des Gartens ist ein historischer Gartenpavillon aus dem Jahr 1878 erhalten. Dort sprudelt aus einem Bronzebecken Schwefelwasser, das seit 1812 in der Kurstadt Bad Langensalza als Heilwasser verwendet wird. In der ehemaligen Remise befindet sich eine [[#vCard_Historische_Druckerei|historische Druckerei]].
}}
* {{vCard | name = Apothekergarten | alt = ''Garten der Heilkräuter'' | comment = beim [[#vCard_Q20479980|Apothekenmuseum]] | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/apothekergarten/ | lat = 51.11016 | long = 10.64459 | hours = Wie Apothekenmuseum, in der Wintersaison geschlossen | lastedit = 2026-04-05 | description = Der Apothekergarten hinter dem „Haus Rosenthal“ (daher nur über das Apothekenmuseum zugänglich) zeigt eine Auswahl an in Mitteldeutschland heimischer Pflanzen, die immer noch zur Herstellung von Arzneidrogen verwendet werden. Die Heilpflanzen sind in neun Beeten nach ihren Anwendungen bzw. medizinischer Indikation geordnet und beschildert. Umsäumt werden die Kräuterbeete von Blumen (Rosen brauchen in Bad Langensalza gar nicht extra erwähnt werden) sowie einigen Obstbäumen und Sträuchern. | id = Apothekergarten
}}
* {{vCard | name = Natur!Garten | comment = betrieben vom [[w:Bund_für_Umwelt_und_Naturschutz_Deutschland|BUND]] Ortsverband Bad Langensalza[https://badlangensalza.bund.net/]. Das '''Café'''[https://baeckerei-esche.de/bund-naturgarten-cafe/] im Garten hat '''kürzere''' Öffnungszeiten: Apr–Okt Mi–Fr 13:00–17:00, Sa/So/Fe bis 18:00 | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/naturgarten/ | lat = 51.1121 | long = 10.6489 | hours = Mär–Okt: täglich 8:00–18:00 | price = frei | lastedit = 2026-04-05 | description = Der 1.600 m² große Garten ermöglicht es, die Natur anzufassen (-> einheimische Pflanzen und Insekten). Er besteht seit 1994 auf und wurde 2019/20 neu gestaltet, dazu gehörten ein Pflanzenbestand mit über 1.000 neuen einheimischen bzw. für einen Bauerngarten typische Blumenzwiebeln, Stauden und Gehölze. Der Garten dient auch der Umweltbildung und verbindet einen nachhaltigen Bauerngarten (zentrales Brunnenhäuschen, Obst- und Gemüsebeete, Kräuterbank, klassische Bauerngarten-Blumenbeete, Färberpflanzen, Kompost) mit einem reinen Naturgarten (Blumenrasen, Wild-Stauden-Wall, „Beet der Flatterlinge“, Teich mit Sumpfwiese, Benjes-Hecke, größter Mirabellen-Baum und höchster Holunder-Strauch von Bad Langensalza). Kinder dürfen spielen und die Natur erforschen, Erwachsene erhalten Anregungen für eine naturnahe Gartengestaltung. Nätürlich ist auch für Verweilplätze gesorgt. Last but not least erreicht man durch den Garten das '''einzige begehbare Stück Stadtmauer-Wehrgang''' und zwei Stadtmauertürme. Zur nach ökologischen Gesichtspunkten sanierten Stadtmauer gehören im Stadtmauer-Rundturm ein „Raum der Stille“ und im Eckturm die Lese-Ecken.
}}
* {{vCard|name=TRACO Park|alt=Garten des Travertins|comment=betrieben von der Firma [https://traco.de/ TRACO]|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/traco-park/|address=Poststraße 17, 99947 Bad Langensalza|lat=51.1039|long=10.6377|phone=+49 (0)3603 8520|hours=Mo–Fr 9:00–18:00, Sa 10:00–13:00, in den Wintermonaten verkürzt|price=frei|subtype=wheelchair, free parking|lastedit=2026-04-10|description=Ausstellungsgarten zeigt breites Spektrum der natürlichen und ästhetischen Garten- und Landschaftsgestaltung mit Sandstein, Muschelkalk und Travertin aus firmeneigenen Steinbrüchen bei Weimar, Gotha und Bad Langensalza: Mauern, Treppen, Wege, Wasserkunst….}}
== Aktivitäten ==
* {{vCard | name = Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | lat = 51.11442 | long = 10.64683 | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = ''Thermalbad+Sauna'': So–Mi 10:00–21:00, Do–Sa 10:00–22:00 | price = ab 5{{nnbsp}}J komplexes Preissystem: Bad, Sauna, Kombitarife, Spättarife, Rabatte, s. Webseite | lastedit = 2026-04-13 | description = (Kinder bis zur Vollendung des 12.{{nnbsp}}Lebensjahres nur in Begleitung Erwachsener.) Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT).
}}
* {{vCard | name = Kino ''Burgtheater'' | type = cinema | url = https://burg-theater.de/ | address = Vor dem Schlosse 5e, 99947 Bad Langensalza | lat = 51.10903 | long = 10.64725 | phone = +49 (0)3603 846206 | fax = +49 (0)3212 1080916 | email = kino@burg-theater.de | hours = Tageweise Mo-So, teils ab 12:15, letzte Vorstellung 20:00 | price = 6,50–10 €; Aufschläge: ab 120 min +0,50 €, ab 140 min +1 €, 3D–Filme +2,50 €, teils Kinderermäßigungen vor 19:00; Di. Kinotag (nicht feiertags) | lastedit = 2026-04-08
}}
* {{vCard | name = Kindererlebniswelt ''Rumpelburg'' | type = children | url = https://kindererlebniswelt-rumpelburg.de/ | address = Sperlingsgasse 4, 99947 Bad Langensalza | lat = 51.10664 | long = 10.64754 | phone = +49 (0)3603 398-4604 | email = info@kindererlebniswelt-rumpelburg.de | hours = Di–Fr 14:00–18:00, Sa 10:00–18:00, So 10:00–17:00, auf Vorbestellung für Gruppen Di–Fr 10:00–13:00, Schließzeiten beachten (ges. Feiertage, Sommer-Betriebsferien, Weihnachtsferien) | price = 0–1J frei, 1–2J 3,50{{nnbsp}}€/1{{nnbsp}}Std, ab 2J/Erw. 4,00{{nnbsp}}€/1{{nnbsp}}Std, Rabatte/Sonderaktionen s. Webseite | lastedit = 2026-04-10 | description = Klettern, rutschen und toben in einer fantastischen Welt mit Spiel, Spaß und Entdeckungen. Netzbrücken, geheimnisvolle Baumhäuser, riesige Puppenstube und wilde Rutschpartien – Abwechslung bei jedem Wetter für Groß und Klein. Ereignisreiche Stunden durch verschiedene Rollen spielerisch erleben in: Spielhaus, Schiff, Tiergehege mit Holztieren oder Spielstadt. Aufmerksame Kinder entdecken vielleicht die geheimnisvollen Rumpelburgbewohner: Rosentroll Puck, Wasserelfe Tine oder Rumpel, das Gespenst.
}}
* Die Stadt veranstaltet insbesondere in der [[Bad Langensalza#vCard Q16857154|Konzertkirche]], dem [[Bad Langensalza#vCard Kongress- und Kulturzentrum Bad Langensalza|Kongress- und Kulturzentrum Bad Langensalza]] sowie an anderen Orten diverse '''Events''' wie beispielsweise Konzerte, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender Eventkalender].
* '''[https://badlangensalza.de/kur-tourismus/planen-buchen/veranstaltungen/veranstaltungshighlights/mittelalterstadtfest/ Mittelalterstadtfest]''' mit Handwerker- und Händlerständen, Musik- und Kleinkunstprogramm sowie Schaukämpfen am letzten Augustwochenende (aktuell 29./30. August 2026)
* Im ''Japanischen Garten'' finden diverse Veranstaltungen statt (Details finden sich beim [[#vCard_Q26821540|Japanischen Garten]]):
** '''Hanami Kirschblütenfest''' (April)
** '''Kodomo NoHi Kinderfest''' (Mai)
** '''Märchenfest''' (Juni)
** '''Tanabata Sternenfest''' (Juli)
** '''Fernöstliche Lichter-Poesie''': Sie wurde im Dezember 2025 (innerhalb der eigentlich üblichen Schließzeit November bis Februar) erstmalig veranstaltet und wird vsl. in den kommenden Jahren wiederholt.
* {{vCard | name = Flugplatz Bad Langensalza | type = landing site | wikidata = Q2900762 | directions = 3{{nnbsp}}km nordwestlich von Bad Langensalza | show = copy| price = Schnupperflug ab 30 €; ''Pilot für einen Tag'' (ca. 3 Std.) 199 € | lastedit = 2026-04-04 | description = Er wurde 1927 errichtet und von der [[w:Wehrmacht|Wehrmacht]] genutzt. Aktuell wird der [[w:Sonderlandeplatz|Sonderlandeplatz]] vom Flugsportverein ''„Otto Lilienthal“ Bad Langensalza e.{{nnbsp}}V.'' betrieben. Er verfügt über eine Gras-Start- und Landebahn mit der Größe 800{{nnbsp}}m × 40{{nnbsp}}m. Angebote: Segelflug, Ultraleichtflug (UL-Flug), Rundflüge und Gastflüge.
}}
== Einkaufen ==
Es gibt Bad in Langensalza das typische Angebot einer Kleinstadt. Spezielle lokale Reisesouvenirs sind hier zu erwerben.
* {{vCard|name=Wochenmarkt|type=market|url=https://citymanagement-badlangensalza.de/events/wochenmarkt/|address=Fußgängerzone|lat=51.1086|long=10.6454|hours=Mi 8:00–14:00|lastedit=2026-04-06|description=Auf dem Wochenmarkt gibt es nicht nur frisches Obst und Gemüse, Geflügel und Fisch, Backwaren, Eier und Teigwaren, Wurst- und Käsesorten, Pasti und Antipasti, Gewürze, Kräuter, Honig und Marmeladen sowie Blumen und Pflanzen zu kaufen, man kann dort auch diverse warme Gerichte gleich essen oder mitnehmen. Viele der Angebote stammen dabei aus der Region. Für eine thüringer Stadt eher ungewöhnlich erhält man als eine der beiden je eintägigen Möglichkeiten im Ort ''[[w:Thüringer Rostbratwürste|Thüringer Rostbratwürste]]'' in einer Semmel (gute Wurst, sehr gutes Brötchen, 3{{nnbsp}}€).}}
* {{vCard | name = Buchhandlung ''Buchgeschwister'' | type = book seller | url = https://www.genialokal.de/buchhandlung/bad-langensalza/buchgeschwister/ | address = Mühlhäuser Str. 39, 99947 Bad Langensalza | lat = 51.10895 | long = 10.64475 | phone = +49 (0)3603 842449 | email = kontakt@buchgeschwister.com | instagram = buchgeschwister.lsz | hours = Di–Fr 10:00–13:00, 14:00–17:00, Sa 10:00–13:00 | image = Buchhandlung "Buchgeschwister" Bad Langensalza.jpg | lastedit = 2026-04-09 | description = sehr persönliche Beratung.
}}
== Küche ==
Bei vielen Cafés und Restaurants kann man auch draußen sitzen. Letztere haben oft werktags ein Mittagsangebot.
* {{vCard | name = Café Schwesterherz | comment = Gegründet von den Schwestern Anni und Ulrike | type = cafe | url = https://cafe-schwesterherz.jimdofree.com/ | address = Mühlhäuser Str. 2, 99947 Bad Langensalza | lat = 51.10878 | long = 10.64463 | phone = +49 (0)3603 3989345 | email = Cafe-Schwesterherz@freenet.de | hours = Di–Fr 9:00–17:30, 2.+4. Sa im Monat 9:30—17:00, 1.+3. Sa im Monat 9:30—12:30 | image = Cafe Schwesterherz Bad Langensalza.jpg | lastedit = 2026-04-08 | description = Uriges Ambiente mit der Möglichkeit, schöne Dinge zu erwerben und auch draußen zu sitzen. Eine der Spezialitäten sind nach dem Motto ''Kuchen wie bei Omi'' selbstgebackene Kuchen. Die ausführlichen Rezensionen des Cafés (Google 4,8/5) sprechen oft von begeisterten Besuchern. Um sicher einen Platz zu bekommen ist eine Reservierung empfehlenswert.
}}
* {{vCard | name = Rosencafé | type = restaurant | url = https://www.rosencafe-bad-langensalza.de/ | address = Am Rosengarten 11, 99947 Bad Langensalza | directions = Direkt am [[#vCard_Q112079448|Rosengarten]], Zugangsmöglichkeit von dort aus, zurück benötigt man die Eintrittskarte für das Drehkreuz. Eingang auch vom neuen Wohngebiet aus. | lat = 51.11224 | long = 10.65247 | phone = +49 (0)3603 891601 | email = info@rosencafe-bad-langensalza.de | hours = Do–So 10:00–17:00, bis 15:00 warme Küche | subtype = accessible, parking | lastedit = 2026-04-17
}}
* {{vCard | name = Ristorante Venezia | type = restaurant | url = https://www.venezia-restaurant.de/ | address = Marktstraße 31, 99947 Bad Langensalza | lat = 51.10820 | long = 10.64577 | phone = +49 03603 895469 | fax = +49 03603 8969308 | hours = tägl. 10:00–0:00, warme Küche durchgehend 11:00–23:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Villa Italia | type = restaurant | url = https://www.villa-italia.de/ | address = Kurpromenade 5a, 99947 Bad Langensalza | lat = 51.10838 | long = 10.65071 | phone = +49 03603 892861 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Punjabi Bad'sha | alt = Indisches Restaurant & Eiscafe | type = restaurant | url = https://www.punjabi-badshah.de/ | address = Kornmarkt 2, 99947 Bad Langensalza | lat = 51.10761 | long = 10.64739 | phone = +49 (0)36031 279246 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Herkules | type = restaurant | address = Steinweg 11, 99947 Bad Langensalza | lat = 51.10547 | long = 10.64209 | phone = +49 03603 1277321 | facebook = Restaurant.Herkules | hours = Di–Fr 17:00—23:00; Sa,So 11:30—14:30 und 17:00—23:00 | subtype = greek | lastedit = 2026-04-06 | description = Beliebter Grieche in passendem Ambiente.
}}
* {{vCard | name = Pizzeria Flamingo | type = restaurant | address = Steingrubenstraße 7, 99947 Bad Langensalza | lat = 51.10656 | long = 10.64428 | phone = +49 03603 1277589 | instagram = pizzeriaflamingoo | hours = Mo–Sa 10:30–21:30, So 13:00–21:30 | lastedit = 2026-04-06
}}
* {{vCard | name = PHANtastic | alt = Asian Fusion | comment = Gästeparkplatz hinten im Schlosshof 3, 99947 Bad Langensalza | type = restaurant | address = Marktstraße 3, 99947 Bad Langensalza | lat = 51.10866 | long = 10.64578 | phone = +49 (0)3603 8955218 | hours = Di-Sa 10:30-22:00, So 11:30-22:00, Mo nur feiertags geöffnet | lastedit = 2026-04-09 | description = Neueröffnung 11.4.2026, Aktionsangebot 11.4.—19.4.2026 15% Rabatt.
}}
* {{vCard | name = Ratswaage | type = restaurant | url = https://ratswaage-lsz.de/ | address = Mühlhäuser Straße 40, 99947 Bad Langensalza | lat = 51.10893 | long = 10.64494 | phone = +49 (0)3603 8955310 | email = info@ratswaage-lsz.de | hours = tägl. 11:00—14:30, 17:00—23:00 | image = Restaurant Ratswaage Bad Langensalza.jpg | lastedit = 2026-04-09
}}
* {{vCard|name=Asia Food & Salza Grill|type=restaurant|address=Rathausstraße 9, 99947 Bad Langensalza|lat=51.10818|long=10.64437|phone=+49 (0)3603 84 86 16|hours=Mo-Fr 11:00-21:00, So/Fe 11:00-21:00|price=günstig|payment=derzeit nur Barzahlung|subtype=asian, grill, takeaway|lastedit=2026-04-09|description=alle Speisen auch zum Mitnehmen, ein paar Tische innen und ein paar draußen, Personal freundlich, Essen gut, „große Portion“ heißt zu Recht so!
}}
* {{vCard | name = Schnitzel-Steak-Haus | type = restaurant | url = https://schnitzel-steak-haus.metro.rest/?lang=de | address = Marktstraße 19, 99947 Bad Langensalza | lat = 51.10830 | long = 10.64739 | phone = +49 (0)3603 896970 | email = dido2004@abv.bg | hours = Mo–So 10:00–22:00 | lastedit = 2026-04-10 | description = Jede Woche ein Mittagsmenü: typischerweise Suppe, zwei verschiedene Hauptgerichte, Eis.
}}
== Nachtleben ==
== Unterkunft ==
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig für Übernachtungsgäste eine [[#Kurtaxe|Kurtaxe]]. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza.
* {{vCard | name = Hotel Sante Royale | type = hotel, restaurant | url = https://www.sante-royale.de/hotels/bad-langensalza | address = Parkstraße 1, 99947 Bad Langensalza | lat = 51.11412 | long = 10.64527 | tollfree = +49 0800 9022090 | email = info.badlangensalza@sante-royale.com | subtype = 4, free wlan, restaurant, sauna, spa, dogs, indoor pool, outdoor pool | lastedit = 2026-04-07 | description = Großes, modernes Hotel mit 130 Zimmern und Suiten.
}}
* {{vCard| type = hotel |name=Hotel L.A. CHICAGO|address=Tonnaerstraße 33, 99947 Bad Langensalza |phone=+49 03603 856836|email=info@lachicago.de|fax=+49 03603 856837|url=http://www.lachicago.de |hours=|price= |lat=51.10675 |long=10.65281
}}
* {{vCard| type = hotel |name=Zur Lohgerberei |address=Löbersgasse 2, 99947 Bad Langensalza |phone=+49 03603 846131 |email=kontakt@pension-zur-lohgerberei.de |fax=+49 03603 894344 |url=http://www.pension-zur-lohgerberei.de/ |hours=|price=EZ ab 37 €, DZ ab 27 € (jeweils inkl. Frühstück). |lat=51.11096 |long=10.64662 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Zöllner |address=Steinweg 1, 99947 Bad Langensalza |phone=+49 03603 815664 |email=info@pension-zoellner-thueringen.de |fax= |url=http://www.pension-zoellner-thueringen.de/ |hours=|price=EZ ab 30 €, DZ ab 50 € (jeweils inkl. Frühstück). |lat=51.10611 |long=10.64204 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Bergstube |address=Bergstraße 7, 99947 Bad Langensalza |phone=+49 03603 846980 |email=j.schroe@tonline.de |fax=+49 03603 814132 |url=http://bergstube.de/ |hours=|price=EZ ab 35 €, DZ als EZ ab 43 €, DZ ab 55 €. |lat=51.13836 |long=10.63443 |lastedit= |description=
}}
* {{vCard| type = hotel |name=Gasthaus zur Weintraube |address=Mühlhäuser Straße 11, 99947 Bad Langensalza |phone=+49 03603 846133 |email=info@zur-weintraube.de |fax=+49 03603 892830 |url=http://zur-weintraube.de/ |hours= Gasthaus: tägl. ab 10:00 |price=EZ ab 35 €, DZ ab 65 € (jeweils inkl. Frühstück. |lat=51.10943 |long=10.64351 |lastedit=|description=
}}
== Sicherheit ==
* {{vCard|name=Polizeistation |wikidata=|type=police |address=Bahnhofstraße 3, 99947 Bad Langensalza |phone=+49 03603 8310 |email=|fax=|url=|hours=|price=|lat=51.10375 |long=10.64196 |lastedit=|description=}}
== Gesundheit ==
=== Krankenhäuser ===
* {{vCard | name = Hufelandklinik | type = hospital | wikidata = Q107295076 | hours = 24/7 (Notaufnahme) | lastedit = 2026-04-06
}}
* {{vCard|name=Rehaklinik |wikidata=|type=hospital |address=Kurpromenade 6-8, 99947 Bad Langensalza |phone=+49 03603 8030 |email=info@rehaklinik-badlangensalza.de |fax=+49 03603 803100 |url=https://www.rehaklinik-badlangensalza.de/ |hours=|price=|lat=51.10941 |long=10.65063 |lastedit=|description=
}}
=== Sonstiges ===
Es gibt im Ort ein Ärztehaus, ein Medizinisches Versorgungszentrum (MVZ), dieserse Arztpraxen, Zahnärzte sowie drei Apotheken und zwei Sanitätshäuser.
* {{vCard | name = Therapie- und Kurbereich mit MTT der Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = '''Therapie+Kurbereich'': Mo—Fr 7:30—19:30 und nach Vereinbarung; ''Medizinische Trainingstherapie'': Mo—Fr 9:00—19:30 und nach Vereinbarung, Sep—Feb zusätzlich Sa 10:00—14:00 (außer an Feiertagen) | lastedit = 2026-04-13 | description = Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT). | copy-marker = Friederiken Therme
}}
== Praktische Hinweise ==
* {{vCard|name=Touristinformation Langensalza|type=tourist information|url=https://badlangensalza.de/kur-tourismus/service-info/touristinfo/|address=Bei der Marktkirche 11, 99947 Bad Langensalza|lat=51.10791|long=10.64866|phone=+49 (0)3603 834424|fax=+49 (0)3603 834421|email=touristinfo@badlangensalza.de|hours=Apr—Okt: Mo—Fr 9:00—18:00, Sa/So 10:00—16:00, Fe 10:00—14:00; Nov—Mär: Mo-Fr 9:00—17:00, Sa/Fe 10:00—14:00, So geschlossen}}
* Die Stadt bietet an diversen Orten '''kostenloses WLAN''' namens [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/w-langensalza/ W-LANgensalza]. Es gibt einen [https://badlangensalza.de/core/webp-express/webp-images/uploads/sites/2/2024/03/csm_Stadtplan-WLAN_65049e16b6.jpg.webp Stadtplan mit den eingezeichneten Hotspots], zur Verfügung steht es hier:
** Kultur- und Kongresszentrum
** An der Alten Post/Jahnplatz
** Wiebeckplatz, Ecke Lange Straße
** Rathaus
** Bei der Marktkirche
** Parkplatz am Ende der Friedrich-Mann-Straße
** Kornmarkt
** Touristeninformation
* Stadtführungen werden angeboten. Die Informationen dazu sind bei der Tourismusinformation zu erfragen.
* Die Filiale der Post befindet sich in der Tonnaer Straße 38.
=== Kurtaxe ===
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [https://badlangensalza.de/kur-tourismus/planen-buchen/gaestekarte/ Kurtaxe]. Sie beträgt für Erwachsene 3,00{{nnbsp}}€/Übernachtung, für Kinder im Alter von 6 bis 15 Jahren 1,50{{nnbsp}}€/Übernachtung. Für Schwerbehinderte und Blinde mit Schwerbehindertenausweis wird der Kurbeitrag um 50{{nnbsp}}% ermäßigt. Erwerbsunfähige Kriegsbeschädigte und Begleitpersonen von Schwerbehinderten sind von der Kurtaxe befreit. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza. Details: [https://badlangensalza.de/storage/sites/2/2025/03/Kurbeitragssatzung.pdf Kurbeitragssatzung der Stadt Bad Langensalza (pdf)]
== Ausflüge ==
* Der [[Nationalpark Hainich]] mit dem [[w:Baumkronenpfad_Hainich|Baumkronenpfad]] ([https://www.nationalpark-hainich.de/de/ausflugsziele/baumkronenpfad.html Webseite des Nationalparks], [https://www.baumkronen-pfad.de/ Webseite Bad Langensalza]) an der [[w:Thiemsburg|Thiemsburg]] liegt nur wenige Kilometer südlich der Stadt.
* [[Eisenach]] mit der [[w:Wartburg|Wartburg]] ist mit dem Auto in weniger als 30 Minuten zu erreichen.
<!--
== Literatur ==
-->
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.10806| long= 10.64667| radius= }}
{{IstInKat|Thüringen||Thüringer Kernland||Kurort in Thüringen}}
sljj4fdu7tgnd9r73h2veer8wlsxwqs
1769212
1769211
2026-04-17T11:35:05Z
Ousw
57729
/* Parks und Gärten */ Geänderte vCard für Rosengarten ''Garten der Liebe'' – Zugang zum Rosencafe ergänzt
1769212
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/ Touristinformation]
| TouriInfoTel = +49 (0)3603 834424
}}
Die Kur- und Rosenstadt '''Bad Langensalza''' ist eine ehemalige Kreisstadt am Nordwestrand des [[Thüringer Kernland|Thüringer Beckens]]. Neben einer Therme und zwei Kliniken kennzeichen die Stadt besonders ihre historische Altstadt, zehn Parks und Gärten, die teils ganzjährig zum Besuch einladen, sowie die Blumenpracht im gesamten Ort.
== Hintergrund ==
{{Mapframe|51.10806| long= 10.646|zoom=14|height=300|width=300|type=geoline}}
Bad Langensalza (bis 1956: Langensalza) ist ein Schwefel-Sole-Heilbad und staatlich anerkannter Kurort. Zu Beginn des 9. Jahrhunderts wurde erstmals ein Ort namens Salza – im lateinischen Text Salzaha – urkundlich erwähnt. Bad Langensalza gehört zu den historisch bedeutendsten Städten im Thüringer Becken, wovon die reichhaltige historische Bausubstanz in der Altstadt zeugt. Als eine der Waidstädte war Bad Langensalza sehr wohlhabend, sodass große Kirchen und eine mächtige Stadtmauer aus Langensalzaer Travertin, der direkt im Südwesten der Altstadt abgebaut werden konnte, errichtet wurden. Um 1300 wurde die Stadtmauer mit vier Eingangstoren fertiggestellt. Ein verheerender Stadtbrand legte 1711 Teile der Altstadt in Schutt und Asche. Die im prachtvollen Barockstil an ihrer Stelle entstandenen Bürgerhäuser prägen noch heute das Bild der Stadt. Heute sind von der ältesten Stadtbefestigung noch vier Stadtmauertürme erhalten.
Bekannt ist die Stadt auch für die [[w:Schlacht_bei_Langensalza|Schlacht bei Langensalza]] zwischen Preussen und Hannover 1866, in deren Folge Preussen Hannover annektierte. Im [[#vCard_Arboretum|Arboretum]] steht das daran erinnernde [[w:Langensalza-Denkmal_(Bad_Langensalza)|Denkmal]] der Stadt.
Im Juni 1938 wurde im Reinhardbrunner Hof eine antisemitische Hetzausstellung gezeigt. Ebenso wurden Sinti- und Roma-Familien verfolgt, von denen einige im KZ Langensalza, einem Außenlager des KZ Buchenwald, inhaftiert waren. Dort mussten insgesamt etwa 1300 ausländische Frauen und Männer Zwangsarbeit für ein Projekt der Junkers verrichten. Am 5. April 1945 wurde Langensalza durch amerikanische Truppen besetzt und Anfang Juli an die Rote Armee übergeben. So wurde es Teil der Sowjetischen Besatzungszone (SBZ) und ab 1949 der DDR.
Seit dem 28. Juni 1956 trägt Langensalza den Namenszusatz Bad. Seit 1990 wurde die Altstadt zu einem großen Teil restauriert. Später konnten in der Stadt Heilquellen erschlossen werden, die bis heute dem Kurbetrieb dienen. Damit einher ging die Anlage mehrerer Parks, wie Rosengarten und Japanischer Garten. Seit dem 22. Juni 2002 nennt sich Bad Langensalza „Rosenstadt“. Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [[#Kurtaxe|Kurtaxe]].
== Anreise ==
=== Mit dem Flugzeug ===
* Die nächstgelegenen Verkehrsflughäfen mit Linienverkehr sind der {{marker|type = airport|name = Flughafen Leipzig Halle |wikidata = Q668382}} und der {{marker|type = airport|name = Flughafen Frankfurt am Main|wikidata = Q46033}}.
* Auf dem in ca. 65{{nnbsp}}km entfernten {{marker | type = airport | name = Flughafen Erfurt–Weimar | wikidata = Q703794}} starten und landen mittlerweile nur noch Chartermaschinen. Er ist aber weiterhin für Geschäfts- und Sportflieger offen.
* {{vCard|name=Flugplatz Bad Langensalza|type=landing site|wikidata=Q2900762|directions=ca. 3{{nnbsp}}km nördlich|description=Der als [[w:Sonderlandeplatz|Sonderlandeplatz]] klassifizierte Fluplatz verfügt über eine 800{{nnbsp}}m lange Graslandebahn und kann von Ultraleichtfliegern angeflogen werden. Der Platz wird betrieben vom Flugsportverein „Otto Lilienthal“.}}
=== Mit der Bahn ===
{{vCard | name = Bahnhof Langensalza | type = rail | wikidata = Q62415577 | lastedit = 2026-04-10 | description = Betreuung nur mittels '''Video'''-Reisezentrum (geöffnet Mo-Fr 7:15–18:30, Sa 8:15–13:30), behindertengerechte Toilette nur mit entsprechendem Schlüssel. Am Bahnhof halten Regionalzüge aus Erfurt über Gotha oder über Gräfentonna sowie aus Kassel und Göttingen über Leinefelde und Mühlhausen. Der Bahnhof liegt am südlichen Stadtrand etwa ein Kilometer vom Stadtzentrum. Jeder hier verkehrende Zug bedient auch den Landkreis Gotha. Das nahegelegene [[Gotha]] bietet den nächsten ICE-Bahnhof. Mit der Stadtbuslinie B kann man direkt von der Haltestelle am Bahnhofsvorplatz Mo-Fr tagsüber halbstündlich und Sa vormittags alle zwei Stunden in die Innenstadt und zurück fahren; Aus-/Einstieg an der Endhaltestelle „Treffpunkt Wiebeckplatz“ (Fahrplan siehe [[#Mobilität|Mobilität]]). Das geschlossene Bahnhofsgebäude ist leider nicht einladend, obwohl es auch so noch vom früheren Wohlstand der Stadt zeugt, man wird aber im Ort dafür entschädigt. Zwischen Bahnhof und Busbahnhof gibt es den Imbiss ''Herbigs Grill''. }}
=== Mit dem Bus ===
Der {{Marker | type = bus | name = ZOB | lat=51.10166 | long=10.64270}} befindet sich ein Stück neben dem Bahnhofsvorplatz. Aufgrund der Lage bietet er nicht nur die Möglichkeit, über verschiedene Buslinien die benachbarten Gemeinden zu erreichen, sondern ermöglicht direkt zwischen Schienen-, Buslinien- und Stadtbusverkehr (Linie B, Haltestelle nicht am ZOB, sondern direkt am Bahnhofsvorplatz) zu wechseln. Auch [[Fernbusse in Deutschland|Fernbusse]] halten hier.
=== Auf der Straße ===
* Über die Autobahn {{RSIGN|DE|A|4}}, Anschlussstelle {{Ausfahrt|Eisenach-Ost,|40a,}} und der {{RSIGN|DE|B|84}} gelangt man in die Stadt.
* Die {{RSIGN|DE|B|247}} führt von [[Gotha]] oder von [[Mühlhausen (Thüringen)]] nach Bad Langensalza.
=== Mit dem Fahrrad ===
Der [[Unstrut-Radweg|Unstrut-Radweg]] durchquert den Ortsteil Thamsbrück.
== Mobilität ==
Aufgrund der Größe ist die Stadt gut zu Fuß zu erkunden. Parkplätze stehen auch an vielen Stellen zur Verfügung. Es gibt zwei Stadtbuslinien: [https://www.salzatours.de/fahrplanauskunft/ Fahrplanauskunft] der Salza–Tours König GmbH & Co. KG
* '''Linie A''' Gewerbegebiet Nord '''–''' EKZ Rasenmühlenweg – Treffpunkt Wiebeckplatz – Gutenbergstraße – Gewerbegebiet Ost
* '''Linie B''' Ufhoven Schenke – Bahnhof – Gutenbergstraße – Treffpunkt Wiebeckplatz & zurück
===Thiemsburg===
Buslinie 150 Verkehrsgemeinschaft Wartburgregion im Sommer mindestens 4 mal täglich Bad Langensalza - [[Thiemsburg]] - [[Behringen]] - [[Eisenach]].
== Sehenswürdigkeiten ==
[[Datei:LangensalzaGottesackerkirche.JPG|mini|Gottesackerkirche St. Trinitatis]]
=== Kirchen ===
* {{vCard | name = Marktkirche ''St. Bonifacii'' | comment = ev. Hauptkirche | type = church | wikidata = Q1901085 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/marktkirche-st-bonifacii/ | phone = +49 (0)3603 846402 | hours = Mo-Sa 14:00–16:00 und nach Vereinbarung | description = Die Marktkirche St. Bonifacii ist die evangelische Hauptkirche der Stadt und wurde in mehreren Bauphasen von Mitte des 13. bis Ende des 16. Jahrhunderts im Stil der Gotik erbaut und erweitert. Aus diesem Grund besteht sie aus vielen sich deutlich voneinander abhebenden Teilen. Eine Besonderheit ist die Einzeigeruhr am 74 m hohen Turm, einem der höchsten Kirchtürme in Thüringen. Die Malereien aus dem 16. Jahrhundert wurden erst Anfang des 20. Jahrhunderts wieder freigelegt. Die barocke Kanzel im Mittelschiff stammt aus dem Jahr 1734. Das Altarbild, eine Kreuzigungsszene darstellend, wurde vermutlich zwischen 1486 und 1490 hergestellt. Mai–Sep. Orgelmusik zur Marktzeit um 12 Uhr.
}}
* {{vCard | name = Bergkirche ''St. Stephani'' | type = church | wikidata = Q16857152 | url = https://evangelische-kirche-lsz.de/bergkirche-st-stephani-st-stephan/ | description = Ursprünglich außerhalb der ersten Stadtmauer als dreischiffige Basillika erbaut war sie die Pfarrkirche der Neustadt. Das im Jahr 1196 erstmals urkundlich als Kapelle erwähnte Gotteshaus ist der älteste Sakralbau in Bad Langensalza. Aus einer ursprünglichen Mönchskapelle entwickelte sich die Kirche durch Um- und Anbauten. Die Kanzel wurde 1590 im Renaissancestil aufgebaut. Die Glasfenster sind Stiftungen der Bürger im 19. Jahrhundert. An den Decken sind heute noch die Wappen der Spenderfamilien zu sehen. Die Orgel der Kirche wurde 1884/1985 von dem Bad Langensalzaer Orgelbauer [[w:Friedrich Erdmann Petersilie|Friedrich Petersilie]] erbaut. Der Turm hat eine Höhe von 53,5{{nnbsp}}m.
}}
* {{vCard | name = Gottesackerkirche ''St. Trinitatis'' | type = church | wikidata = Q16857154 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/gottesackerkirche-st-trinitatis/ | address = Tuchmachergasse 5, 99947 Bad Langensalza | directions = Im [[#vCard_Arboretum|Arboretum]], direkt neben dem Eingang. | hours = Nur bei Veranstaltungen zugänglich | lastedit = 2026-04-14 | description = Die Friedhofskirche wird als Konzertkirche mit vielfältigen musikalischen Veranstaltungen und einzigartiger Akustik genutzt. '''Geschichte''': Die Kirche wurde 1734–1739 unter der Schirmherrschaft von Herzog ''Christian von Sachsen–Weißenfels'' mit Travertinsteinen der im 30-jährigen Krieg zerstörten Marienkirche errichtet, woran die Kartusche über dem östlichen Portal erinnert. Über das Spitzbogenportal an der Westseite gelangt man zu den restaurierten Grüften. In Gegensatz zum strengen, symmetrischen Außenbau steht die reiche barocke Innenausstattung der Saalkirche mit zweigeschossigen Holzemporen und dem Kanzelaltar von 1734. Die aufwendige Gestaltung des Deckengewölbes zeigt sich in den barocken Malereien in ovalen Medaillons und Stuckaturen. Zur Ausstattung gehören das Madonnen-Relief aus der Marienkirche, zwei barocke Epitaphien und eine Orgel von ''Friedrich Erdmann Petersilie'' (1869). Umfangreiche Sanierungs- und Restaurierungsarbeiten 2008/2009 führten zu neuem Glanz.
}}
=== Bauwerke ===
* {{vCard|name=Rathaus|type=town hall|wikidata=Q119440667|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/rathaus/|description=Das Glockenspiel mit 32 Glocken und 5 Figuren kann 16 verschiedene Melodien spielen und erklingt täglich um 12 und 18 Uhr. Möglichkeit zu einer [https://badlangensalza.de/kur-tourismus/planen-buchen/gastefuhrungen/gruppenfuehrungen-3/unter-dem-pflaster/ Stadt- und Kellerführung], Dauer: 120 min, Preis 135,00 €, optional: „Herrliches Gesöff“ zum Abschluss zzgl. 2,50 € pro Getränk.
}}
* {{vCard | name = Schloss Dryburg | type = chateau | wikidata = Q2240669 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/schloss-dryburg/ | hours = Galerie: Do–Sa 14:00–17:00 und nach Vereinbarung. An Feiertagen geschlossen | lastedit = 2026-04-12 | description = Das Schloss Dryburg ist das älteste erhaltene, komplett aus Stein gemauerte Profangebäude in der Stadt. Von der mittelalterlichen Kernburg ist noch der Westflügel erhalten. Er beherbergt seit Anfang 2011 unter anderem die Galerie des [https://www.kunstwestthueringer.com/ Kunstwestthüringer e. V.], für Kunstliebhaber ein Muss. Der gemeinnützige Kunstverein sieht seine Aufgabe in Präsentation, Vermittlung und Aktion in Sachen zeitgenössischer bildender Kunst. Pro Jahr sind ca. sechs Ausstellungen zu sehen, eine davon immer im Mai ist die Präsentation von Werken internationaler Künstler.
}}
* {{vCard | name = Friederikenschlösschen | type = chateau | wikidata = Q19279910 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/friederikenschloesschen/ | address = Mauergasse 2, 99947 Bad Langensalza | hours = „Tag des offenen Schlösschens“ jeweils 14:00–17:00, aktuell: 17.05.26, 28.06.26, 12.07.26, 02.08.26, 16.08.26, 13.09.26 (Tag des offenen Denkmals 10:00–17:00), 18.10.26 | price = frei / auf Spendenbasis | lastedit = 2026-04-08 | description = Die Herzoginwitwe Friederike von Sachsen-Weißenfels ließ 1749 bis 1751 das Rokoko-Lustschloss errichten. Im Festsaal des Friederikenschlösschens werden Kleinkunstprogramme und Kammerkonzerte aufgeführt.
}}
* {{vCard | name = Stadtmauer und Türme | type = monument | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmauer-und-tuerme/ | lat = 51.10934 | long = 10.64943 | description = Bad Langensalza besitzt bis heute einen gut erhaltenen mittelalterlichen Stadtmauerring, von dem noch 16 Wachtürme und ein Eingangstor erhalten geblieben sind. Der 35,40 Meter hohe Klagetorturm an der Kurpromenade ist einer der wenigen noch erhaltenen Tortürme in Thüringen.
}}
* {{vCard | name = Kultur- und Kongresszentrum Bad Langensalza | comment = Jahnplatz als Parkfläche direkt hinter dem Haus | type = conference center | url = https://www.kkz-badlangensalza.de/ | address = Bürgermeister–Schönau–Platz 1, 99947 Bad Langensalza | lat = 51.11050 | long = 10.64223 | phone = +49 (0)3603 859 190 | email = kkz@bad-langensalza.de | lastedit = 2026-04-14 | description = NUTZUNG: Für Veranstaltungen (Tagung, Festlichkeit oder Konzert) von 10 bis zu 500 Personen: Unterschiedliche Räumlichkeiten (Saal, Bühne, Clubraum (Hufelandraum), Probesaal (Wieglebsaal), Saalnebenräume (Kloppstocksaal), kleiner Saal (Hermstedtsaal), Foyer) für jeden Anlass, moderne Tagungs- und Bühnentechnik, erfahrenes Veranstaltungsmanagement und hochwertige Gastronomie. Die Stadt veranstaltet hier (wie in der [[#vCard_Q16857154|Konzertkirche]] und an anderen Orten) diverse Events, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender]. GESCHICHTE: Das heutige Kultur- und Kongresszentrum hat eine lange Geschichte und wurde ehemals als Schützenhaus (erstmalige Erwähnung der „sagittarii“, der „Kappentragenden Pfeilschützen“, im Jahre 1380) erbaut und ersetzte zwei Vorgängerbauten für die Langensalzaer Schützengilde. Von 1717–1733 wurde das erste Schützenhaus errichtet und litt dann unter den deutschen Befreiungskriegen (1813 Pulvermagazin, 1814 Lazarett). Das baufällige Fachwerkgebäude diente nicht mehr seinem Zweck und wurde 1833 abgerissen. Der Neubau wurde dem Mauermeister ''Johann Benjamin Schneider'' und dem Zimmermeister ''Christian Andreas Wenk'' übertragen. Da die Schützen die Kosten nicht tragen konnten, wurden 215 Aktien verkauft. Grundsteinlegung war 1833, die Einweihung selbst fand im Juli 1834 statt. Der umfangreichere Neubau erhielt an der Frontseite einen repräsentativen Balkon sowie einen dreiseitigen Giebel. Bei den Kapitulationsverhandlungen 1866 (Hannover vs. Preußen) gastierte der König Georg V. von Hannover im Juni 1866 im Schützenhaus und der Kriegsrat besiegelte die Kapitulation. Im Nachhinein erfolgte die Benennung als „Königszimmer“ oder „Blaues Zimmer“. im Dezember 1906 wurde das gesamte Gebäude ein Raub der Flammen, glücklicherweise gab es.eine Entschädigungszahlung der ''Provinzial-Feuersozietät''. Das nach Bauplänen des hiesigen Stadtbaumeisters '''Ferdinand Kummer'' im November 1907 fertiggestellte Gebäude wurde mit Festbankett und Festball eingeweiht. Die veralteten Schießstände mussten auf königlichen Befehl erneuert und umzäunt werden. Im 1. Weltkrieg pausierten die Vereinsaktivitäten und das Schützenhaus wurde ab Herbst 1914 bis Anfang 1919 als Reservelazarett genutzt. Nach dem 2. Weltkrieg wurde das Schützenhaus von der Besatzungsmacht beschlagnahmt und 1946 mit dem Ziel der Errichtung eines Kulturzentrums der Sozialistischen Einheitspartei Deutschlands übertragen. Die Umbenennung des Gebäudes in Kulturhaus erfolgte schließlich Abfang Oktober 1952. Ab Januar 1961 wurde das geschlossene Kulturhaus in drei Bauabschnitten umgestaltet, die Gastronomie modernisiert. Mit einer symbolischen Schlüsselübergabe eröffnete das renovierte Kulturhaus Ende April 1962 und der Kulturhaus–Beirat kümmerte sich um die Nutzung. Der Kulturhausgarten wurde erstmals 1967 genutzt, die alte Kegelbahn 1978 abgerissen. Im Juni 1986 erfolgte einen Komplettumbau. Aufgrund von finanziellen und materiellen Engpässen wurden die Handwerker immer wieder unterbrochen, denn in den Wirren der Wendezeit versiegten die Geldquellen. Mit Hilfe von Bundes- und Landesmitteln konnte das Vorhaben eines modernen Kultur- und Kongresszentrums schließlich vollendet werden. Die Wiedereröffnung fand im Rahmen einer feierlichen Veranstaltung am 21. Februar 1992 statt. Der neue Name repräsentierte die kulturellen und künstlerischen Aspekte. In Vorbereitung des Landesprojektes ''Mensch–Natur–Städtebau'' wurde im Jahr 2009 das Kultur- und Kongresszentrum abermals umfangreich restauriert und modernisiert, insbesondere die Rosenlounge, die Außenfassade und der große Saal erstrahlen in neuem Glanz.
}}
=== Aussichtspunkt ===
[[Datei:Langensalza Dreitürmeblick.jpg|mini|Drei-Türme-Blick]]
[[Datei:LangensalzaDreitürmeblick2.JPG|mini|Blick durch die Skulptur]]
* {{vCard|name=Drei-Türme-Blick|type=viewpoint | lat = 51.1092 | long = 10.6417 |directions = vor der Gottesackerkirche neben dem Eingang in das Arboretum |url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/drei-tuerme-blick/ |description= Vom „Argusblick“ (die Skulptur wurde von dem Bad Langensalzaer Künstler [[w:Harald_Stieding|Harald Stieding]] geschaffen), einem aus Stein gehauenen Auge, das auf einer Travertinsäule thront, sind der Turm der einstigen Augustinerkirche, der Turm des Rathauses und schließlich der Turm der Marktkirche St. Bonifacii zu sehen. Diese drei Türme prägen die Ansicht der Kurstadt und sind immer wieder ein beliebtes Fotomotiv.
}}
=== Museen ===
[[Datei:Schild Wassermuseum vor Klagetor Bad Langensalza.jpg|mini|upright|Schild Wassermuseum mit dem Klagetor im Hintergrund]]
* {{vCard|name=Stadtmuseum im Augustinerkloster|type=museum|wikidata=Q76639038|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmuseum-im-augustinerkloster/|address=Augustinerplatz 1-2, 99947 Bad Langensalza|phone=+49 03603 813002|email=stadtmuseum@bad-langensalza.de|hours=Fr–So 13:00–17:00, Feiertagsregelungen beachten|price=Normal 5,00{{nnbsp}}€/Tag, erm. 4,00{{nnbsp}}€/Tag, Kinder und Schüler frei; Kombiticket Apotheken- und Stadtmuseum Erw. 8,00{{nnbsp}}€, erm. 6,00{{nnbsp}}€|lastedit=2026-04-01
}}
* {{vCard | name = Thüringer Apothekenmuseum | comment = im „Haus Rosenthal“ | type = museum | wikidata = Q20479980 | hours = Derzeit wie [[#vCard_Q76639038|Stadtmuseum]] | price = Wie [[#vCard_Q76639038|Stadtmuseum]] | lastedit = 2026-04-05 | description = Das historische Gebäude „Haus Rosenthal“ beherbergt seit Mai 2014 das Thüringer Apothekenmuseum. Die Besucher können im restaurierten Baudenkmal aus dem Jahr 1515, dessen Renovierung in einem FIlm gezeigt wird, u.{{nnbsp}}a. die historischen Wandvertäfelungen und zwei Holzstuben auf sich wirken lassen. Für die gelungene Sanierung erhielt die Stadt im Wettbewerb um den''Thüringer Holzbaupreis 2013'' eine Anerkennung sowie im Jahr 2015 den Thüringer Denkmalschutzpreis. Im Obergeschoss des Baudenkmals wird auf 276{{nnbsp}}m² eine Ausstellung zur Pharmaziegeschichte des 18. bis 20. Jahrhunderts präsentiert. In acht Räumen sind die verschiedenen Arbeitsbereiche einer alten Apotheke abgebildet. Neben einer Darstellung des Lebens und Wirkens des Langensalzaer Apothekers und Chemikers ''Johann Christian Wiegleb'' (1732–1800) werden Standgefäße aus Glas, Porzellan und Holz sowie eine Vielzahl an pharmazeutischen Arbeitsgeräten zur Herstellung von Arzneimitteln gezeigt. Das Museum ergänzt der angrenzende [[#vCard_Apothekergarten|Apothekergarten]], in dem mehr als 80 verschiedene, überwiegend heimische, Heilkräuter wachsen. Hinweis: Im Gebäude sind nur die Ausstellungen im Erdgeschoß sowie der Apothekergarten barrierefrei zu erreichen.
}}
* {{vCard | name = Rosenmuseum | comment = beim [[#vCard_Q112079448|Rosengarten]] | type = museum | address = Vor dem Klagetor 3, 99947 Bad Langensalza | directions = Zugang beim Kassenhäuschen des Rosengartens | lat = 51.11081 | long = 10.65237 | phone = +49 03603 834424 | hours = Wie [[#vCard_Q112079448|Rosengarten]] | lastedit = 2026-04-08 | description = Das Museum hat sich seit seiner Einrichtung kaum verändert und strahlt daher ein entsprechendes Flair aus, ist aber auch sehr informativ. Beispielsweise lernt man die In-vitro-Vermehrung von Rosen, bei der dünnste Scheiben von Rosenknospen steril in Nährmedien kultiviert werden, kennen, die die schnelle Produktion großer Mengen von Klonen ermöglicht. Das Museum soll beginnend mit der Saison 2026 sukzessive erneuert und mit modernen Medien ausgestattet werden.
}}
* {{vCard|name=Historische Druckerei|id=Historische_Druckerei|type=museum|lat=51.1092|long=10.6512|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/historische-druckerei/|hours=ganzjährig Di,Mi, Fr 9:00–12:00, sowie nach Vereinbarung|price=frei|description=Im Park des Friederikenschlösschens in der ehemaligen Kutscherremise befindet sich seit März 2008 die „Historische Druckerei“. Sie beherbergt heute u.{{nnbsp}}a. eine beeindruckende Handtiegelpresse aus dem Jahr 1854 sowie diverse Utensilien für den Handsatz und wird in kleinem Rahmen nach wie vor für Sonderdrucke genutzt. Die Druckerei kann an drei Tagen in der Woche vormittags ganzjährig besichtigt werden und die Besucher erhalten auf Wunsch von einem der sie betreuenden ehemaligen Setzer eine Führung mit der Möglichkeit, selbst ein Andenken zu drucken.}}
* {{vCard | name = Wassermuseum | type = museum | address = Hüngelsgasse 13, 99947 Bad Langensalza | lat = 51.11079 | long = 10.64951 | phone = +49 (0)3603 84070 | hours = Di 8:00–12:00, 13:30–17:30; Do 8:00–12:00, 13:30–15:30 | image = Wassermuseum Bad Langensalza.JPG | lastedit = 2026-04-07 | description = Betreiber: Verbandswasserwerk Bad Langensalza / Abwasserzweckverband (WAZV) "Mittlere Unstrut". Die beiden Google-Rezensionen des winzigen Museums im Eingangsbereich des Amtes innerhalb des letzten Jahres sind 5/5.
}}
=== Parks und Gärten ===
[[Datei:Bad Langensalza Arboretum Lageplan.jpg|mini|Lageplan Arboretum]]
[[Datei:Bad Langensalza Arboretum Pflanzensystematik.jpg|mini|Pflanzensystematik Arboretum]]
[[Datei:Bad Langensalza, japanischer Garten, Bild 8.jpg|mini|Japanischer Garten]]
[[Datei:Bad Langensalza 2022 - Rosengarten.jpg|mini|Rosengarten]]
[[Datei:Erblühende Magnolien am Wasserlauf vor Magnoliengarten Bad Langensalza.jpg|mini|Erblühende Magnolien am Wasserlauf vor dem Magnoliengarten]]
[[Datei:Ulmus parvifolia "Chinesische Kiefer" frei aufrechte Form Alter ca. 130 Jahre Japanischer Garten Bad Langensalza 02.jpg|mini|upright|Austreibender Bonsai Ulmus parvifolia „Chinesische Kiefer“, frei aufrechte Form, Alter ca. 130 Jahre, vor blühendem Baum im Japanischen Garten]]
Die Stadt besticht durch eine Vielzahl von [https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/ Parks und Gärten]:
* {{vCard | name = Arboretum | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/arboretum/ | lat = 51.10834 | long = 10.63949 | hours = Mär,Okt: täglich 10:00–18:00, Apr–Sep: täglich 10:00–19:00, Nov–Feb: geschlossen | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Das Arboretum (Baumgarten) ist eine geschichtsträchtige Parkanlage. Es lädt neben Entspannung und Erholung zum bummeln durch die Vielfalt an Bäumen und Sträuchern ein. Hier ist der Jahrezeitenwechsel am deutlichsten von allen Gärten der Stadt zu erleben. So zeigt sich das Arboretum von von Mitte März bis Oktober im bunten Blüten- und Blätterkleid. Auch bevor die Bäume ausschlagen bereichern den Garten zur Frühjahrsblüte durch früh blühende [[w:Magnolien|Magnolien]] und [[w:Frühjahrsblüher|Frühjahrsblüher]] mehr als nur einzelne Farbtupfer. Im Arboretum wachsen über 200 verschiedene Arten von [[w:Gehölz|Gehölz]]en, die zu mehr als 20 Pflanzenfamilien gehören. Eine umfangreiche Erweiterung der Gehölzsammlung konnte fast ausschließlich durch Spenden von Bürgern, Unternehmen und Institutionen realisiert werden. Ergänzt wird der Eindruck durch die zwölf Skulpturen aus Holz und Muschelkalk von neun Künstlern aus vier Ländern sowie einem Zeugnis der Stadtgeschichte, dem ''Hannoveraner Denkmal'', das an die Schlacht bei Langensalza 1866 erinnert. Die ebenfalls dort befindliche [[#vCard_Q16857154|Gottesackerkirche]] aus dem Jahr 1734 (von 2008–2009 saniert) wird als Konzertkirche ''St. Trinitatis'' genutzt. Das Arboretum ist zusätzlich zu einem Lageplan reichlich mit Text und Systematiken auf Schautafeln beschildert, so dass man viel über die [[w:Systematik des Pflanzenreichs|Systematik des Pflanzenreichs]] erfährt und die Gehölze entsprechend leicht finden und zuordnen kann. | id = Arboretum
}}
* {{vCard | name = Botanischer Garten ''Garten der Vielfalt'' | type = botanical garden | wikidata = Q4948492 | hours = Mai–Okt täglich 10:00–18:00 | price = frei | subtype = nodogs | lastedit = 2026-04-11 | description = Der Garten mit einem Sukkulentenhaus im Zentrum ist nach dem Umbau der ''[[#vCard_Friederiken Therme|Friederiken Therme]]'' seit 2025 erneut geöffnet und beinhaltet auch ein Kneippsches Tretbecken; insbesondere der Alpingarten (Alpinum) und die Gräserlandschaft werden zurzeit wieder neu angelegt. Besonders beeindrucken die teils sehr großen Goldkugelkakteen („Schwiegermuttersitz“ bzw. „-stuhl“).
}}
* {{vCard | name = Japanischer Garten ''Garten der Glückseligkeit'' | name-local = (jap. 幸福の庭, Kōfuku no niwa | alt = genauer ein [[w:Japanischer Wandelgarten|Japanischer Wandelgarten]] | type = garden | wikidata = Q26821540 | hours = Mär, Okt: täglich 10:00–18:00; Apr-Sep: täglich 10:00–19:00 | price = ab 12 J. 6,00 €/Tag, erm. 5,00 €/Tag; Feierabendticket (ab 17:00) 4,00 €/Tag; Kombiticket (alle Gärten, Stadt- und Apothekenmuseum) 20,00 €/Tag, erm. 16,00 €/Tag; bei Sonderveranstaltungen teils andere Preise | subtype = nodogs | lastedit = 2026-04-05 | description = Besucher tauchen ein in die Harmonie der Stille der verschiedenen Landschaften. Das Wasser hat eine wichtige symbolische Bedeutung: Wellenbewegungen fließen vom Wasserfall über den Teich in den Trockenbach, Pflanzen und Steine führen die Bewegung weiter. Im Kontrast zur Teichlandschaft steht die Trockenlandschaft. Ein Pflanzenpavillon mit Teehaus und der „Pavillon des Teetrinkens“, in dem ohne Zeremonie grüner Tee gereicht wird, ergänzen das Ensemble. Im April beginnen die Kirsch- und Magnoilienblüte, im Mai blüht die Azaleenlandschaft, Iris und Seerosen folgen im Juni. Es finden diverse Veranstaltungen (mit Vorführung japanischer Kampf- und Trommelkünste, Origami, Sushi uvm.) statt: Hanami Kirschblütenfest (April, aktuell 25. April 2026), Kodomo NoHi Kinderfest (Mai), Märchenfest (Juni), Tanabata Sternenfest (Juli). Im Dezember 2025 wurde zudem erstmalig (innerhalb der eigentlich üblichen Schließzeit November bis Februar) eine ''Fernöstliche Lichter-Poesie'' veranstaltet. Bei dieser wurde der Garten mit wechselnden Lichtfarben beleuchtet, es gab zwei Videoprojektionen u.{{nnbsp}}a. mit Videos und Bildern über den Garten sowie Musikuntermalung. Nach Aussage der Mitarbeiter war die Veranstaltung so gut besucht, dass sie vsl. in den kommenden Jahren wiederholt wird.
}}
* {{vCard|name=Kurpark|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/kurpark/|lat=51.10881|long=10.65008|hours=24/7|price=frei|lastedit=2026-03-05|description=Der Park liegt teilweise entlang der Stadtmauer und ist zur Hälfte von einem kleinen Wasserlauf durchzogen. Am einen Ende befindet sich ein künstlicher Wasserfall, und der Weg führt dann vorbei am Friederikenschlösschen, einem Kinderspielplatz, dem Abzweig zum Rosengarten, weiter zwischen dem Japanischen Garten und dem Natur!Gärten und geht dann in den Weg zum Magnoliengarten und den Botanischen Garten über. Blumenbeete, zugeschnittene Bäume und Bögen aus Büschen, unter denen man durchgehen kann, bereichern das Ambiente.}}
* {{vCard | name = Rosengarten ''Garten der Liebe'' | comment = Zugang zum [[#vCard_Rosencafé|Rosencafé]] direkt vom Garten aus | type = garden | wikidata = Q112079448 | hours = Mai-Sep: täglich 10:00–19:00; Okt: täglich 10:00-–8:00 | price = Wie [[#vCard_Q26821540|Japanischer Garten]] | subtype = parking, nodogs | lastedit = 2026-04-17 | description = Auf 18.000 qm erblühen und duften fast 450 Rosenarten wie historische und Englische Rosen, Wildrosen und Edelrosen, Rosenhochstämme und Kleinstrauchrosen; besonders sehenswert ist die Sammlung der Bad Langensalzaer Rosen (1950–990 wurden hier allein 91 Rosensorten gezüchtet. Anni Berger, die einzige Rosenzüchterin Deutschlands, war in Bad Langensalza tätig. Sie ist Namensgeberin einer Stiftung, die die Rosentradition, Denkmalpflege und Umweltschutz fördert – vgl. Anni-Berger-Stiftung.de), Skulpturen der Künstler Gert van Acker und Harald Stieding ergänzen das Gartenbild. Da auch die Vorgärten und die Stadtplätze vielfältige Rosen zieren, verwundert es nicht, dass 2002 der Stadt das Prädikat „Rosenstadt“ verliehen wurde.
}}
* {{vCard | name = Magnoliengarten | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/magnoliengarten/ | lat = 51.11366 | long = 10.64912 | hours = 24/7 | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Der 2006 eröffnete Magnoliengarten zeigt auf 1.500 qm mehr als 30 Magnolienarten, die von März bis Juli blühen – eine Zaubernuss beginnt den Blütenreigen. Magnolien gehören mit zu den ältesten Blütenpflanzen der Erde (vor der Eiszeit auch in Europa heimisch!), die heute in Ostasien und Amerika zu finden sind. Ergänzt werden sie durch Hortensien, Waldreben, Ginkgobäume sowie Blumen und Sträucher, teils auf einem kleinen Hügel als weiteres gestalterisches Element.
}}
* {{vCard | name = Schlösschenpark | comment = des [[#vCard_Q19279910|Friederikenschlösschens]] | type = park | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/schloesschenpark/ | lat = 51.10892 | long = 10.65177 | price = frei | lastedit = 2026-04-05 | description = Der von der der Herzogin Friederike von Sachsen-Weißenfels terrassenartig angelegte kleine Park aus der Mitte des 18. Jahrhunderts mit Blick auf das Schlösschen lädt zum Verweilen ein. Im hinteren Teil des Gartens ist ein historischer Gartenpavillon aus dem Jahr 1878 erhalten. Dort sprudelt aus einem Bronzebecken Schwefelwasser, das seit 1812 in der Kurstadt Bad Langensalza als Heilwasser verwendet wird. In der ehemaligen Remise befindet sich eine [[#vCard_Historische_Druckerei|historische Druckerei]].
}}
* {{vCard | name = Apothekergarten | alt = ''Garten der Heilkräuter'' | comment = beim [[#vCard_Q20479980|Apothekenmuseum]] | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/apothekergarten/ | lat = 51.11016 | long = 10.64459 | hours = Wie Apothekenmuseum, in der Wintersaison geschlossen | lastedit = 2026-04-05 | description = Der Apothekergarten hinter dem „Haus Rosenthal“ (daher nur über das Apothekenmuseum zugänglich) zeigt eine Auswahl an in Mitteldeutschland heimischer Pflanzen, die immer noch zur Herstellung von Arzneidrogen verwendet werden. Die Heilpflanzen sind in neun Beeten nach ihren Anwendungen bzw. medizinischer Indikation geordnet und beschildert. Umsäumt werden die Kräuterbeete von Blumen (Rosen brauchen in Bad Langensalza gar nicht extra erwähnt werden) sowie einigen Obstbäumen und Sträuchern. | id = Apothekergarten
}}
* {{vCard | name = Natur!Garten | comment = betrieben vom [[w:Bund_für_Umwelt_und_Naturschutz_Deutschland|BUND]] Ortsverband Bad Langensalza[https://badlangensalza.bund.net/]. Das '''Café'''[https://baeckerei-esche.de/bund-naturgarten-cafe/] im Garten hat '''kürzere''' Öffnungszeiten: Apr–Okt Mi–Fr 13:00–17:00, Sa/So/Fe bis 18:00 | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/naturgarten/ | lat = 51.1121 | long = 10.6489 | hours = Mär–Okt: täglich 8:00–18:00 | price = frei | lastedit = 2026-04-05 | description = Der 1.600 m² große Garten ermöglicht es, die Natur anzufassen (-> einheimische Pflanzen und Insekten). Er besteht seit 1994 auf und wurde 2019/20 neu gestaltet, dazu gehörten ein Pflanzenbestand mit über 1.000 neuen einheimischen bzw. für einen Bauerngarten typische Blumenzwiebeln, Stauden und Gehölze. Der Garten dient auch der Umweltbildung und verbindet einen nachhaltigen Bauerngarten (zentrales Brunnenhäuschen, Obst- und Gemüsebeete, Kräuterbank, klassische Bauerngarten-Blumenbeete, Färberpflanzen, Kompost) mit einem reinen Naturgarten (Blumenrasen, Wild-Stauden-Wall, „Beet der Flatterlinge“, Teich mit Sumpfwiese, Benjes-Hecke, größter Mirabellen-Baum und höchster Holunder-Strauch von Bad Langensalza). Kinder dürfen spielen und die Natur erforschen, Erwachsene erhalten Anregungen für eine naturnahe Gartengestaltung. Nätürlich ist auch für Verweilplätze gesorgt. Last but not least erreicht man durch den Garten das '''einzige begehbare Stück Stadtmauer-Wehrgang''' und zwei Stadtmauertürme. Zur nach ökologischen Gesichtspunkten sanierten Stadtmauer gehören im Stadtmauer-Rundturm ein „Raum der Stille“ und im Eckturm die Lese-Ecken.
}}
* {{vCard|name=TRACO Park|alt=Garten des Travertins|comment=betrieben von der Firma [https://traco.de/ TRACO]|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/traco-park/|address=Poststraße 17, 99947 Bad Langensalza|lat=51.1039|long=10.6377|phone=+49 (0)3603 8520|hours=Mo–Fr 9:00–18:00, Sa 10:00–13:00, in den Wintermonaten verkürzt|price=frei|subtype=wheelchair, free parking|lastedit=2026-04-10|description=Ausstellungsgarten zeigt breites Spektrum der natürlichen und ästhetischen Garten- und Landschaftsgestaltung mit Sandstein, Muschelkalk und Travertin aus firmeneigenen Steinbrüchen bei Weimar, Gotha und Bad Langensalza: Mauern, Treppen, Wege, Wasserkunst….}}
== Aktivitäten ==
* {{vCard | name = Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | lat = 51.11442 | long = 10.64683 | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = ''Thermalbad+Sauna'': So–Mi 10:00–21:00, Do–Sa 10:00–22:00 | price = ab 5{{nnbsp}}J komplexes Preissystem: Bad, Sauna, Kombitarife, Spättarife, Rabatte, s. Webseite | lastedit = 2026-04-13 | description = (Kinder bis zur Vollendung des 12.{{nnbsp}}Lebensjahres nur in Begleitung Erwachsener.) Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT).
}}
* {{vCard | name = Kino ''Burgtheater'' | type = cinema | url = https://burg-theater.de/ | address = Vor dem Schlosse 5e, 99947 Bad Langensalza | lat = 51.10903 | long = 10.64725 | phone = +49 (0)3603 846206 | fax = +49 (0)3212 1080916 | email = kino@burg-theater.de | hours = Tageweise Mo-So, teils ab 12:15, letzte Vorstellung 20:00 | price = 6,50–10 €; Aufschläge: ab 120 min +0,50 €, ab 140 min +1 €, 3D–Filme +2,50 €, teils Kinderermäßigungen vor 19:00; Di. Kinotag (nicht feiertags) | lastedit = 2026-04-08
}}
* {{vCard | name = Kindererlebniswelt ''Rumpelburg'' | type = children | url = https://kindererlebniswelt-rumpelburg.de/ | address = Sperlingsgasse 4, 99947 Bad Langensalza | lat = 51.10664 | long = 10.64754 | phone = +49 (0)3603 398-4604 | email = info@kindererlebniswelt-rumpelburg.de | hours = Di–Fr 14:00–18:00, Sa 10:00–18:00, So 10:00–17:00, auf Vorbestellung für Gruppen Di–Fr 10:00–13:00, Schließzeiten beachten (ges. Feiertage, Sommer-Betriebsferien, Weihnachtsferien) | price = 0–1J frei, 1–2J 3,50{{nnbsp}}€/1{{nnbsp}}Std, ab 2J/Erw. 4,00{{nnbsp}}€/1{{nnbsp}}Std, Rabatte/Sonderaktionen s. Webseite | lastedit = 2026-04-10 | description = Klettern, rutschen und toben in einer fantastischen Welt mit Spiel, Spaß und Entdeckungen. Netzbrücken, geheimnisvolle Baumhäuser, riesige Puppenstube und wilde Rutschpartien – Abwechslung bei jedem Wetter für Groß und Klein. Ereignisreiche Stunden durch verschiedene Rollen spielerisch erleben in: Spielhaus, Schiff, Tiergehege mit Holztieren oder Spielstadt. Aufmerksame Kinder entdecken vielleicht die geheimnisvollen Rumpelburgbewohner: Rosentroll Puck, Wasserelfe Tine oder Rumpel, das Gespenst.
}}
* Die Stadt veranstaltet insbesondere in der [[Bad Langensalza#vCard Q16857154|Konzertkirche]], dem [[Bad Langensalza#vCard Kongress- und Kulturzentrum Bad Langensalza|Kongress- und Kulturzentrum Bad Langensalza]] sowie an anderen Orten diverse '''Events''' wie beispielsweise Konzerte, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender Eventkalender].
* '''[https://badlangensalza.de/kur-tourismus/planen-buchen/veranstaltungen/veranstaltungshighlights/mittelalterstadtfest/ Mittelalterstadtfest]''' mit Handwerker- und Händlerständen, Musik- und Kleinkunstprogramm sowie Schaukämpfen am letzten Augustwochenende (aktuell 29./30. August 2026)
* Im ''Japanischen Garten'' finden diverse Veranstaltungen statt (Details finden sich beim [[#vCard_Q26821540|Japanischen Garten]]):
** '''Hanami Kirschblütenfest''' (April)
** '''Kodomo NoHi Kinderfest''' (Mai)
** '''Märchenfest''' (Juni)
** '''Tanabata Sternenfest''' (Juli)
** '''Fernöstliche Lichter-Poesie''': Sie wurde im Dezember 2025 (innerhalb der eigentlich üblichen Schließzeit November bis Februar) erstmalig veranstaltet und wird vsl. in den kommenden Jahren wiederholt.
* {{vCard | name = Flugplatz Bad Langensalza | type = landing site | wikidata = Q2900762 | directions = 3{{nnbsp}}km nordwestlich von Bad Langensalza | show = copy| price = Schnupperflug ab 30 €; ''Pilot für einen Tag'' (ca. 3 Std.) 199 € | lastedit = 2026-04-04 | description = Er wurde 1927 errichtet und von der [[w:Wehrmacht|Wehrmacht]] genutzt. Aktuell wird der [[w:Sonderlandeplatz|Sonderlandeplatz]] vom Flugsportverein ''„Otto Lilienthal“ Bad Langensalza e.{{nnbsp}}V.'' betrieben. Er verfügt über eine Gras-Start- und Landebahn mit der Größe 800{{nnbsp}}m × 40{{nnbsp}}m. Angebote: Segelflug, Ultraleichtflug (UL-Flug), Rundflüge und Gastflüge.
}}
== Einkaufen ==
Es gibt Bad in Langensalza das typische Angebot einer Kleinstadt. Spezielle lokale Reisesouvenirs sind hier zu erwerben.
* {{vCard|name=Wochenmarkt|type=market|url=https://citymanagement-badlangensalza.de/events/wochenmarkt/|address=Fußgängerzone|lat=51.1086|long=10.6454|hours=Mi 8:00–14:00|lastedit=2026-04-06|description=Auf dem Wochenmarkt gibt es nicht nur frisches Obst und Gemüse, Geflügel und Fisch, Backwaren, Eier und Teigwaren, Wurst- und Käsesorten, Pasti und Antipasti, Gewürze, Kräuter, Honig und Marmeladen sowie Blumen und Pflanzen zu kaufen, man kann dort auch diverse warme Gerichte gleich essen oder mitnehmen. Viele der Angebote stammen dabei aus der Region. Für eine thüringer Stadt eher ungewöhnlich erhält man als eine der beiden je eintägigen Möglichkeiten im Ort ''[[w:Thüringer Rostbratwürste|Thüringer Rostbratwürste]]'' in einer Semmel (gute Wurst, sehr gutes Brötchen, 3{{nnbsp}}€).}}
* {{vCard | name = Buchhandlung ''Buchgeschwister'' | type = book seller | url = https://www.genialokal.de/buchhandlung/bad-langensalza/buchgeschwister/ | address = Mühlhäuser Str. 39, 99947 Bad Langensalza | lat = 51.10895 | long = 10.64475 | phone = +49 (0)3603 842449 | email = kontakt@buchgeschwister.com | instagram = buchgeschwister.lsz | hours = Di–Fr 10:00–13:00, 14:00–17:00, Sa 10:00–13:00 | image = Buchhandlung "Buchgeschwister" Bad Langensalza.jpg | lastedit = 2026-04-09 | description = sehr persönliche Beratung.
}}
== Küche ==
Bei vielen Cafés und Restaurants kann man auch draußen sitzen. Letztere haben oft werktags ein Mittagsangebot.
* {{vCard | name = Café Schwesterherz | comment = Gegründet von den Schwestern Anni und Ulrike | type = cafe | url = https://cafe-schwesterherz.jimdofree.com/ | address = Mühlhäuser Str. 2, 99947 Bad Langensalza | lat = 51.10878 | long = 10.64463 | phone = +49 (0)3603 3989345 | email = Cafe-Schwesterherz@freenet.de | hours = Di–Fr 9:00–17:30, 2.+4. Sa im Monat 9:30—17:00, 1.+3. Sa im Monat 9:30—12:30 | image = Cafe Schwesterherz Bad Langensalza.jpg | lastedit = 2026-04-08 | description = Uriges Ambiente mit der Möglichkeit, schöne Dinge zu erwerben und auch draußen zu sitzen. Eine der Spezialitäten sind nach dem Motto ''Kuchen wie bei Omi'' selbstgebackene Kuchen. Die ausführlichen Rezensionen des Cafés (Google 4,8/5) sprechen oft von begeisterten Besuchern. Um sicher einen Platz zu bekommen ist eine Reservierung empfehlenswert.
}}
* {{vCard | name = Rosencafé | type = restaurant | url = https://www.rosencafe-bad-langensalza.de/ | address = Am Rosengarten 11, 99947 Bad Langensalza | directions = Direkt am [[#vCard_Q112079448|Rosengarten]], Zugangsmöglichkeit von dort aus, zurück benötigt man die Eintrittskarte für das Drehkreuz. Eingang auch vom neuen Wohngebiet aus. | lat = 51.11224 | long = 10.65247 | phone = +49 (0)3603 891601 | email = info@rosencafe-bad-langensalza.de | hours = Do–So 10:00–17:00, bis 15:00 warme Küche | subtype = accessible, parking | lastedit = 2026-04-17
}}
* {{vCard | name = Ristorante Venezia | type = restaurant | url = https://www.venezia-restaurant.de/ | address = Marktstraße 31, 99947 Bad Langensalza | lat = 51.10820 | long = 10.64577 | phone = +49 03603 895469 | fax = +49 03603 8969308 | hours = tägl. 10:00–0:00, warme Küche durchgehend 11:00–23:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Villa Italia | type = restaurant | url = https://www.villa-italia.de/ | address = Kurpromenade 5a, 99947 Bad Langensalza | lat = 51.10838 | long = 10.65071 | phone = +49 03603 892861 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Punjabi Bad'sha | alt = Indisches Restaurant & Eiscafe | type = restaurant | url = https://www.punjabi-badshah.de/ | address = Kornmarkt 2, 99947 Bad Langensalza | lat = 51.10761 | long = 10.64739 | phone = +49 (0)36031 279246 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Herkules | type = restaurant | address = Steinweg 11, 99947 Bad Langensalza | lat = 51.10547 | long = 10.64209 | phone = +49 03603 1277321 | facebook = Restaurant.Herkules | hours = Di–Fr 17:00—23:00; Sa,So 11:30—14:30 und 17:00—23:00 | subtype = greek | lastedit = 2026-04-06 | description = Beliebter Grieche in passendem Ambiente.
}}
* {{vCard | name = Pizzeria Flamingo | type = restaurant | address = Steingrubenstraße 7, 99947 Bad Langensalza | lat = 51.10656 | long = 10.64428 | phone = +49 03603 1277589 | instagram = pizzeriaflamingoo | hours = Mo–Sa 10:30–21:30, So 13:00–21:30 | lastedit = 2026-04-06
}}
* {{vCard | name = PHANtastic | alt = Asian Fusion | comment = Gästeparkplatz hinten im Schlosshof 3, 99947 Bad Langensalza | type = restaurant | address = Marktstraße 3, 99947 Bad Langensalza | lat = 51.10866 | long = 10.64578 | phone = +49 (0)3603 8955218 | hours = Di-Sa 10:30-22:00, So 11:30-22:00, Mo nur feiertags geöffnet | lastedit = 2026-04-09 | description = Neueröffnung 11.4.2026, Aktionsangebot 11.4.—19.4.2026 15% Rabatt.
}}
* {{vCard | name = Ratswaage | type = restaurant | url = https://ratswaage-lsz.de/ | address = Mühlhäuser Straße 40, 99947 Bad Langensalza | lat = 51.10893 | long = 10.64494 | phone = +49 (0)3603 8955310 | email = info@ratswaage-lsz.de | hours = tägl. 11:00—14:30, 17:00—23:00 | image = Restaurant Ratswaage Bad Langensalza.jpg | lastedit = 2026-04-09
}}
* {{vCard|name=Asia Food & Salza Grill|type=restaurant|address=Rathausstraße 9, 99947 Bad Langensalza|lat=51.10818|long=10.64437|phone=+49 (0)3603 84 86 16|hours=Mo-Fr 11:00-21:00, So/Fe 11:00-21:00|price=günstig|payment=derzeit nur Barzahlung|subtype=asian, grill, takeaway|lastedit=2026-04-09|description=alle Speisen auch zum Mitnehmen, ein paar Tische innen und ein paar draußen, Personal freundlich, Essen gut, „große Portion“ heißt zu Recht so!
}}
* {{vCard | name = Schnitzel-Steak-Haus | type = restaurant | url = https://schnitzel-steak-haus.metro.rest/?lang=de | address = Marktstraße 19, 99947 Bad Langensalza | lat = 51.10830 | long = 10.64739 | phone = +49 (0)3603 896970 | email = dido2004@abv.bg | hours = Mo–So 10:00–22:00 | lastedit = 2026-04-10 | description = Jede Woche ein Mittagsmenü: typischerweise Suppe, zwei verschiedene Hauptgerichte, Eis.
}}
== Nachtleben ==
== Unterkunft ==
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig für Übernachtungsgäste eine [[#Kurtaxe|Kurtaxe]]. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza.
* {{vCard | name = Hotel Sante Royale | type = hotel, restaurant | url = https://www.sante-royale.de/hotels/bad-langensalza | address = Parkstraße 1, 99947 Bad Langensalza | lat = 51.11412 | long = 10.64527 | tollfree = +49 0800 9022090 | email = info.badlangensalza@sante-royale.com | subtype = 4, free wlan, restaurant, sauna, spa, dogs, indoor pool, outdoor pool | lastedit = 2026-04-07 | description = Großes, modernes Hotel mit 130 Zimmern und Suiten.
}}
* {{vCard| type = hotel |name=Hotel L.A. CHICAGO|address=Tonnaerstraße 33, 99947 Bad Langensalza |phone=+49 03603 856836|email=info@lachicago.de|fax=+49 03603 856837|url=http://www.lachicago.de |hours=|price= |lat=51.10675 |long=10.65281
}}
* {{vCard| type = hotel |name=Zur Lohgerberei |address=Löbersgasse 2, 99947 Bad Langensalza |phone=+49 03603 846131 |email=kontakt@pension-zur-lohgerberei.de |fax=+49 03603 894344 |url=http://www.pension-zur-lohgerberei.de/ |hours=|price=EZ ab 37 €, DZ ab 27 € (jeweils inkl. Frühstück). |lat=51.11096 |long=10.64662 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Zöllner |address=Steinweg 1, 99947 Bad Langensalza |phone=+49 03603 815664 |email=info@pension-zoellner-thueringen.de |fax= |url=http://www.pension-zoellner-thueringen.de/ |hours=|price=EZ ab 30 €, DZ ab 50 € (jeweils inkl. Frühstück). |lat=51.10611 |long=10.64204 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Bergstube |address=Bergstraße 7, 99947 Bad Langensalza |phone=+49 03603 846980 |email=j.schroe@tonline.de |fax=+49 03603 814132 |url=http://bergstube.de/ |hours=|price=EZ ab 35 €, DZ als EZ ab 43 €, DZ ab 55 €. |lat=51.13836 |long=10.63443 |lastedit= |description=
}}
* {{vCard| type = hotel |name=Gasthaus zur Weintraube |address=Mühlhäuser Straße 11, 99947 Bad Langensalza |phone=+49 03603 846133 |email=info@zur-weintraube.de |fax=+49 03603 892830 |url=http://zur-weintraube.de/ |hours= Gasthaus: tägl. ab 10:00 |price=EZ ab 35 €, DZ ab 65 € (jeweils inkl. Frühstück. |lat=51.10943 |long=10.64351 |lastedit=|description=
}}
== Sicherheit ==
* {{vCard|name=Polizeistation |wikidata=|type=police |address=Bahnhofstraße 3, 99947 Bad Langensalza |phone=+49 03603 8310 |email=|fax=|url=|hours=|price=|lat=51.10375 |long=10.64196 |lastedit=|description=}}
== Gesundheit ==
=== Krankenhäuser ===
* {{vCard | name = Hufelandklinik | type = hospital | wikidata = Q107295076 | hours = 24/7 (Notaufnahme) | lastedit = 2026-04-06
}}
* {{vCard|name=Rehaklinik |wikidata=|type=hospital |address=Kurpromenade 6-8, 99947 Bad Langensalza |phone=+49 03603 8030 |email=info@rehaklinik-badlangensalza.de |fax=+49 03603 803100 |url=https://www.rehaklinik-badlangensalza.de/ |hours=|price=|lat=51.10941 |long=10.65063 |lastedit=|description=
}}
=== Sonstiges ===
Es gibt im Ort ein Ärztehaus, ein Medizinisches Versorgungszentrum (MVZ), dieserse Arztpraxen, Zahnärzte sowie drei Apotheken und zwei Sanitätshäuser.
* {{vCard | name = Therapie- und Kurbereich mit MTT der Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = '''Therapie+Kurbereich'': Mo—Fr 7:30—19:30 und nach Vereinbarung; ''Medizinische Trainingstherapie'': Mo—Fr 9:00—19:30 und nach Vereinbarung, Sep—Feb zusätzlich Sa 10:00—14:00 (außer an Feiertagen) | lastedit = 2026-04-13 | description = Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT). | copy-marker = Friederiken Therme
}}
== Praktische Hinweise ==
* {{vCard|name=Touristinformation Langensalza|type=tourist information|url=https://badlangensalza.de/kur-tourismus/service-info/touristinfo/|address=Bei der Marktkirche 11, 99947 Bad Langensalza|lat=51.10791|long=10.64866|phone=+49 (0)3603 834424|fax=+49 (0)3603 834421|email=touristinfo@badlangensalza.de|hours=Apr—Okt: Mo—Fr 9:00—18:00, Sa/So 10:00—16:00, Fe 10:00—14:00; Nov—Mär: Mo-Fr 9:00—17:00, Sa/Fe 10:00—14:00, So geschlossen}}
* Die Stadt bietet an diversen Orten '''kostenloses WLAN''' namens [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/w-langensalza/ W-LANgensalza]. Es gibt einen [https://badlangensalza.de/core/webp-express/webp-images/uploads/sites/2/2024/03/csm_Stadtplan-WLAN_65049e16b6.jpg.webp Stadtplan mit den eingezeichneten Hotspots], zur Verfügung steht es hier:
** Kultur- und Kongresszentrum
** An der Alten Post/Jahnplatz
** Wiebeckplatz, Ecke Lange Straße
** Rathaus
** Bei der Marktkirche
** Parkplatz am Ende der Friedrich-Mann-Straße
** Kornmarkt
** Touristeninformation
* Stadtführungen werden angeboten. Die Informationen dazu sind bei der Tourismusinformation zu erfragen.
* Die Filiale der Post befindet sich in der Tonnaer Straße 38.
=== Kurtaxe ===
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [https://badlangensalza.de/kur-tourismus/planen-buchen/gaestekarte/ Kurtaxe]. Sie beträgt für Erwachsene 3,00{{nnbsp}}€/Übernachtung, für Kinder im Alter von 6 bis 15 Jahren 1,50{{nnbsp}}€/Übernachtung. Für Schwerbehinderte und Blinde mit Schwerbehindertenausweis wird der Kurbeitrag um 50{{nnbsp}}% ermäßigt. Erwerbsunfähige Kriegsbeschädigte und Begleitpersonen von Schwerbehinderten sind von der Kurtaxe befreit. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza. Details: [https://badlangensalza.de/storage/sites/2/2025/03/Kurbeitragssatzung.pdf Kurbeitragssatzung der Stadt Bad Langensalza (pdf)]
== Ausflüge ==
* Der [[Nationalpark Hainich]] mit dem [[w:Baumkronenpfad_Hainich|Baumkronenpfad]] ([https://www.nationalpark-hainich.de/de/ausflugsziele/baumkronenpfad.html Webseite des Nationalparks], [https://www.baumkronen-pfad.de/ Webseite Bad Langensalza]) an der [[w:Thiemsburg|Thiemsburg]] liegt nur wenige Kilometer südlich der Stadt.
* [[Eisenach]] mit der [[w:Wartburg|Wartburg]] ist mit dem Auto in weniger als 30 Minuten zu erreichen.
<!--
== Literatur ==
-->
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.10806| long= 10.64667| radius= }}
{{IstInKat|Thüringen||Thüringer Kernland||Kurort in Thüringen}}
i1xemfmlaa8gycsvrbcryyqz0dr1hdo
1769213
1769212
2026-04-17T11:37:39Z
Ousw
57729
/* Küche */ Geänderte vCard für PHANtastic – richtiger -
1769213
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/ Touristinformation]
| TouriInfoTel = +49 (0)3603 834424
}}
Die Kur- und Rosenstadt '''Bad Langensalza''' ist eine ehemalige Kreisstadt am Nordwestrand des [[Thüringer Kernland|Thüringer Beckens]]. Neben einer Therme und zwei Kliniken kennzeichen die Stadt besonders ihre historische Altstadt, zehn Parks und Gärten, die teils ganzjährig zum Besuch einladen, sowie die Blumenpracht im gesamten Ort.
== Hintergrund ==
{{Mapframe|51.10806| long= 10.646|zoom=14|height=300|width=300|type=geoline}}
Bad Langensalza (bis 1956: Langensalza) ist ein Schwefel-Sole-Heilbad und staatlich anerkannter Kurort. Zu Beginn des 9. Jahrhunderts wurde erstmals ein Ort namens Salza – im lateinischen Text Salzaha – urkundlich erwähnt. Bad Langensalza gehört zu den historisch bedeutendsten Städten im Thüringer Becken, wovon die reichhaltige historische Bausubstanz in der Altstadt zeugt. Als eine der Waidstädte war Bad Langensalza sehr wohlhabend, sodass große Kirchen und eine mächtige Stadtmauer aus Langensalzaer Travertin, der direkt im Südwesten der Altstadt abgebaut werden konnte, errichtet wurden. Um 1300 wurde die Stadtmauer mit vier Eingangstoren fertiggestellt. Ein verheerender Stadtbrand legte 1711 Teile der Altstadt in Schutt und Asche. Die im prachtvollen Barockstil an ihrer Stelle entstandenen Bürgerhäuser prägen noch heute das Bild der Stadt. Heute sind von der ältesten Stadtbefestigung noch vier Stadtmauertürme erhalten.
Bekannt ist die Stadt auch für die [[w:Schlacht_bei_Langensalza|Schlacht bei Langensalza]] zwischen Preussen und Hannover 1866, in deren Folge Preussen Hannover annektierte. Im [[#vCard_Arboretum|Arboretum]] steht das daran erinnernde [[w:Langensalza-Denkmal_(Bad_Langensalza)|Denkmal]] der Stadt.
Im Juni 1938 wurde im Reinhardbrunner Hof eine antisemitische Hetzausstellung gezeigt. Ebenso wurden Sinti- und Roma-Familien verfolgt, von denen einige im KZ Langensalza, einem Außenlager des KZ Buchenwald, inhaftiert waren. Dort mussten insgesamt etwa 1300 ausländische Frauen und Männer Zwangsarbeit für ein Projekt der Junkers verrichten. Am 5. April 1945 wurde Langensalza durch amerikanische Truppen besetzt und Anfang Juli an die Rote Armee übergeben. So wurde es Teil der Sowjetischen Besatzungszone (SBZ) und ab 1949 der DDR.
Seit dem 28. Juni 1956 trägt Langensalza den Namenszusatz Bad. Seit 1990 wurde die Altstadt zu einem großen Teil restauriert. Später konnten in der Stadt Heilquellen erschlossen werden, die bis heute dem Kurbetrieb dienen. Damit einher ging die Anlage mehrerer Parks, wie Rosengarten und Japanischer Garten. Seit dem 22. Juni 2002 nennt sich Bad Langensalza „Rosenstadt“. Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [[#Kurtaxe|Kurtaxe]].
== Anreise ==
=== Mit dem Flugzeug ===
* Die nächstgelegenen Verkehrsflughäfen mit Linienverkehr sind der {{marker|type = airport|name = Flughafen Leipzig Halle |wikidata = Q668382}} und der {{marker|type = airport|name = Flughafen Frankfurt am Main|wikidata = Q46033}}.
* Auf dem in ca. 65{{nnbsp}}km entfernten {{marker | type = airport | name = Flughafen Erfurt–Weimar | wikidata = Q703794}} starten und landen mittlerweile nur noch Chartermaschinen. Er ist aber weiterhin für Geschäfts- und Sportflieger offen.
* {{vCard|name=Flugplatz Bad Langensalza|type=landing site|wikidata=Q2900762|directions=ca. 3{{nnbsp}}km nördlich|description=Der als [[w:Sonderlandeplatz|Sonderlandeplatz]] klassifizierte Fluplatz verfügt über eine 800{{nnbsp}}m lange Graslandebahn und kann von Ultraleichtfliegern angeflogen werden. Der Platz wird betrieben vom Flugsportverein „Otto Lilienthal“.}}
=== Mit der Bahn ===
{{vCard | name = Bahnhof Langensalza | type = rail | wikidata = Q62415577 | lastedit = 2026-04-10 | description = Betreuung nur mittels '''Video'''-Reisezentrum (geöffnet Mo-Fr 7:15–18:30, Sa 8:15–13:30), behindertengerechte Toilette nur mit entsprechendem Schlüssel. Am Bahnhof halten Regionalzüge aus Erfurt über Gotha oder über Gräfentonna sowie aus Kassel und Göttingen über Leinefelde und Mühlhausen. Der Bahnhof liegt am südlichen Stadtrand etwa ein Kilometer vom Stadtzentrum. Jeder hier verkehrende Zug bedient auch den Landkreis Gotha. Das nahegelegene [[Gotha]] bietet den nächsten ICE-Bahnhof. Mit der Stadtbuslinie B kann man direkt von der Haltestelle am Bahnhofsvorplatz Mo-Fr tagsüber halbstündlich und Sa vormittags alle zwei Stunden in die Innenstadt und zurück fahren; Aus-/Einstieg an der Endhaltestelle „Treffpunkt Wiebeckplatz“ (Fahrplan siehe [[#Mobilität|Mobilität]]). Das geschlossene Bahnhofsgebäude ist leider nicht einladend, obwohl es auch so noch vom früheren Wohlstand der Stadt zeugt, man wird aber im Ort dafür entschädigt. Zwischen Bahnhof und Busbahnhof gibt es den Imbiss ''Herbigs Grill''. }}
=== Mit dem Bus ===
Der {{Marker | type = bus | name = ZOB | lat=51.10166 | long=10.64270}} befindet sich ein Stück neben dem Bahnhofsvorplatz. Aufgrund der Lage bietet er nicht nur die Möglichkeit, über verschiedene Buslinien die benachbarten Gemeinden zu erreichen, sondern ermöglicht direkt zwischen Schienen-, Buslinien- und Stadtbusverkehr (Linie B, Haltestelle nicht am ZOB, sondern direkt am Bahnhofsvorplatz) zu wechseln. Auch [[Fernbusse in Deutschland|Fernbusse]] halten hier.
=== Auf der Straße ===
* Über die Autobahn {{RSIGN|DE|A|4}}, Anschlussstelle {{Ausfahrt|Eisenach-Ost,|40a,}} und der {{RSIGN|DE|B|84}} gelangt man in die Stadt.
* Die {{RSIGN|DE|B|247}} führt von [[Gotha]] oder von [[Mühlhausen (Thüringen)]] nach Bad Langensalza.
=== Mit dem Fahrrad ===
Der [[Unstrut-Radweg|Unstrut-Radweg]] durchquert den Ortsteil Thamsbrück.
== Mobilität ==
Aufgrund der Größe ist die Stadt gut zu Fuß zu erkunden. Parkplätze stehen auch an vielen Stellen zur Verfügung. Es gibt zwei Stadtbuslinien: [https://www.salzatours.de/fahrplanauskunft/ Fahrplanauskunft] der Salza–Tours König GmbH & Co. KG
* '''Linie A''' Gewerbegebiet Nord '''–''' EKZ Rasenmühlenweg – Treffpunkt Wiebeckplatz – Gutenbergstraße – Gewerbegebiet Ost
* '''Linie B''' Ufhoven Schenke – Bahnhof – Gutenbergstraße – Treffpunkt Wiebeckplatz & zurück
===Thiemsburg===
Buslinie 150 Verkehrsgemeinschaft Wartburgregion im Sommer mindestens 4 mal täglich Bad Langensalza - [[Thiemsburg]] - [[Behringen]] - [[Eisenach]].
== Sehenswürdigkeiten ==
[[Datei:LangensalzaGottesackerkirche.JPG|mini|Gottesackerkirche St. Trinitatis]]
=== Kirchen ===
* {{vCard | name = Marktkirche ''St. Bonifacii'' | comment = ev. Hauptkirche | type = church | wikidata = Q1901085 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/marktkirche-st-bonifacii/ | phone = +49 (0)3603 846402 | hours = Mo-Sa 14:00–16:00 und nach Vereinbarung | description = Die Marktkirche St. Bonifacii ist die evangelische Hauptkirche der Stadt und wurde in mehreren Bauphasen von Mitte des 13. bis Ende des 16. Jahrhunderts im Stil der Gotik erbaut und erweitert. Aus diesem Grund besteht sie aus vielen sich deutlich voneinander abhebenden Teilen. Eine Besonderheit ist die Einzeigeruhr am 74 m hohen Turm, einem der höchsten Kirchtürme in Thüringen. Die Malereien aus dem 16. Jahrhundert wurden erst Anfang des 20. Jahrhunderts wieder freigelegt. Die barocke Kanzel im Mittelschiff stammt aus dem Jahr 1734. Das Altarbild, eine Kreuzigungsszene darstellend, wurde vermutlich zwischen 1486 und 1490 hergestellt. Mai–Sep. Orgelmusik zur Marktzeit um 12 Uhr.
}}
* {{vCard | name = Bergkirche ''St. Stephani'' | type = church | wikidata = Q16857152 | url = https://evangelische-kirche-lsz.de/bergkirche-st-stephani-st-stephan/ | description = Ursprünglich außerhalb der ersten Stadtmauer als dreischiffige Basillika erbaut war sie die Pfarrkirche der Neustadt. Das im Jahr 1196 erstmals urkundlich als Kapelle erwähnte Gotteshaus ist der älteste Sakralbau in Bad Langensalza. Aus einer ursprünglichen Mönchskapelle entwickelte sich die Kirche durch Um- und Anbauten. Die Kanzel wurde 1590 im Renaissancestil aufgebaut. Die Glasfenster sind Stiftungen der Bürger im 19. Jahrhundert. An den Decken sind heute noch die Wappen der Spenderfamilien zu sehen. Die Orgel der Kirche wurde 1884/1985 von dem Bad Langensalzaer Orgelbauer [[w:Friedrich Erdmann Petersilie|Friedrich Petersilie]] erbaut. Der Turm hat eine Höhe von 53,5{{nnbsp}}m.
}}
* {{vCard | name = Gottesackerkirche ''St. Trinitatis'' | type = church | wikidata = Q16857154 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/gottesackerkirche-st-trinitatis/ | address = Tuchmachergasse 5, 99947 Bad Langensalza | directions = Im [[#vCard_Arboretum|Arboretum]], direkt neben dem Eingang. | hours = Nur bei Veranstaltungen zugänglich | lastedit = 2026-04-14 | description = Die Friedhofskirche wird als Konzertkirche mit vielfältigen musikalischen Veranstaltungen und einzigartiger Akustik genutzt. '''Geschichte''': Die Kirche wurde 1734–1739 unter der Schirmherrschaft von Herzog ''Christian von Sachsen–Weißenfels'' mit Travertinsteinen der im 30-jährigen Krieg zerstörten Marienkirche errichtet, woran die Kartusche über dem östlichen Portal erinnert. Über das Spitzbogenportal an der Westseite gelangt man zu den restaurierten Grüften. In Gegensatz zum strengen, symmetrischen Außenbau steht die reiche barocke Innenausstattung der Saalkirche mit zweigeschossigen Holzemporen und dem Kanzelaltar von 1734. Die aufwendige Gestaltung des Deckengewölbes zeigt sich in den barocken Malereien in ovalen Medaillons und Stuckaturen. Zur Ausstattung gehören das Madonnen-Relief aus der Marienkirche, zwei barocke Epitaphien und eine Orgel von ''Friedrich Erdmann Petersilie'' (1869). Umfangreiche Sanierungs- und Restaurierungsarbeiten 2008/2009 führten zu neuem Glanz.
}}
=== Bauwerke ===
* {{vCard|name=Rathaus|type=town hall|wikidata=Q119440667|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/rathaus/|description=Das Glockenspiel mit 32 Glocken und 5 Figuren kann 16 verschiedene Melodien spielen und erklingt täglich um 12 und 18 Uhr. Möglichkeit zu einer [https://badlangensalza.de/kur-tourismus/planen-buchen/gastefuhrungen/gruppenfuehrungen-3/unter-dem-pflaster/ Stadt- und Kellerführung], Dauer: 120 min, Preis 135,00 €, optional: „Herrliches Gesöff“ zum Abschluss zzgl. 2,50 € pro Getränk.
}}
* {{vCard | name = Schloss Dryburg | type = chateau | wikidata = Q2240669 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/schloss-dryburg/ | hours = Galerie: Do–Sa 14:00–17:00 und nach Vereinbarung. An Feiertagen geschlossen | lastedit = 2026-04-12 | description = Das Schloss Dryburg ist das älteste erhaltene, komplett aus Stein gemauerte Profangebäude in der Stadt. Von der mittelalterlichen Kernburg ist noch der Westflügel erhalten. Er beherbergt seit Anfang 2011 unter anderem die Galerie des [https://www.kunstwestthueringer.com/ Kunstwestthüringer e. V.], für Kunstliebhaber ein Muss. Der gemeinnützige Kunstverein sieht seine Aufgabe in Präsentation, Vermittlung und Aktion in Sachen zeitgenössischer bildender Kunst. Pro Jahr sind ca. sechs Ausstellungen zu sehen, eine davon immer im Mai ist die Präsentation von Werken internationaler Künstler.
}}
* {{vCard | name = Friederikenschlösschen | type = chateau | wikidata = Q19279910 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/friederikenschloesschen/ | address = Mauergasse 2, 99947 Bad Langensalza | hours = „Tag des offenen Schlösschens“ jeweils 14:00–17:00, aktuell: 17.05.26, 28.06.26, 12.07.26, 02.08.26, 16.08.26, 13.09.26 (Tag des offenen Denkmals 10:00–17:00), 18.10.26 | price = frei / auf Spendenbasis | lastedit = 2026-04-08 | description = Die Herzoginwitwe Friederike von Sachsen-Weißenfels ließ 1749 bis 1751 das Rokoko-Lustschloss errichten. Im Festsaal des Friederikenschlösschens werden Kleinkunstprogramme und Kammerkonzerte aufgeführt.
}}
* {{vCard | name = Stadtmauer und Türme | type = monument | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmauer-und-tuerme/ | lat = 51.10934 | long = 10.64943 | description = Bad Langensalza besitzt bis heute einen gut erhaltenen mittelalterlichen Stadtmauerring, von dem noch 16 Wachtürme und ein Eingangstor erhalten geblieben sind. Der 35,40 Meter hohe Klagetorturm an der Kurpromenade ist einer der wenigen noch erhaltenen Tortürme in Thüringen.
}}
* {{vCard | name = Kultur- und Kongresszentrum Bad Langensalza | comment = Jahnplatz als Parkfläche direkt hinter dem Haus | type = conference center | url = https://www.kkz-badlangensalza.de/ | address = Bürgermeister–Schönau–Platz 1, 99947 Bad Langensalza | lat = 51.11050 | long = 10.64223 | phone = +49 (0)3603 859 190 | email = kkz@bad-langensalza.de | lastedit = 2026-04-14 | description = NUTZUNG: Für Veranstaltungen (Tagung, Festlichkeit oder Konzert) von 10 bis zu 500 Personen: Unterschiedliche Räumlichkeiten (Saal, Bühne, Clubraum (Hufelandraum), Probesaal (Wieglebsaal), Saalnebenräume (Kloppstocksaal), kleiner Saal (Hermstedtsaal), Foyer) für jeden Anlass, moderne Tagungs- und Bühnentechnik, erfahrenes Veranstaltungsmanagement und hochwertige Gastronomie. Die Stadt veranstaltet hier (wie in der [[#vCard_Q16857154|Konzertkirche]] und an anderen Orten) diverse Events, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender]. GESCHICHTE: Das heutige Kultur- und Kongresszentrum hat eine lange Geschichte und wurde ehemals als Schützenhaus (erstmalige Erwähnung der „sagittarii“, der „Kappentragenden Pfeilschützen“, im Jahre 1380) erbaut und ersetzte zwei Vorgängerbauten für die Langensalzaer Schützengilde. Von 1717–1733 wurde das erste Schützenhaus errichtet und litt dann unter den deutschen Befreiungskriegen (1813 Pulvermagazin, 1814 Lazarett). Das baufällige Fachwerkgebäude diente nicht mehr seinem Zweck und wurde 1833 abgerissen. Der Neubau wurde dem Mauermeister ''Johann Benjamin Schneider'' und dem Zimmermeister ''Christian Andreas Wenk'' übertragen. Da die Schützen die Kosten nicht tragen konnten, wurden 215 Aktien verkauft. Grundsteinlegung war 1833, die Einweihung selbst fand im Juli 1834 statt. Der umfangreichere Neubau erhielt an der Frontseite einen repräsentativen Balkon sowie einen dreiseitigen Giebel. Bei den Kapitulationsverhandlungen 1866 (Hannover vs. Preußen) gastierte der König Georg V. von Hannover im Juni 1866 im Schützenhaus und der Kriegsrat besiegelte die Kapitulation. Im Nachhinein erfolgte die Benennung als „Königszimmer“ oder „Blaues Zimmer“. im Dezember 1906 wurde das gesamte Gebäude ein Raub der Flammen, glücklicherweise gab es.eine Entschädigungszahlung der ''Provinzial-Feuersozietät''. Das nach Bauplänen des hiesigen Stadtbaumeisters '''Ferdinand Kummer'' im November 1907 fertiggestellte Gebäude wurde mit Festbankett und Festball eingeweiht. Die veralteten Schießstände mussten auf königlichen Befehl erneuert und umzäunt werden. Im 1. Weltkrieg pausierten die Vereinsaktivitäten und das Schützenhaus wurde ab Herbst 1914 bis Anfang 1919 als Reservelazarett genutzt. Nach dem 2. Weltkrieg wurde das Schützenhaus von der Besatzungsmacht beschlagnahmt und 1946 mit dem Ziel der Errichtung eines Kulturzentrums der Sozialistischen Einheitspartei Deutschlands übertragen. Die Umbenennung des Gebäudes in Kulturhaus erfolgte schließlich Abfang Oktober 1952. Ab Januar 1961 wurde das geschlossene Kulturhaus in drei Bauabschnitten umgestaltet, die Gastronomie modernisiert. Mit einer symbolischen Schlüsselübergabe eröffnete das renovierte Kulturhaus Ende April 1962 und der Kulturhaus–Beirat kümmerte sich um die Nutzung. Der Kulturhausgarten wurde erstmals 1967 genutzt, die alte Kegelbahn 1978 abgerissen. Im Juni 1986 erfolgte einen Komplettumbau. Aufgrund von finanziellen und materiellen Engpässen wurden die Handwerker immer wieder unterbrochen, denn in den Wirren der Wendezeit versiegten die Geldquellen. Mit Hilfe von Bundes- und Landesmitteln konnte das Vorhaben eines modernen Kultur- und Kongresszentrums schließlich vollendet werden. Die Wiedereröffnung fand im Rahmen einer feierlichen Veranstaltung am 21. Februar 1992 statt. Der neue Name repräsentierte die kulturellen und künstlerischen Aspekte. In Vorbereitung des Landesprojektes ''Mensch–Natur–Städtebau'' wurde im Jahr 2009 das Kultur- und Kongresszentrum abermals umfangreich restauriert und modernisiert, insbesondere die Rosenlounge, die Außenfassade und der große Saal erstrahlen in neuem Glanz.
}}
=== Aussichtspunkt ===
[[Datei:Langensalza Dreitürmeblick.jpg|mini|Drei-Türme-Blick]]
[[Datei:LangensalzaDreitürmeblick2.JPG|mini|Blick durch die Skulptur]]
* {{vCard|name=Drei-Türme-Blick|type=viewpoint | lat = 51.1092 | long = 10.6417 |directions = vor der Gottesackerkirche neben dem Eingang in das Arboretum |url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/drei-tuerme-blick/ |description= Vom „Argusblick“ (die Skulptur wurde von dem Bad Langensalzaer Künstler [[w:Harald_Stieding|Harald Stieding]] geschaffen), einem aus Stein gehauenen Auge, das auf einer Travertinsäule thront, sind der Turm der einstigen Augustinerkirche, der Turm des Rathauses und schließlich der Turm der Marktkirche St. Bonifacii zu sehen. Diese drei Türme prägen die Ansicht der Kurstadt und sind immer wieder ein beliebtes Fotomotiv.
}}
=== Museen ===
[[Datei:Schild Wassermuseum vor Klagetor Bad Langensalza.jpg|mini|upright|Schild Wassermuseum mit dem Klagetor im Hintergrund]]
* {{vCard|name=Stadtmuseum im Augustinerkloster|type=museum|wikidata=Q76639038|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmuseum-im-augustinerkloster/|address=Augustinerplatz 1-2, 99947 Bad Langensalza|phone=+49 03603 813002|email=stadtmuseum@bad-langensalza.de|hours=Fr–So 13:00–17:00, Feiertagsregelungen beachten|price=Normal 5,00{{nnbsp}}€/Tag, erm. 4,00{{nnbsp}}€/Tag, Kinder und Schüler frei; Kombiticket Apotheken- und Stadtmuseum Erw. 8,00{{nnbsp}}€, erm. 6,00{{nnbsp}}€|lastedit=2026-04-01
}}
* {{vCard | name = Thüringer Apothekenmuseum | comment = im „Haus Rosenthal“ | type = museum | wikidata = Q20479980 | hours = Derzeit wie [[#vCard_Q76639038|Stadtmuseum]] | price = Wie [[#vCard_Q76639038|Stadtmuseum]] | lastedit = 2026-04-05 | description = Das historische Gebäude „Haus Rosenthal“ beherbergt seit Mai 2014 das Thüringer Apothekenmuseum. Die Besucher können im restaurierten Baudenkmal aus dem Jahr 1515, dessen Renovierung in einem FIlm gezeigt wird, u.{{nnbsp}}a. die historischen Wandvertäfelungen und zwei Holzstuben auf sich wirken lassen. Für die gelungene Sanierung erhielt die Stadt im Wettbewerb um den''Thüringer Holzbaupreis 2013'' eine Anerkennung sowie im Jahr 2015 den Thüringer Denkmalschutzpreis. Im Obergeschoss des Baudenkmals wird auf 276{{nnbsp}}m² eine Ausstellung zur Pharmaziegeschichte des 18. bis 20. Jahrhunderts präsentiert. In acht Räumen sind die verschiedenen Arbeitsbereiche einer alten Apotheke abgebildet. Neben einer Darstellung des Lebens und Wirkens des Langensalzaer Apothekers und Chemikers ''Johann Christian Wiegleb'' (1732–1800) werden Standgefäße aus Glas, Porzellan und Holz sowie eine Vielzahl an pharmazeutischen Arbeitsgeräten zur Herstellung von Arzneimitteln gezeigt. Das Museum ergänzt der angrenzende [[#vCard_Apothekergarten|Apothekergarten]], in dem mehr als 80 verschiedene, überwiegend heimische, Heilkräuter wachsen. Hinweis: Im Gebäude sind nur die Ausstellungen im Erdgeschoß sowie der Apothekergarten barrierefrei zu erreichen.
}}
* {{vCard | name = Rosenmuseum | comment = beim [[#vCard_Q112079448|Rosengarten]] | type = museum | address = Vor dem Klagetor 3, 99947 Bad Langensalza | directions = Zugang beim Kassenhäuschen des Rosengartens | lat = 51.11081 | long = 10.65237 | phone = +49 03603 834424 | hours = Wie [[#vCard_Q112079448|Rosengarten]] | lastedit = 2026-04-08 | description = Das Museum hat sich seit seiner Einrichtung kaum verändert und strahlt daher ein entsprechendes Flair aus, ist aber auch sehr informativ. Beispielsweise lernt man die In-vitro-Vermehrung von Rosen, bei der dünnste Scheiben von Rosenknospen steril in Nährmedien kultiviert werden, kennen, die die schnelle Produktion großer Mengen von Klonen ermöglicht. Das Museum soll beginnend mit der Saison 2026 sukzessive erneuert und mit modernen Medien ausgestattet werden.
}}
* {{vCard|name=Historische Druckerei|id=Historische_Druckerei|type=museum|lat=51.1092|long=10.6512|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/historische-druckerei/|hours=ganzjährig Di,Mi, Fr 9:00–12:00, sowie nach Vereinbarung|price=frei|description=Im Park des Friederikenschlösschens in der ehemaligen Kutscherremise befindet sich seit März 2008 die „Historische Druckerei“. Sie beherbergt heute u.{{nnbsp}}a. eine beeindruckende Handtiegelpresse aus dem Jahr 1854 sowie diverse Utensilien für den Handsatz und wird in kleinem Rahmen nach wie vor für Sonderdrucke genutzt. Die Druckerei kann an drei Tagen in der Woche vormittags ganzjährig besichtigt werden und die Besucher erhalten auf Wunsch von einem der sie betreuenden ehemaligen Setzer eine Führung mit der Möglichkeit, selbst ein Andenken zu drucken.}}
* {{vCard | name = Wassermuseum | type = museum | address = Hüngelsgasse 13, 99947 Bad Langensalza | lat = 51.11079 | long = 10.64951 | phone = +49 (0)3603 84070 | hours = Di 8:00–12:00, 13:30–17:30; Do 8:00–12:00, 13:30–15:30 | image = Wassermuseum Bad Langensalza.JPG | lastedit = 2026-04-07 | description = Betreiber: Verbandswasserwerk Bad Langensalza / Abwasserzweckverband (WAZV) "Mittlere Unstrut". Die beiden Google-Rezensionen des winzigen Museums im Eingangsbereich des Amtes innerhalb des letzten Jahres sind 5/5.
}}
=== Parks und Gärten ===
[[Datei:Bad Langensalza Arboretum Lageplan.jpg|mini|Lageplan Arboretum]]
[[Datei:Bad Langensalza Arboretum Pflanzensystematik.jpg|mini|Pflanzensystematik Arboretum]]
[[Datei:Bad Langensalza, japanischer Garten, Bild 8.jpg|mini|Japanischer Garten]]
[[Datei:Bad Langensalza 2022 - Rosengarten.jpg|mini|Rosengarten]]
[[Datei:Erblühende Magnolien am Wasserlauf vor Magnoliengarten Bad Langensalza.jpg|mini|Erblühende Magnolien am Wasserlauf vor dem Magnoliengarten]]
[[Datei:Ulmus parvifolia "Chinesische Kiefer" frei aufrechte Form Alter ca. 130 Jahre Japanischer Garten Bad Langensalza 02.jpg|mini|upright|Austreibender Bonsai Ulmus parvifolia „Chinesische Kiefer“, frei aufrechte Form, Alter ca. 130 Jahre, vor blühendem Baum im Japanischen Garten]]
Die Stadt besticht durch eine Vielzahl von [https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/ Parks und Gärten]:
* {{vCard | name = Arboretum | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/arboretum/ | lat = 51.10834 | long = 10.63949 | hours = Mär,Okt: täglich 10:00–18:00, Apr–Sep: täglich 10:00–19:00, Nov–Feb: geschlossen | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Das Arboretum (Baumgarten) ist eine geschichtsträchtige Parkanlage. Es lädt neben Entspannung und Erholung zum bummeln durch die Vielfalt an Bäumen und Sträuchern ein. Hier ist der Jahrezeitenwechsel am deutlichsten von allen Gärten der Stadt zu erleben. So zeigt sich das Arboretum von von Mitte März bis Oktober im bunten Blüten- und Blätterkleid. Auch bevor die Bäume ausschlagen bereichern den Garten zur Frühjahrsblüte durch früh blühende [[w:Magnolien|Magnolien]] und [[w:Frühjahrsblüher|Frühjahrsblüher]] mehr als nur einzelne Farbtupfer. Im Arboretum wachsen über 200 verschiedene Arten von [[w:Gehölz|Gehölz]]en, die zu mehr als 20 Pflanzenfamilien gehören. Eine umfangreiche Erweiterung der Gehölzsammlung konnte fast ausschließlich durch Spenden von Bürgern, Unternehmen und Institutionen realisiert werden. Ergänzt wird der Eindruck durch die zwölf Skulpturen aus Holz und Muschelkalk von neun Künstlern aus vier Ländern sowie einem Zeugnis der Stadtgeschichte, dem ''Hannoveraner Denkmal'', das an die Schlacht bei Langensalza 1866 erinnert. Die ebenfalls dort befindliche [[#vCard_Q16857154|Gottesackerkirche]] aus dem Jahr 1734 (von 2008–2009 saniert) wird als Konzertkirche ''St. Trinitatis'' genutzt. Das Arboretum ist zusätzlich zu einem Lageplan reichlich mit Text und Systematiken auf Schautafeln beschildert, so dass man viel über die [[w:Systematik des Pflanzenreichs|Systematik des Pflanzenreichs]] erfährt und die Gehölze entsprechend leicht finden und zuordnen kann. | id = Arboretum
}}
* {{vCard | name = Botanischer Garten ''Garten der Vielfalt'' | type = botanical garden | wikidata = Q4948492 | hours = Mai–Okt täglich 10:00–18:00 | price = frei | subtype = nodogs | lastedit = 2026-04-11 | description = Der Garten mit einem Sukkulentenhaus im Zentrum ist nach dem Umbau der ''[[#vCard_Friederiken Therme|Friederiken Therme]]'' seit 2025 erneut geöffnet und beinhaltet auch ein Kneippsches Tretbecken; insbesondere der Alpingarten (Alpinum) und die Gräserlandschaft werden zurzeit wieder neu angelegt. Besonders beeindrucken die teils sehr großen Goldkugelkakteen („Schwiegermuttersitz“ bzw. „-stuhl“).
}}
* {{vCard | name = Japanischer Garten ''Garten der Glückseligkeit'' | name-local = (jap. 幸福の庭, Kōfuku no niwa | alt = genauer ein [[w:Japanischer Wandelgarten|Japanischer Wandelgarten]] | type = garden | wikidata = Q26821540 | hours = Mär, Okt: täglich 10:00–18:00; Apr-Sep: täglich 10:00–19:00 | price = ab 12 J. 6,00 €/Tag, erm. 5,00 €/Tag; Feierabendticket (ab 17:00) 4,00 €/Tag; Kombiticket (alle Gärten, Stadt- und Apothekenmuseum) 20,00 €/Tag, erm. 16,00 €/Tag; bei Sonderveranstaltungen teils andere Preise | subtype = nodogs | lastedit = 2026-04-05 | description = Besucher tauchen ein in die Harmonie der Stille der verschiedenen Landschaften. Das Wasser hat eine wichtige symbolische Bedeutung: Wellenbewegungen fließen vom Wasserfall über den Teich in den Trockenbach, Pflanzen und Steine führen die Bewegung weiter. Im Kontrast zur Teichlandschaft steht die Trockenlandschaft. Ein Pflanzenpavillon mit Teehaus und der „Pavillon des Teetrinkens“, in dem ohne Zeremonie grüner Tee gereicht wird, ergänzen das Ensemble. Im April beginnen die Kirsch- und Magnoilienblüte, im Mai blüht die Azaleenlandschaft, Iris und Seerosen folgen im Juni. Es finden diverse Veranstaltungen (mit Vorführung japanischer Kampf- und Trommelkünste, Origami, Sushi uvm.) statt: Hanami Kirschblütenfest (April, aktuell 25. April 2026), Kodomo NoHi Kinderfest (Mai), Märchenfest (Juni), Tanabata Sternenfest (Juli). Im Dezember 2025 wurde zudem erstmalig (innerhalb der eigentlich üblichen Schließzeit November bis Februar) eine ''Fernöstliche Lichter-Poesie'' veranstaltet. Bei dieser wurde der Garten mit wechselnden Lichtfarben beleuchtet, es gab zwei Videoprojektionen u.{{nnbsp}}a. mit Videos und Bildern über den Garten sowie Musikuntermalung. Nach Aussage der Mitarbeiter war die Veranstaltung so gut besucht, dass sie vsl. in den kommenden Jahren wiederholt wird.
}}
* {{vCard|name=Kurpark|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/kurpark/|lat=51.10881|long=10.65008|hours=24/7|price=frei|lastedit=2026-03-05|description=Der Park liegt teilweise entlang der Stadtmauer und ist zur Hälfte von einem kleinen Wasserlauf durchzogen. Am einen Ende befindet sich ein künstlicher Wasserfall, und der Weg führt dann vorbei am Friederikenschlösschen, einem Kinderspielplatz, dem Abzweig zum Rosengarten, weiter zwischen dem Japanischen Garten und dem Natur!Gärten und geht dann in den Weg zum Magnoliengarten und den Botanischen Garten über. Blumenbeete, zugeschnittene Bäume und Bögen aus Büschen, unter denen man durchgehen kann, bereichern das Ambiente.}}
* {{vCard | name = Rosengarten ''Garten der Liebe'' | comment = Zugang zum [[#vCard_Rosencafé|Rosencafé]] direkt vom Garten aus | type = garden | wikidata = Q112079448 | hours = Mai-Sep: täglich 10:00–19:00; Okt: täglich 10:00-–8:00 | price = Wie [[#vCard_Q26821540|Japanischer Garten]] | subtype = parking, nodogs | lastedit = 2026-04-17 | description = Auf 18.000 qm erblühen und duften fast 450 Rosenarten wie historische und Englische Rosen, Wildrosen und Edelrosen, Rosenhochstämme und Kleinstrauchrosen; besonders sehenswert ist die Sammlung der Bad Langensalzaer Rosen (1950–990 wurden hier allein 91 Rosensorten gezüchtet. Anni Berger, die einzige Rosenzüchterin Deutschlands, war in Bad Langensalza tätig. Sie ist Namensgeberin einer Stiftung, die die Rosentradition, Denkmalpflege und Umweltschutz fördert – vgl. Anni-Berger-Stiftung.de), Skulpturen der Künstler Gert van Acker und Harald Stieding ergänzen das Gartenbild. Da auch die Vorgärten und die Stadtplätze vielfältige Rosen zieren, verwundert es nicht, dass 2002 der Stadt das Prädikat „Rosenstadt“ verliehen wurde.
}}
* {{vCard | name = Magnoliengarten | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/magnoliengarten/ | lat = 51.11366 | long = 10.64912 | hours = 24/7 | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Der 2006 eröffnete Magnoliengarten zeigt auf 1.500 qm mehr als 30 Magnolienarten, die von März bis Juli blühen – eine Zaubernuss beginnt den Blütenreigen. Magnolien gehören mit zu den ältesten Blütenpflanzen der Erde (vor der Eiszeit auch in Europa heimisch!), die heute in Ostasien und Amerika zu finden sind. Ergänzt werden sie durch Hortensien, Waldreben, Ginkgobäume sowie Blumen und Sträucher, teils auf einem kleinen Hügel als weiteres gestalterisches Element.
}}
* {{vCard | name = Schlösschenpark | comment = des [[#vCard_Q19279910|Friederikenschlösschens]] | type = park | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/schloesschenpark/ | lat = 51.10892 | long = 10.65177 | price = frei | lastedit = 2026-04-05 | description = Der von der der Herzogin Friederike von Sachsen-Weißenfels terrassenartig angelegte kleine Park aus der Mitte des 18. Jahrhunderts mit Blick auf das Schlösschen lädt zum Verweilen ein. Im hinteren Teil des Gartens ist ein historischer Gartenpavillon aus dem Jahr 1878 erhalten. Dort sprudelt aus einem Bronzebecken Schwefelwasser, das seit 1812 in der Kurstadt Bad Langensalza als Heilwasser verwendet wird. In der ehemaligen Remise befindet sich eine [[#vCard_Historische_Druckerei|historische Druckerei]].
}}
* {{vCard | name = Apothekergarten | alt = ''Garten der Heilkräuter'' | comment = beim [[#vCard_Q20479980|Apothekenmuseum]] | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/apothekergarten/ | lat = 51.11016 | long = 10.64459 | hours = Wie Apothekenmuseum, in der Wintersaison geschlossen | lastedit = 2026-04-05 | description = Der Apothekergarten hinter dem „Haus Rosenthal“ (daher nur über das Apothekenmuseum zugänglich) zeigt eine Auswahl an in Mitteldeutschland heimischer Pflanzen, die immer noch zur Herstellung von Arzneidrogen verwendet werden. Die Heilpflanzen sind in neun Beeten nach ihren Anwendungen bzw. medizinischer Indikation geordnet und beschildert. Umsäumt werden die Kräuterbeete von Blumen (Rosen brauchen in Bad Langensalza gar nicht extra erwähnt werden) sowie einigen Obstbäumen und Sträuchern. | id = Apothekergarten
}}
* {{vCard | name = Natur!Garten | comment = betrieben vom [[w:Bund_für_Umwelt_und_Naturschutz_Deutschland|BUND]] Ortsverband Bad Langensalza[https://badlangensalza.bund.net/]. Das '''Café'''[https://baeckerei-esche.de/bund-naturgarten-cafe/] im Garten hat '''kürzere''' Öffnungszeiten: Apr–Okt Mi–Fr 13:00–17:00, Sa/So/Fe bis 18:00 | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/naturgarten/ | lat = 51.1121 | long = 10.6489 | hours = Mär–Okt: täglich 8:00–18:00 | price = frei | lastedit = 2026-04-05 | description = Der 1.600 m² große Garten ermöglicht es, die Natur anzufassen (-> einheimische Pflanzen und Insekten). Er besteht seit 1994 auf und wurde 2019/20 neu gestaltet, dazu gehörten ein Pflanzenbestand mit über 1.000 neuen einheimischen bzw. für einen Bauerngarten typische Blumenzwiebeln, Stauden und Gehölze. Der Garten dient auch der Umweltbildung und verbindet einen nachhaltigen Bauerngarten (zentrales Brunnenhäuschen, Obst- und Gemüsebeete, Kräuterbank, klassische Bauerngarten-Blumenbeete, Färberpflanzen, Kompost) mit einem reinen Naturgarten (Blumenrasen, Wild-Stauden-Wall, „Beet der Flatterlinge“, Teich mit Sumpfwiese, Benjes-Hecke, größter Mirabellen-Baum und höchster Holunder-Strauch von Bad Langensalza). Kinder dürfen spielen und die Natur erforschen, Erwachsene erhalten Anregungen für eine naturnahe Gartengestaltung. Nätürlich ist auch für Verweilplätze gesorgt. Last but not least erreicht man durch den Garten das '''einzige begehbare Stück Stadtmauer-Wehrgang''' und zwei Stadtmauertürme. Zur nach ökologischen Gesichtspunkten sanierten Stadtmauer gehören im Stadtmauer-Rundturm ein „Raum der Stille“ und im Eckturm die Lese-Ecken.
}}
* {{vCard|name=TRACO Park|alt=Garten des Travertins|comment=betrieben von der Firma [https://traco.de/ TRACO]|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/traco-park/|address=Poststraße 17, 99947 Bad Langensalza|lat=51.1039|long=10.6377|phone=+49 (0)3603 8520|hours=Mo–Fr 9:00–18:00, Sa 10:00–13:00, in den Wintermonaten verkürzt|price=frei|subtype=wheelchair, free parking|lastedit=2026-04-10|description=Ausstellungsgarten zeigt breites Spektrum der natürlichen und ästhetischen Garten- und Landschaftsgestaltung mit Sandstein, Muschelkalk und Travertin aus firmeneigenen Steinbrüchen bei Weimar, Gotha und Bad Langensalza: Mauern, Treppen, Wege, Wasserkunst….}}
== Aktivitäten ==
* {{vCard | name = Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | lat = 51.11442 | long = 10.64683 | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = ''Thermalbad+Sauna'': So–Mi 10:00–21:00, Do–Sa 10:00–22:00 | price = ab 5{{nnbsp}}J komplexes Preissystem: Bad, Sauna, Kombitarife, Spättarife, Rabatte, s. Webseite | lastedit = 2026-04-13 | description = (Kinder bis zur Vollendung des 12.{{nnbsp}}Lebensjahres nur in Begleitung Erwachsener.) Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT).
}}
* {{vCard | name = Kino ''Burgtheater'' | type = cinema | url = https://burg-theater.de/ | address = Vor dem Schlosse 5e, 99947 Bad Langensalza | lat = 51.10903 | long = 10.64725 | phone = +49 (0)3603 846206 | fax = +49 (0)3212 1080916 | email = kino@burg-theater.de | hours = Tageweise Mo-So, teils ab 12:15, letzte Vorstellung 20:00 | price = 6,50–10 €; Aufschläge: ab 120 min +0,50 €, ab 140 min +1 €, 3D–Filme +2,50 €, teils Kinderermäßigungen vor 19:00; Di. Kinotag (nicht feiertags) | lastedit = 2026-04-08
}}
* {{vCard | name = Kindererlebniswelt ''Rumpelburg'' | type = children | url = https://kindererlebniswelt-rumpelburg.de/ | address = Sperlingsgasse 4, 99947 Bad Langensalza | lat = 51.10664 | long = 10.64754 | phone = +49 (0)3603 398-4604 | email = info@kindererlebniswelt-rumpelburg.de | hours = Di–Fr 14:00–18:00, Sa 10:00–18:00, So 10:00–17:00, auf Vorbestellung für Gruppen Di–Fr 10:00–13:00, Schließzeiten beachten (ges. Feiertage, Sommer-Betriebsferien, Weihnachtsferien) | price = 0–1J frei, 1–2J 3,50{{nnbsp}}€/1{{nnbsp}}Std, ab 2J/Erw. 4,00{{nnbsp}}€/1{{nnbsp}}Std, Rabatte/Sonderaktionen s. Webseite | lastedit = 2026-04-10 | description = Klettern, rutschen und toben in einer fantastischen Welt mit Spiel, Spaß und Entdeckungen. Netzbrücken, geheimnisvolle Baumhäuser, riesige Puppenstube und wilde Rutschpartien – Abwechslung bei jedem Wetter für Groß und Klein. Ereignisreiche Stunden durch verschiedene Rollen spielerisch erleben in: Spielhaus, Schiff, Tiergehege mit Holztieren oder Spielstadt. Aufmerksame Kinder entdecken vielleicht die geheimnisvollen Rumpelburgbewohner: Rosentroll Puck, Wasserelfe Tine oder Rumpel, das Gespenst.
}}
* Die Stadt veranstaltet insbesondere in der [[Bad Langensalza#vCard Q16857154|Konzertkirche]], dem [[Bad Langensalza#vCard Kongress- und Kulturzentrum Bad Langensalza|Kongress- und Kulturzentrum Bad Langensalza]] sowie an anderen Orten diverse '''Events''' wie beispielsweise Konzerte, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender Eventkalender].
* '''[https://badlangensalza.de/kur-tourismus/planen-buchen/veranstaltungen/veranstaltungshighlights/mittelalterstadtfest/ Mittelalterstadtfest]''' mit Handwerker- und Händlerständen, Musik- und Kleinkunstprogramm sowie Schaukämpfen am letzten Augustwochenende (aktuell 29./30. August 2026)
* Im ''Japanischen Garten'' finden diverse Veranstaltungen statt (Details finden sich beim [[#vCard_Q26821540|Japanischen Garten]]):
** '''Hanami Kirschblütenfest''' (April)
** '''Kodomo NoHi Kinderfest''' (Mai)
** '''Märchenfest''' (Juni)
** '''Tanabata Sternenfest''' (Juli)
** '''Fernöstliche Lichter-Poesie''': Sie wurde im Dezember 2025 (innerhalb der eigentlich üblichen Schließzeit November bis Februar) erstmalig veranstaltet und wird vsl. in den kommenden Jahren wiederholt.
* {{vCard | name = Flugplatz Bad Langensalza | type = landing site | wikidata = Q2900762 | directions = 3{{nnbsp}}km nordwestlich von Bad Langensalza | show = copy| price = Schnupperflug ab 30 €; ''Pilot für einen Tag'' (ca. 3 Std.) 199 € | lastedit = 2026-04-04 | description = Er wurde 1927 errichtet und von der [[w:Wehrmacht|Wehrmacht]] genutzt. Aktuell wird der [[w:Sonderlandeplatz|Sonderlandeplatz]] vom Flugsportverein ''„Otto Lilienthal“ Bad Langensalza e.{{nnbsp}}V.'' betrieben. Er verfügt über eine Gras-Start- und Landebahn mit der Größe 800{{nnbsp}}m × 40{{nnbsp}}m. Angebote: Segelflug, Ultraleichtflug (UL-Flug), Rundflüge und Gastflüge.
}}
== Einkaufen ==
Es gibt Bad in Langensalza das typische Angebot einer Kleinstadt. Spezielle lokale Reisesouvenirs sind hier zu erwerben.
* {{vCard|name=Wochenmarkt|type=market|url=https://citymanagement-badlangensalza.de/events/wochenmarkt/|address=Fußgängerzone|lat=51.1086|long=10.6454|hours=Mi 8:00–14:00|lastedit=2026-04-06|description=Auf dem Wochenmarkt gibt es nicht nur frisches Obst und Gemüse, Geflügel und Fisch, Backwaren, Eier und Teigwaren, Wurst- und Käsesorten, Pasti und Antipasti, Gewürze, Kräuter, Honig und Marmeladen sowie Blumen und Pflanzen zu kaufen, man kann dort auch diverse warme Gerichte gleich essen oder mitnehmen. Viele der Angebote stammen dabei aus der Region. Für eine thüringer Stadt eher ungewöhnlich erhält man als eine der beiden je eintägigen Möglichkeiten im Ort ''[[w:Thüringer Rostbratwürste|Thüringer Rostbratwürste]]'' in einer Semmel (gute Wurst, sehr gutes Brötchen, 3{{nnbsp}}€).}}
* {{vCard | name = Buchhandlung ''Buchgeschwister'' | type = book seller | url = https://www.genialokal.de/buchhandlung/bad-langensalza/buchgeschwister/ | address = Mühlhäuser Str. 39, 99947 Bad Langensalza | lat = 51.10895 | long = 10.64475 | phone = +49 (0)3603 842449 | email = kontakt@buchgeschwister.com | instagram = buchgeschwister.lsz | hours = Di–Fr 10:00–13:00, 14:00–17:00, Sa 10:00–13:00 | image = Buchhandlung "Buchgeschwister" Bad Langensalza.jpg | lastedit = 2026-04-09 | description = sehr persönliche Beratung.
}}
== Küche ==
Bei vielen Cafés und Restaurants kann man auch draußen sitzen. Letztere haben oft werktags ein Mittagsangebot.
* {{vCard | name = Café Schwesterherz | comment = Gegründet von den Schwestern Anni und Ulrike | type = cafe | url = https://cafe-schwesterherz.jimdofree.com/ | address = Mühlhäuser Str. 2, 99947 Bad Langensalza | lat = 51.10878 | long = 10.64463 | phone = +49 (0)3603 3989345 | email = Cafe-Schwesterherz@freenet.de | hours = Di–Fr 9:00–17:30, 2.+4. Sa im Monat 9:30—17:00, 1.+3. Sa im Monat 9:30—12:30 | image = Cafe Schwesterherz Bad Langensalza.jpg | lastedit = 2026-04-08 | description = Uriges Ambiente mit der Möglichkeit, schöne Dinge zu erwerben und auch draußen zu sitzen. Eine der Spezialitäten sind nach dem Motto ''Kuchen wie bei Omi'' selbstgebackene Kuchen. Die ausführlichen Rezensionen des Cafés (Google 4,8/5) sprechen oft von begeisterten Besuchern. Um sicher einen Platz zu bekommen ist eine Reservierung empfehlenswert.
}}
* {{vCard | name = Rosencafé | type = restaurant | url = https://www.rosencafe-bad-langensalza.de/ | address = Am Rosengarten 11, 99947 Bad Langensalza | directions = Direkt am [[#vCard_Q112079448|Rosengarten]], Zugangsmöglichkeit von dort aus, zurück benötigt man die Eintrittskarte für das Drehkreuz. Eingang auch vom neuen Wohngebiet aus. | lat = 51.11224 | long = 10.65247 | phone = +49 (0)3603 891601 | email = info@rosencafe-bad-langensalza.de | hours = Do–So 10:00–17:00, bis 15:00 warme Küche | subtype = accessible, parking | lastedit = 2026-04-17
}}
* {{vCard | name = Ristorante Venezia | type = restaurant | url = https://www.venezia-restaurant.de/ | address = Marktstraße 31, 99947 Bad Langensalza | lat = 51.10820 | long = 10.64577 | phone = +49 03603 895469 | fax = +49 03603 8969308 | hours = tägl. 10:00–0:00, warme Küche durchgehend 11:00–23:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Villa Italia | type = restaurant | url = https://www.villa-italia.de/ | address = Kurpromenade 5a, 99947 Bad Langensalza | lat = 51.10838 | long = 10.65071 | phone = +49 03603 892861 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Punjabi Bad'sha | alt = Indisches Restaurant & Eiscafe | type = restaurant | url = https://www.punjabi-badshah.de/ | address = Kornmarkt 2, 99947 Bad Langensalza | lat = 51.10761 | long = 10.64739 | phone = +49 (0)36031 279246 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Herkules | type = restaurant | address = Steinweg 11, 99947 Bad Langensalza | lat = 51.10547 | long = 10.64209 | phone = +49 03603 1277321 | facebook = Restaurant.Herkules | hours = Di–Fr 17:00—23:00; Sa,So 11:30—14:30 und 17:00—23:00 | subtype = greek | lastedit = 2026-04-06 | description = Beliebter Grieche in passendem Ambiente.
}}
* {{vCard | name = Pizzeria Flamingo | type = restaurant | address = Steingrubenstraße 7, 99947 Bad Langensalza | lat = 51.10656 | long = 10.64428 | phone = +49 03603 1277589 | instagram = pizzeriaflamingoo | hours = Mo–Sa 10:30–21:30, So 13:00–21:30 | lastedit = 2026-04-06
}}
* {{vCard | name = PHANtastic | alt = Asian Fusion | comment = Gästeparkplatz hinten im Schlosshof 3, 99947 Bad Langensalza | type = restaurant | address = Marktstraße 3, 99947 Bad Langensalza | lat = 51.10866 | long = 10.64578 | phone = +49 (0)3603 8955218 | hours = Di-Sa 10:30-22:00, So 11:30-22:00, Mo nur feiertags geöffnet | lastedit = 2026-04-17 | description = Neueröffnung 11.4.2026, Aktionsangebot 11.4.–19.4.2026 15% Rabatt.
}}
* {{vCard | name = Ratswaage | type = restaurant | url = https://ratswaage-lsz.de/ | address = Mühlhäuser Straße 40, 99947 Bad Langensalza | lat = 51.10893 | long = 10.64494 | phone = +49 (0)3603 8955310 | email = info@ratswaage-lsz.de | hours = tägl. 11:00—14:30, 17:00—23:00 | image = Restaurant Ratswaage Bad Langensalza.jpg | lastedit = 2026-04-09
}}
* {{vCard|name=Asia Food & Salza Grill|type=restaurant|address=Rathausstraße 9, 99947 Bad Langensalza|lat=51.10818|long=10.64437|phone=+49 (0)3603 84 86 16|hours=Mo-Fr 11:00-21:00, So/Fe 11:00-21:00|price=günstig|payment=derzeit nur Barzahlung|subtype=asian, grill, takeaway|lastedit=2026-04-09|description=alle Speisen auch zum Mitnehmen, ein paar Tische innen und ein paar draußen, Personal freundlich, Essen gut, „große Portion“ heißt zu Recht so!
}}
* {{vCard | name = Schnitzel-Steak-Haus | type = restaurant | url = https://schnitzel-steak-haus.metro.rest/?lang=de | address = Marktstraße 19, 99947 Bad Langensalza | lat = 51.10830 | long = 10.64739 | phone = +49 (0)3603 896970 | email = dido2004@abv.bg | hours = Mo–So 10:00–22:00 | lastedit = 2026-04-10 | description = Jede Woche ein Mittagsmenü: typischerweise Suppe, zwei verschiedene Hauptgerichte, Eis.
}}
== Nachtleben ==
== Unterkunft ==
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig für Übernachtungsgäste eine [[#Kurtaxe|Kurtaxe]]. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza.
* {{vCard | name = Hotel Sante Royale | type = hotel, restaurant | url = https://www.sante-royale.de/hotels/bad-langensalza | address = Parkstraße 1, 99947 Bad Langensalza | lat = 51.11412 | long = 10.64527 | tollfree = +49 0800 9022090 | email = info.badlangensalza@sante-royale.com | subtype = 4, free wlan, restaurant, sauna, spa, dogs, indoor pool, outdoor pool | lastedit = 2026-04-07 | description = Großes, modernes Hotel mit 130 Zimmern und Suiten.
}}
* {{vCard| type = hotel |name=Hotel L.A. CHICAGO|address=Tonnaerstraße 33, 99947 Bad Langensalza |phone=+49 03603 856836|email=info@lachicago.de|fax=+49 03603 856837|url=http://www.lachicago.de |hours=|price= |lat=51.10675 |long=10.65281
}}
* {{vCard| type = hotel |name=Zur Lohgerberei |address=Löbersgasse 2, 99947 Bad Langensalza |phone=+49 03603 846131 |email=kontakt@pension-zur-lohgerberei.de |fax=+49 03603 894344 |url=http://www.pension-zur-lohgerberei.de/ |hours=|price=EZ ab 37 €, DZ ab 27 € (jeweils inkl. Frühstück). |lat=51.11096 |long=10.64662 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Zöllner |address=Steinweg 1, 99947 Bad Langensalza |phone=+49 03603 815664 |email=info@pension-zoellner-thueringen.de |fax= |url=http://www.pension-zoellner-thueringen.de/ |hours=|price=EZ ab 30 €, DZ ab 50 € (jeweils inkl. Frühstück). |lat=51.10611 |long=10.64204 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Bergstube |address=Bergstraße 7, 99947 Bad Langensalza |phone=+49 03603 846980 |email=j.schroe@tonline.de |fax=+49 03603 814132 |url=http://bergstube.de/ |hours=|price=EZ ab 35 €, DZ als EZ ab 43 €, DZ ab 55 €. |lat=51.13836 |long=10.63443 |lastedit= |description=
}}
* {{vCard| type = hotel |name=Gasthaus zur Weintraube |address=Mühlhäuser Straße 11, 99947 Bad Langensalza |phone=+49 03603 846133 |email=info@zur-weintraube.de |fax=+49 03603 892830 |url=http://zur-weintraube.de/ |hours= Gasthaus: tägl. ab 10:00 |price=EZ ab 35 €, DZ ab 65 € (jeweils inkl. Frühstück. |lat=51.10943 |long=10.64351 |lastedit=|description=
}}
== Sicherheit ==
* {{vCard|name=Polizeistation |wikidata=|type=police |address=Bahnhofstraße 3, 99947 Bad Langensalza |phone=+49 03603 8310 |email=|fax=|url=|hours=|price=|lat=51.10375 |long=10.64196 |lastedit=|description=}}
== Gesundheit ==
=== Krankenhäuser ===
* {{vCard | name = Hufelandklinik | type = hospital | wikidata = Q107295076 | hours = 24/7 (Notaufnahme) | lastedit = 2026-04-06
}}
* {{vCard|name=Rehaklinik |wikidata=|type=hospital |address=Kurpromenade 6-8, 99947 Bad Langensalza |phone=+49 03603 8030 |email=info@rehaklinik-badlangensalza.de |fax=+49 03603 803100 |url=https://www.rehaklinik-badlangensalza.de/ |hours=|price=|lat=51.10941 |long=10.65063 |lastedit=|description=
}}
=== Sonstiges ===
Es gibt im Ort ein Ärztehaus, ein Medizinisches Versorgungszentrum (MVZ), dieserse Arztpraxen, Zahnärzte sowie drei Apotheken und zwei Sanitätshäuser.
* {{vCard | name = Therapie- und Kurbereich mit MTT der Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = '''Therapie+Kurbereich'': Mo—Fr 7:30—19:30 und nach Vereinbarung; ''Medizinische Trainingstherapie'': Mo—Fr 9:00—19:30 und nach Vereinbarung, Sep—Feb zusätzlich Sa 10:00—14:00 (außer an Feiertagen) | lastedit = 2026-04-13 | description = Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT). | copy-marker = Friederiken Therme
}}
== Praktische Hinweise ==
* {{vCard|name=Touristinformation Langensalza|type=tourist information|url=https://badlangensalza.de/kur-tourismus/service-info/touristinfo/|address=Bei der Marktkirche 11, 99947 Bad Langensalza|lat=51.10791|long=10.64866|phone=+49 (0)3603 834424|fax=+49 (0)3603 834421|email=touristinfo@badlangensalza.de|hours=Apr—Okt: Mo—Fr 9:00—18:00, Sa/So 10:00—16:00, Fe 10:00—14:00; Nov—Mär: Mo-Fr 9:00—17:00, Sa/Fe 10:00—14:00, So geschlossen}}
* Die Stadt bietet an diversen Orten '''kostenloses WLAN''' namens [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/w-langensalza/ W-LANgensalza]. Es gibt einen [https://badlangensalza.de/core/webp-express/webp-images/uploads/sites/2/2024/03/csm_Stadtplan-WLAN_65049e16b6.jpg.webp Stadtplan mit den eingezeichneten Hotspots], zur Verfügung steht es hier:
** Kultur- und Kongresszentrum
** An der Alten Post/Jahnplatz
** Wiebeckplatz, Ecke Lange Straße
** Rathaus
** Bei der Marktkirche
** Parkplatz am Ende der Friedrich-Mann-Straße
** Kornmarkt
** Touristeninformation
* Stadtführungen werden angeboten. Die Informationen dazu sind bei der Tourismusinformation zu erfragen.
* Die Filiale der Post befindet sich in der Tonnaer Straße 38.
=== Kurtaxe ===
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [https://badlangensalza.de/kur-tourismus/planen-buchen/gaestekarte/ Kurtaxe]. Sie beträgt für Erwachsene 3,00{{nnbsp}}€/Übernachtung, für Kinder im Alter von 6 bis 15 Jahren 1,50{{nnbsp}}€/Übernachtung. Für Schwerbehinderte und Blinde mit Schwerbehindertenausweis wird der Kurbeitrag um 50{{nnbsp}}% ermäßigt. Erwerbsunfähige Kriegsbeschädigte und Begleitpersonen von Schwerbehinderten sind von der Kurtaxe befreit. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza. Details: [https://badlangensalza.de/storage/sites/2/2025/03/Kurbeitragssatzung.pdf Kurbeitragssatzung der Stadt Bad Langensalza (pdf)]
== Ausflüge ==
* Der [[Nationalpark Hainich]] mit dem [[w:Baumkronenpfad_Hainich|Baumkronenpfad]] ([https://www.nationalpark-hainich.de/de/ausflugsziele/baumkronenpfad.html Webseite des Nationalparks], [https://www.baumkronen-pfad.de/ Webseite Bad Langensalza]) an der [[w:Thiemsburg|Thiemsburg]] liegt nur wenige Kilometer südlich der Stadt.
* [[Eisenach]] mit der [[w:Wartburg|Wartburg]] ist mit dem Auto in weniger als 30 Minuten zu erreichen.
<!--
== Literatur ==
-->
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.10806| long= 10.64667| radius= }}
{{IstInKat|Thüringen||Thüringer Kernland||Kurort in Thüringen}}
bpt5qqer7boc7gz5ftael47xhgclfp0
1769214
1769213
2026-04-17T11:42:57Z
Ousw
57729
/* Küche */ Geänderte vCard für Ratswaage – Lage etc.
1769214
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/ Touristinformation]
| TouriInfoTel = +49 (0)3603 834424
}}
Die Kur- und Rosenstadt '''Bad Langensalza''' ist eine ehemalige Kreisstadt am Nordwestrand des [[Thüringer Kernland|Thüringer Beckens]]. Neben einer Therme und zwei Kliniken kennzeichen die Stadt besonders ihre historische Altstadt, zehn Parks und Gärten, die teils ganzjährig zum Besuch einladen, sowie die Blumenpracht im gesamten Ort.
== Hintergrund ==
{{Mapframe|51.10806| long= 10.646|zoom=14|height=300|width=300|type=geoline}}
Bad Langensalza (bis 1956: Langensalza) ist ein Schwefel-Sole-Heilbad und staatlich anerkannter Kurort. Zu Beginn des 9. Jahrhunderts wurde erstmals ein Ort namens Salza – im lateinischen Text Salzaha – urkundlich erwähnt. Bad Langensalza gehört zu den historisch bedeutendsten Städten im Thüringer Becken, wovon die reichhaltige historische Bausubstanz in der Altstadt zeugt. Als eine der Waidstädte war Bad Langensalza sehr wohlhabend, sodass große Kirchen und eine mächtige Stadtmauer aus Langensalzaer Travertin, der direkt im Südwesten der Altstadt abgebaut werden konnte, errichtet wurden. Um 1300 wurde die Stadtmauer mit vier Eingangstoren fertiggestellt. Ein verheerender Stadtbrand legte 1711 Teile der Altstadt in Schutt und Asche. Die im prachtvollen Barockstil an ihrer Stelle entstandenen Bürgerhäuser prägen noch heute das Bild der Stadt. Heute sind von der ältesten Stadtbefestigung noch vier Stadtmauertürme erhalten.
Bekannt ist die Stadt auch für die [[w:Schlacht_bei_Langensalza|Schlacht bei Langensalza]] zwischen Preussen und Hannover 1866, in deren Folge Preussen Hannover annektierte. Im [[#vCard_Arboretum|Arboretum]] steht das daran erinnernde [[w:Langensalza-Denkmal_(Bad_Langensalza)|Denkmal]] der Stadt.
Im Juni 1938 wurde im Reinhardbrunner Hof eine antisemitische Hetzausstellung gezeigt. Ebenso wurden Sinti- und Roma-Familien verfolgt, von denen einige im KZ Langensalza, einem Außenlager des KZ Buchenwald, inhaftiert waren. Dort mussten insgesamt etwa 1300 ausländische Frauen und Männer Zwangsarbeit für ein Projekt der Junkers verrichten. Am 5. April 1945 wurde Langensalza durch amerikanische Truppen besetzt und Anfang Juli an die Rote Armee übergeben. So wurde es Teil der Sowjetischen Besatzungszone (SBZ) und ab 1949 der DDR.
Seit dem 28. Juni 1956 trägt Langensalza den Namenszusatz Bad. Seit 1990 wurde die Altstadt zu einem großen Teil restauriert. Später konnten in der Stadt Heilquellen erschlossen werden, die bis heute dem Kurbetrieb dienen. Damit einher ging die Anlage mehrerer Parks, wie Rosengarten und Japanischer Garten. Seit dem 22. Juni 2002 nennt sich Bad Langensalza „Rosenstadt“. Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [[#Kurtaxe|Kurtaxe]].
== Anreise ==
=== Mit dem Flugzeug ===
* Die nächstgelegenen Verkehrsflughäfen mit Linienverkehr sind der {{marker|type = airport|name = Flughafen Leipzig Halle |wikidata = Q668382}} und der {{marker|type = airport|name = Flughafen Frankfurt am Main|wikidata = Q46033}}.
* Auf dem in ca. 65{{nnbsp}}km entfernten {{marker | type = airport | name = Flughafen Erfurt–Weimar | wikidata = Q703794}} starten und landen mittlerweile nur noch Chartermaschinen. Er ist aber weiterhin für Geschäfts- und Sportflieger offen.
* {{vCard|name=Flugplatz Bad Langensalza|type=landing site|wikidata=Q2900762|directions=ca. 3{{nnbsp}}km nördlich|description=Der als [[w:Sonderlandeplatz|Sonderlandeplatz]] klassifizierte Fluplatz verfügt über eine 800{{nnbsp}}m lange Graslandebahn und kann von Ultraleichtfliegern angeflogen werden. Der Platz wird betrieben vom Flugsportverein „Otto Lilienthal“.}}
=== Mit der Bahn ===
{{vCard | name = Bahnhof Langensalza | type = rail | wikidata = Q62415577 | lastedit = 2026-04-10 | description = Betreuung nur mittels '''Video'''-Reisezentrum (geöffnet Mo-Fr 7:15–18:30, Sa 8:15–13:30), behindertengerechte Toilette nur mit entsprechendem Schlüssel. Am Bahnhof halten Regionalzüge aus Erfurt über Gotha oder über Gräfentonna sowie aus Kassel und Göttingen über Leinefelde und Mühlhausen. Der Bahnhof liegt am südlichen Stadtrand etwa ein Kilometer vom Stadtzentrum. Jeder hier verkehrende Zug bedient auch den Landkreis Gotha. Das nahegelegene [[Gotha]] bietet den nächsten ICE-Bahnhof. Mit der Stadtbuslinie B kann man direkt von der Haltestelle am Bahnhofsvorplatz Mo-Fr tagsüber halbstündlich und Sa vormittags alle zwei Stunden in die Innenstadt und zurück fahren; Aus-/Einstieg an der Endhaltestelle „Treffpunkt Wiebeckplatz“ (Fahrplan siehe [[#Mobilität|Mobilität]]). Das geschlossene Bahnhofsgebäude ist leider nicht einladend, obwohl es auch so noch vom früheren Wohlstand der Stadt zeugt, man wird aber im Ort dafür entschädigt. Zwischen Bahnhof und Busbahnhof gibt es den Imbiss ''Herbigs Grill''. }}
=== Mit dem Bus ===
Der {{Marker | type = bus | name = ZOB | lat=51.10166 | long=10.64270}} befindet sich ein Stück neben dem Bahnhofsvorplatz. Aufgrund der Lage bietet er nicht nur die Möglichkeit, über verschiedene Buslinien die benachbarten Gemeinden zu erreichen, sondern ermöglicht direkt zwischen Schienen-, Buslinien- und Stadtbusverkehr (Linie B, Haltestelle nicht am ZOB, sondern direkt am Bahnhofsvorplatz) zu wechseln. Auch [[Fernbusse in Deutschland|Fernbusse]] halten hier.
=== Auf der Straße ===
* Über die Autobahn {{RSIGN|DE|A|4}}, Anschlussstelle {{Ausfahrt|Eisenach-Ost,|40a,}} und der {{RSIGN|DE|B|84}} gelangt man in die Stadt.
* Die {{RSIGN|DE|B|247}} führt von [[Gotha]] oder von [[Mühlhausen (Thüringen)]] nach Bad Langensalza.
=== Mit dem Fahrrad ===
Der [[Unstrut-Radweg|Unstrut-Radweg]] durchquert den Ortsteil Thamsbrück.
== Mobilität ==
Aufgrund der Größe ist die Stadt gut zu Fuß zu erkunden. Parkplätze stehen auch an vielen Stellen zur Verfügung. Es gibt zwei Stadtbuslinien: [https://www.salzatours.de/fahrplanauskunft/ Fahrplanauskunft] der Salza–Tours König GmbH & Co. KG
* '''Linie A''' Gewerbegebiet Nord '''–''' EKZ Rasenmühlenweg – Treffpunkt Wiebeckplatz – Gutenbergstraße – Gewerbegebiet Ost
* '''Linie B''' Ufhoven Schenke – Bahnhof – Gutenbergstraße – Treffpunkt Wiebeckplatz & zurück
===Thiemsburg===
Buslinie 150 Verkehrsgemeinschaft Wartburgregion im Sommer mindestens 4 mal täglich Bad Langensalza - [[Thiemsburg]] - [[Behringen]] - [[Eisenach]].
== Sehenswürdigkeiten ==
[[Datei:LangensalzaGottesackerkirche.JPG|mini|Gottesackerkirche St. Trinitatis]]
=== Kirchen ===
* {{vCard | name = Marktkirche ''St. Bonifacii'' | comment = ev. Hauptkirche | type = church | wikidata = Q1901085 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/marktkirche-st-bonifacii/ | phone = +49 (0)3603 846402 | hours = Mo-Sa 14:00–16:00 und nach Vereinbarung | description = Die Marktkirche St. Bonifacii ist die evangelische Hauptkirche der Stadt und wurde in mehreren Bauphasen von Mitte des 13. bis Ende des 16. Jahrhunderts im Stil der Gotik erbaut und erweitert. Aus diesem Grund besteht sie aus vielen sich deutlich voneinander abhebenden Teilen. Eine Besonderheit ist die Einzeigeruhr am 74 m hohen Turm, einem der höchsten Kirchtürme in Thüringen. Die Malereien aus dem 16. Jahrhundert wurden erst Anfang des 20. Jahrhunderts wieder freigelegt. Die barocke Kanzel im Mittelschiff stammt aus dem Jahr 1734. Das Altarbild, eine Kreuzigungsszene darstellend, wurde vermutlich zwischen 1486 und 1490 hergestellt. Mai–Sep. Orgelmusik zur Marktzeit um 12 Uhr.
}}
* {{vCard | name = Bergkirche ''St. Stephani'' | type = church | wikidata = Q16857152 | url = https://evangelische-kirche-lsz.de/bergkirche-st-stephani-st-stephan/ | description = Ursprünglich außerhalb der ersten Stadtmauer als dreischiffige Basillika erbaut war sie die Pfarrkirche der Neustadt. Das im Jahr 1196 erstmals urkundlich als Kapelle erwähnte Gotteshaus ist der älteste Sakralbau in Bad Langensalza. Aus einer ursprünglichen Mönchskapelle entwickelte sich die Kirche durch Um- und Anbauten. Die Kanzel wurde 1590 im Renaissancestil aufgebaut. Die Glasfenster sind Stiftungen der Bürger im 19. Jahrhundert. An den Decken sind heute noch die Wappen der Spenderfamilien zu sehen. Die Orgel der Kirche wurde 1884/1985 von dem Bad Langensalzaer Orgelbauer [[w:Friedrich Erdmann Petersilie|Friedrich Petersilie]] erbaut. Der Turm hat eine Höhe von 53,5{{nnbsp}}m.
}}
* {{vCard | name = Gottesackerkirche ''St. Trinitatis'' | type = church | wikidata = Q16857154 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/gottesackerkirche-st-trinitatis/ | address = Tuchmachergasse 5, 99947 Bad Langensalza | directions = Im [[#vCard_Arboretum|Arboretum]], direkt neben dem Eingang. | hours = Nur bei Veranstaltungen zugänglich | lastedit = 2026-04-14 | description = Die Friedhofskirche wird als Konzertkirche mit vielfältigen musikalischen Veranstaltungen und einzigartiger Akustik genutzt. '''Geschichte''': Die Kirche wurde 1734–1739 unter der Schirmherrschaft von Herzog ''Christian von Sachsen–Weißenfels'' mit Travertinsteinen der im 30-jährigen Krieg zerstörten Marienkirche errichtet, woran die Kartusche über dem östlichen Portal erinnert. Über das Spitzbogenportal an der Westseite gelangt man zu den restaurierten Grüften. In Gegensatz zum strengen, symmetrischen Außenbau steht die reiche barocke Innenausstattung der Saalkirche mit zweigeschossigen Holzemporen und dem Kanzelaltar von 1734. Die aufwendige Gestaltung des Deckengewölbes zeigt sich in den barocken Malereien in ovalen Medaillons und Stuckaturen. Zur Ausstattung gehören das Madonnen-Relief aus der Marienkirche, zwei barocke Epitaphien und eine Orgel von ''Friedrich Erdmann Petersilie'' (1869). Umfangreiche Sanierungs- und Restaurierungsarbeiten 2008/2009 führten zu neuem Glanz.
}}
=== Bauwerke ===
* {{vCard|name=Rathaus|type=town hall|wikidata=Q119440667|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/rathaus/|description=Das Glockenspiel mit 32 Glocken und 5 Figuren kann 16 verschiedene Melodien spielen und erklingt täglich um 12 und 18 Uhr. Möglichkeit zu einer [https://badlangensalza.de/kur-tourismus/planen-buchen/gastefuhrungen/gruppenfuehrungen-3/unter-dem-pflaster/ Stadt- und Kellerführung], Dauer: 120 min, Preis 135,00 €, optional: „Herrliches Gesöff“ zum Abschluss zzgl. 2,50 € pro Getränk.
}}
* {{vCard | name = Schloss Dryburg | type = chateau | wikidata = Q2240669 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/schloss-dryburg/ | hours = Galerie: Do–Sa 14:00–17:00 und nach Vereinbarung. An Feiertagen geschlossen | lastedit = 2026-04-12 | description = Das Schloss Dryburg ist das älteste erhaltene, komplett aus Stein gemauerte Profangebäude in der Stadt. Von der mittelalterlichen Kernburg ist noch der Westflügel erhalten. Er beherbergt seit Anfang 2011 unter anderem die Galerie des [https://www.kunstwestthueringer.com/ Kunstwestthüringer e. V.], für Kunstliebhaber ein Muss. Der gemeinnützige Kunstverein sieht seine Aufgabe in Präsentation, Vermittlung und Aktion in Sachen zeitgenössischer bildender Kunst. Pro Jahr sind ca. sechs Ausstellungen zu sehen, eine davon immer im Mai ist die Präsentation von Werken internationaler Künstler.
}}
* {{vCard | name = Friederikenschlösschen | type = chateau | wikidata = Q19279910 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/friederikenschloesschen/ | address = Mauergasse 2, 99947 Bad Langensalza | hours = „Tag des offenen Schlösschens“ jeweils 14:00–17:00, aktuell: 17.05.26, 28.06.26, 12.07.26, 02.08.26, 16.08.26, 13.09.26 (Tag des offenen Denkmals 10:00–17:00), 18.10.26 | price = frei / auf Spendenbasis | lastedit = 2026-04-08 | description = Die Herzoginwitwe Friederike von Sachsen-Weißenfels ließ 1749 bis 1751 das Rokoko-Lustschloss errichten. Im Festsaal des Friederikenschlösschens werden Kleinkunstprogramme und Kammerkonzerte aufgeführt.
}}
* {{vCard | name = Stadtmauer und Türme | type = monument | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmauer-und-tuerme/ | lat = 51.10934 | long = 10.64943 | description = Bad Langensalza besitzt bis heute einen gut erhaltenen mittelalterlichen Stadtmauerring, von dem noch 16 Wachtürme und ein Eingangstor erhalten geblieben sind. Der 35,40 Meter hohe Klagetorturm an der Kurpromenade ist einer der wenigen noch erhaltenen Tortürme in Thüringen.
}}
* {{vCard | name = Kultur- und Kongresszentrum Bad Langensalza | comment = Jahnplatz als Parkfläche direkt hinter dem Haus | type = conference center | url = https://www.kkz-badlangensalza.de/ | address = Bürgermeister–Schönau–Platz 1, 99947 Bad Langensalza | lat = 51.11050 | long = 10.64223 | phone = +49 (0)3603 859 190 | email = kkz@bad-langensalza.de | lastedit = 2026-04-14 | description = NUTZUNG: Für Veranstaltungen (Tagung, Festlichkeit oder Konzert) von 10 bis zu 500 Personen: Unterschiedliche Räumlichkeiten (Saal, Bühne, Clubraum (Hufelandraum), Probesaal (Wieglebsaal), Saalnebenräume (Kloppstocksaal), kleiner Saal (Hermstedtsaal), Foyer) für jeden Anlass, moderne Tagungs- und Bühnentechnik, erfahrenes Veranstaltungsmanagement und hochwertige Gastronomie. Die Stadt veranstaltet hier (wie in der [[#vCard_Q16857154|Konzertkirche]] und an anderen Orten) diverse Events, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender]. GESCHICHTE: Das heutige Kultur- und Kongresszentrum hat eine lange Geschichte und wurde ehemals als Schützenhaus (erstmalige Erwähnung der „sagittarii“, der „Kappentragenden Pfeilschützen“, im Jahre 1380) erbaut und ersetzte zwei Vorgängerbauten für die Langensalzaer Schützengilde. Von 1717–1733 wurde das erste Schützenhaus errichtet und litt dann unter den deutschen Befreiungskriegen (1813 Pulvermagazin, 1814 Lazarett). Das baufällige Fachwerkgebäude diente nicht mehr seinem Zweck und wurde 1833 abgerissen. Der Neubau wurde dem Mauermeister ''Johann Benjamin Schneider'' und dem Zimmermeister ''Christian Andreas Wenk'' übertragen. Da die Schützen die Kosten nicht tragen konnten, wurden 215 Aktien verkauft. Grundsteinlegung war 1833, die Einweihung selbst fand im Juli 1834 statt. Der umfangreichere Neubau erhielt an der Frontseite einen repräsentativen Balkon sowie einen dreiseitigen Giebel. Bei den Kapitulationsverhandlungen 1866 (Hannover vs. Preußen) gastierte der König Georg V. von Hannover im Juni 1866 im Schützenhaus und der Kriegsrat besiegelte die Kapitulation. Im Nachhinein erfolgte die Benennung als „Königszimmer“ oder „Blaues Zimmer“. im Dezember 1906 wurde das gesamte Gebäude ein Raub der Flammen, glücklicherweise gab es.eine Entschädigungszahlung der ''Provinzial-Feuersozietät''. Das nach Bauplänen des hiesigen Stadtbaumeisters '''Ferdinand Kummer'' im November 1907 fertiggestellte Gebäude wurde mit Festbankett und Festball eingeweiht. Die veralteten Schießstände mussten auf königlichen Befehl erneuert und umzäunt werden. Im 1. Weltkrieg pausierten die Vereinsaktivitäten und das Schützenhaus wurde ab Herbst 1914 bis Anfang 1919 als Reservelazarett genutzt. Nach dem 2. Weltkrieg wurde das Schützenhaus von der Besatzungsmacht beschlagnahmt und 1946 mit dem Ziel der Errichtung eines Kulturzentrums der Sozialistischen Einheitspartei Deutschlands übertragen. Die Umbenennung des Gebäudes in Kulturhaus erfolgte schließlich Abfang Oktober 1952. Ab Januar 1961 wurde das geschlossene Kulturhaus in drei Bauabschnitten umgestaltet, die Gastronomie modernisiert. Mit einer symbolischen Schlüsselübergabe eröffnete das renovierte Kulturhaus Ende April 1962 und der Kulturhaus–Beirat kümmerte sich um die Nutzung. Der Kulturhausgarten wurde erstmals 1967 genutzt, die alte Kegelbahn 1978 abgerissen. Im Juni 1986 erfolgte einen Komplettumbau. Aufgrund von finanziellen und materiellen Engpässen wurden die Handwerker immer wieder unterbrochen, denn in den Wirren der Wendezeit versiegten die Geldquellen. Mit Hilfe von Bundes- und Landesmitteln konnte das Vorhaben eines modernen Kultur- und Kongresszentrums schließlich vollendet werden. Die Wiedereröffnung fand im Rahmen einer feierlichen Veranstaltung am 21. Februar 1992 statt. Der neue Name repräsentierte die kulturellen und künstlerischen Aspekte. In Vorbereitung des Landesprojektes ''Mensch–Natur–Städtebau'' wurde im Jahr 2009 das Kultur- und Kongresszentrum abermals umfangreich restauriert und modernisiert, insbesondere die Rosenlounge, die Außenfassade und der große Saal erstrahlen in neuem Glanz.
}}
=== Aussichtspunkt ===
[[Datei:Langensalza Dreitürmeblick.jpg|mini|Drei-Türme-Blick]]
[[Datei:LangensalzaDreitürmeblick2.JPG|mini|Blick durch die Skulptur]]
* {{vCard|name=Drei-Türme-Blick|type=viewpoint | lat = 51.1092 | long = 10.6417 |directions = vor der Gottesackerkirche neben dem Eingang in das Arboretum |url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/drei-tuerme-blick/ |description= Vom „Argusblick“ (die Skulptur wurde von dem Bad Langensalzaer Künstler [[w:Harald_Stieding|Harald Stieding]] geschaffen), einem aus Stein gehauenen Auge, das auf einer Travertinsäule thront, sind der Turm der einstigen Augustinerkirche, der Turm des Rathauses und schließlich der Turm der Marktkirche St. Bonifacii zu sehen. Diese drei Türme prägen die Ansicht der Kurstadt und sind immer wieder ein beliebtes Fotomotiv.
}}
=== Museen ===
[[Datei:Schild Wassermuseum vor Klagetor Bad Langensalza.jpg|mini|upright|Schild Wassermuseum mit dem Klagetor im Hintergrund]]
* {{vCard|name=Stadtmuseum im Augustinerkloster|type=museum|wikidata=Q76639038|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmuseum-im-augustinerkloster/|address=Augustinerplatz 1-2, 99947 Bad Langensalza|phone=+49 03603 813002|email=stadtmuseum@bad-langensalza.de|hours=Fr–So 13:00–17:00, Feiertagsregelungen beachten|price=Normal 5,00{{nnbsp}}€/Tag, erm. 4,00{{nnbsp}}€/Tag, Kinder und Schüler frei; Kombiticket Apotheken- und Stadtmuseum Erw. 8,00{{nnbsp}}€, erm. 6,00{{nnbsp}}€|lastedit=2026-04-01
}}
* {{vCard | name = Thüringer Apothekenmuseum | comment = im „Haus Rosenthal“ | type = museum | wikidata = Q20479980 | hours = Derzeit wie [[#vCard_Q76639038|Stadtmuseum]] | price = Wie [[#vCard_Q76639038|Stadtmuseum]] | lastedit = 2026-04-05 | description = Das historische Gebäude „Haus Rosenthal“ beherbergt seit Mai 2014 das Thüringer Apothekenmuseum. Die Besucher können im restaurierten Baudenkmal aus dem Jahr 1515, dessen Renovierung in einem FIlm gezeigt wird, u.{{nnbsp}}a. die historischen Wandvertäfelungen und zwei Holzstuben auf sich wirken lassen. Für die gelungene Sanierung erhielt die Stadt im Wettbewerb um den''Thüringer Holzbaupreis 2013'' eine Anerkennung sowie im Jahr 2015 den Thüringer Denkmalschutzpreis. Im Obergeschoss des Baudenkmals wird auf 276{{nnbsp}}m² eine Ausstellung zur Pharmaziegeschichte des 18. bis 20. Jahrhunderts präsentiert. In acht Räumen sind die verschiedenen Arbeitsbereiche einer alten Apotheke abgebildet. Neben einer Darstellung des Lebens und Wirkens des Langensalzaer Apothekers und Chemikers ''Johann Christian Wiegleb'' (1732–1800) werden Standgefäße aus Glas, Porzellan und Holz sowie eine Vielzahl an pharmazeutischen Arbeitsgeräten zur Herstellung von Arzneimitteln gezeigt. Das Museum ergänzt der angrenzende [[#vCard_Apothekergarten|Apothekergarten]], in dem mehr als 80 verschiedene, überwiegend heimische, Heilkräuter wachsen. Hinweis: Im Gebäude sind nur die Ausstellungen im Erdgeschoß sowie der Apothekergarten barrierefrei zu erreichen.
}}
* {{vCard | name = Rosenmuseum | comment = beim [[#vCard_Q112079448|Rosengarten]] | type = museum | address = Vor dem Klagetor 3, 99947 Bad Langensalza | directions = Zugang beim Kassenhäuschen des Rosengartens | lat = 51.11081 | long = 10.65237 | phone = +49 03603 834424 | hours = Wie [[#vCard_Q112079448|Rosengarten]] | lastedit = 2026-04-08 | description = Das Museum hat sich seit seiner Einrichtung kaum verändert und strahlt daher ein entsprechendes Flair aus, ist aber auch sehr informativ. Beispielsweise lernt man die In-vitro-Vermehrung von Rosen, bei der dünnste Scheiben von Rosenknospen steril in Nährmedien kultiviert werden, kennen, die die schnelle Produktion großer Mengen von Klonen ermöglicht. Das Museum soll beginnend mit der Saison 2026 sukzessive erneuert und mit modernen Medien ausgestattet werden.
}}
* {{vCard|name=Historische Druckerei|id=Historische_Druckerei|type=museum|lat=51.1092|long=10.6512|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/historische-druckerei/|hours=ganzjährig Di,Mi, Fr 9:00–12:00, sowie nach Vereinbarung|price=frei|description=Im Park des Friederikenschlösschens in der ehemaligen Kutscherremise befindet sich seit März 2008 die „Historische Druckerei“. Sie beherbergt heute u.{{nnbsp}}a. eine beeindruckende Handtiegelpresse aus dem Jahr 1854 sowie diverse Utensilien für den Handsatz und wird in kleinem Rahmen nach wie vor für Sonderdrucke genutzt. Die Druckerei kann an drei Tagen in der Woche vormittags ganzjährig besichtigt werden und die Besucher erhalten auf Wunsch von einem der sie betreuenden ehemaligen Setzer eine Führung mit der Möglichkeit, selbst ein Andenken zu drucken.}}
* {{vCard | name = Wassermuseum | type = museum | address = Hüngelsgasse 13, 99947 Bad Langensalza | lat = 51.11079 | long = 10.64951 | phone = +49 (0)3603 84070 | hours = Di 8:00–12:00, 13:30–17:30; Do 8:00–12:00, 13:30–15:30 | image = Wassermuseum Bad Langensalza.JPG | lastedit = 2026-04-07 | description = Betreiber: Verbandswasserwerk Bad Langensalza / Abwasserzweckverband (WAZV) "Mittlere Unstrut". Die beiden Google-Rezensionen des winzigen Museums im Eingangsbereich des Amtes innerhalb des letzten Jahres sind 5/5.
}}
=== Parks und Gärten ===
[[Datei:Bad Langensalza Arboretum Lageplan.jpg|mini|Lageplan Arboretum]]
[[Datei:Bad Langensalza Arboretum Pflanzensystematik.jpg|mini|Pflanzensystematik Arboretum]]
[[Datei:Bad Langensalza, japanischer Garten, Bild 8.jpg|mini|Japanischer Garten]]
[[Datei:Bad Langensalza 2022 - Rosengarten.jpg|mini|Rosengarten]]
[[Datei:Erblühende Magnolien am Wasserlauf vor Magnoliengarten Bad Langensalza.jpg|mini|Erblühende Magnolien am Wasserlauf vor dem Magnoliengarten]]
[[Datei:Ulmus parvifolia "Chinesische Kiefer" frei aufrechte Form Alter ca. 130 Jahre Japanischer Garten Bad Langensalza 02.jpg|mini|upright|Austreibender Bonsai Ulmus parvifolia „Chinesische Kiefer“, frei aufrechte Form, Alter ca. 130 Jahre, vor blühendem Baum im Japanischen Garten]]
Die Stadt besticht durch eine Vielzahl von [https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/ Parks und Gärten]:
* {{vCard | name = Arboretum | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/arboretum/ | lat = 51.10834 | long = 10.63949 | hours = Mär,Okt: täglich 10:00–18:00, Apr–Sep: täglich 10:00–19:00, Nov–Feb: geschlossen | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Das Arboretum (Baumgarten) ist eine geschichtsträchtige Parkanlage. Es lädt neben Entspannung und Erholung zum bummeln durch die Vielfalt an Bäumen und Sträuchern ein. Hier ist der Jahrezeitenwechsel am deutlichsten von allen Gärten der Stadt zu erleben. So zeigt sich das Arboretum von von Mitte März bis Oktober im bunten Blüten- und Blätterkleid. Auch bevor die Bäume ausschlagen bereichern den Garten zur Frühjahrsblüte durch früh blühende [[w:Magnolien|Magnolien]] und [[w:Frühjahrsblüher|Frühjahrsblüher]] mehr als nur einzelne Farbtupfer. Im Arboretum wachsen über 200 verschiedene Arten von [[w:Gehölz|Gehölz]]en, die zu mehr als 20 Pflanzenfamilien gehören. Eine umfangreiche Erweiterung der Gehölzsammlung konnte fast ausschließlich durch Spenden von Bürgern, Unternehmen und Institutionen realisiert werden. Ergänzt wird der Eindruck durch die zwölf Skulpturen aus Holz und Muschelkalk von neun Künstlern aus vier Ländern sowie einem Zeugnis der Stadtgeschichte, dem ''Hannoveraner Denkmal'', das an die Schlacht bei Langensalza 1866 erinnert. Die ebenfalls dort befindliche [[#vCard_Q16857154|Gottesackerkirche]] aus dem Jahr 1734 (von 2008–2009 saniert) wird als Konzertkirche ''St. Trinitatis'' genutzt. Das Arboretum ist zusätzlich zu einem Lageplan reichlich mit Text und Systematiken auf Schautafeln beschildert, so dass man viel über die [[w:Systematik des Pflanzenreichs|Systematik des Pflanzenreichs]] erfährt und die Gehölze entsprechend leicht finden und zuordnen kann. | id = Arboretum
}}
* {{vCard | name = Botanischer Garten ''Garten der Vielfalt'' | type = botanical garden | wikidata = Q4948492 | hours = Mai–Okt täglich 10:00–18:00 | price = frei | subtype = nodogs | lastedit = 2026-04-11 | description = Der Garten mit einem Sukkulentenhaus im Zentrum ist nach dem Umbau der ''[[#vCard_Friederiken Therme|Friederiken Therme]]'' seit 2025 erneut geöffnet und beinhaltet auch ein Kneippsches Tretbecken; insbesondere der Alpingarten (Alpinum) und die Gräserlandschaft werden zurzeit wieder neu angelegt. Besonders beeindrucken die teils sehr großen Goldkugelkakteen („Schwiegermuttersitz“ bzw. „-stuhl“).
}}
* {{vCard | name = Japanischer Garten ''Garten der Glückseligkeit'' | name-local = (jap. 幸福の庭, Kōfuku no niwa | alt = genauer ein [[w:Japanischer Wandelgarten|Japanischer Wandelgarten]] | type = garden | wikidata = Q26821540 | hours = Mär, Okt: täglich 10:00–18:00; Apr-Sep: täglich 10:00–19:00 | price = ab 12 J. 6,00 €/Tag, erm. 5,00 €/Tag; Feierabendticket (ab 17:00) 4,00 €/Tag; Kombiticket (alle Gärten, Stadt- und Apothekenmuseum) 20,00 €/Tag, erm. 16,00 €/Tag; bei Sonderveranstaltungen teils andere Preise | subtype = nodogs | lastedit = 2026-04-05 | description = Besucher tauchen ein in die Harmonie der Stille der verschiedenen Landschaften. Das Wasser hat eine wichtige symbolische Bedeutung: Wellenbewegungen fließen vom Wasserfall über den Teich in den Trockenbach, Pflanzen und Steine führen die Bewegung weiter. Im Kontrast zur Teichlandschaft steht die Trockenlandschaft. Ein Pflanzenpavillon mit Teehaus und der „Pavillon des Teetrinkens“, in dem ohne Zeremonie grüner Tee gereicht wird, ergänzen das Ensemble. Im April beginnen die Kirsch- und Magnoilienblüte, im Mai blüht die Azaleenlandschaft, Iris und Seerosen folgen im Juni. Es finden diverse Veranstaltungen (mit Vorführung japanischer Kampf- und Trommelkünste, Origami, Sushi uvm.) statt: Hanami Kirschblütenfest (April, aktuell 25. April 2026), Kodomo NoHi Kinderfest (Mai), Märchenfest (Juni), Tanabata Sternenfest (Juli). Im Dezember 2025 wurde zudem erstmalig (innerhalb der eigentlich üblichen Schließzeit November bis Februar) eine ''Fernöstliche Lichter-Poesie'' veranstaltet. Bei dieser wurde der Garten mit wechselnden Lichtfarben beleuchtet, es gab zwei Videoprojektionen u.{{nnbsp}}a. mit Videos und Bildern über den Garten sowie Musikuntermalung. Nach Aussage der Mitarbeiter war die Veranstaltung so gut besucht, dass sie vsl. in den kommenden Jahren wiederholt wird.
}}
* {{vCard|name=Kurpark|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/kurpark/|lat=51.10881|long=10.65008|hours=24/7|price=frei|lastedit=2026-03-05|description=Der Park liegt teilweise entlang der Stadtmauer und ist zur Hälfte von einem kleinen Wasserlauf durchzogen. Am einen Ende befindet sich ein künstlicher Wasserfall, und der Weg führt dann vorbei am Friederikenschlösschen, einem Kinderspielplatz, dem Abzweig zum Rosengarten, weiter zwischen dem Japanischen Garten und dem Natur!Gärten und geht dann in den Weg zum Magnoliengarten und den Botanischen Garten über. Blumenbeete, zugeschnittene Bäume und Bögen aus Büschen, unter denen man durchgehen kann, bereichern das Ambiente.}}
* {{vCard | name = Rosengarten ''Garten der Liebe'' | comment = Zugang zum [[#vCard_Rosencafé|Rosencafé]] direkt vom Garten aus | type = garden | wikidata = Q112079448 | hours = Mai-Sep: täglich 10:00–19:00; Okt: täglich 10:00-–8:00 | price = Wie [[#vCard_Q26821540|Japanischer Garten]] | subtype = parking, nodogs | lastedit = 2026-04-17 | description = Auf 18.000 qm erblühen und duften fast 450 Rosenarten wie historische und Englische Rosen, Wildrosen und Edelrosen, Rosenhochstämme und Kleinstrauchrosen; besonders sehenswert ist die Sammlung der Bad Langensalzaer Rosen (1950–990 wurden hier allein 91 Rosensorten gezüchtet. Anni Berger, die einzige Rosenzüchterin Deutschlands, war in Bad Langensalza tätig. Sie ist Namensgeberin einer Stiftung, die die Rosentradition, Denkmalpflege und Umweltschutz fördert – vgl. Anni-Berger-Stiftung.de), Skulpturen der Künstler Gert van Acker und Harald Stieding ergänzen das Gartenbild. Da auch die Vorgärten und die Stadtplätze vielfältige Rosen zieren, verwundert es nicht, dass 2002 der Stadt das Prädikat „Rosenstadt“ verliehen wurde.
}}
* {{vCard | name = Magnoliengarten | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/magnoliengarten/ | lat = 51.11366 | long = 10.64912 | hours = 24/7 | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Der 2006 eröffnete Magnoliengarten zeigt auf 1.500 qm mehr als 30 Magnolienarten, die von März bis Juli blühen – eine Zaubernuss beginnt den Blütenreigen. Magnolien gehören mit zu den ältesten Blütenpflanzen der Erde (vor der Eiszeit auch in Europa heimisch!), die heute in Ostasien und Amerika zu finden sind. Ergänzt werden sie durch Hortensien, Waldreben, Ginkgobäume sowie Blumen und Sträucher, teils auf einem kleinen Hügel als weiteres gestalterisches Element.
}}
* {{vCard | name = Schlösschenpark | comment = des [[#vCard_Q19279910|Friederikenschlösschens]] | type = park | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/schloesschenpark/ | lat = 51.10892 | long = 10.65177 | price = frei | lastedit = 2026-04-05 | description = Der von der der Herzogin Friederike von Sachsen-Weißenfels terrassenartig angelegte kleine Park aus der Mitte des 18. Jahrhunderts mit Blick auf das Schlösschen lädt zum Verweilen ein. Im hinteren Teil des Gartens ist ein historischer Gartenpavillon aus dem Jahr 1878 erhalten. Dort sprudelt aus einem Bronzebecken Schwefelwasser, das seit 1812 in der Kurstadt Bad Langensalza als Heilwasser verwendet wird. In der ehemaligen Remise befindet sich eine [[#vCard_Historische_Druckerei|historische Druckerei]].
}}
* {{vCard | name = Apothekergarten | alt = ''Garten der Heilkräuter'' | comment = beim [[#vCard_Q20479980|Apothekenmuseum]] | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/apothekergarten/ | lat = 51.11016 | long = 10.64459 | hours = Wie Apothekenmuseum, in der Wintersaison geschlossen | lastedit = 2026-04-05 | description = Der Apothekergarten hinter dem „Haus Rosenthal“ (daher nur über das Apothekenmuseum zugänglich) zeigt eine Auswahl an in Mitteldeutschland heimischer Pflanzen, die immer noch zur Herstellung von Arzneidrogen verwendet werden. Die Heilpflanzen sind in neun Beeten nach ihren Anwendungen bzw. medizinischer Indikation geordnet und beschildert. Umsäumt werden die Kräuterbeete von Blumen (Rosen brauchen in Bad Langensalza gar nicht extra erwähnt werden) sowie einigen Obstbäumen und Sträuchern. | id = Apothekergarten
}}
* {{vCard | name = Natur!Garten | comment = betrieben vom [[w:Bund_für_Umwelt_und_Naturschutz_Deutschland|BUND]] Ortsverband Bad Langensalza[https://badlangensalza.bund.net/]. Das '''Café'''[https://baeckerei-esche.de/bund-naturgarten-cafe/] im Garten hat '''kürzere''' Öffnungszeiten: Apr–Okt Mi–Fr 13:00–17:00, Sa/So/Fe bis 18:00 | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/naturgarten/ | lat = 51.1121 | long = 10.6489 | hours = Mär–Okt: täglich 8:00–18:00 | price = frei | lastedit = 2026-04-05 | description = Der 1.600 m² große Garten ermöglicht es, die Natur anzufassen (-> einheimische Pflanzen und Insekten). Er besteht seit 1994 auf und wurde 2019/20 neu gestaltet, dazu gehörten ein Pflanzenbestand mit über 1.000 neuen einheimischen bzw. für einen Bauerngarten typische Blumenzwiebeln, Stauden und Gehölze. Der Garten dient auch der Umweltbildung und verbindet einen nachhaltigen Bauerngarten (zentrales Brunnenhäuschen, Obst- und Gemüsebeete, Kräuterbank, klassische Bauerngarten-Blumenbeete, Färberpflanzen, Kompost) mit einem reinen Naturgarten (Blumenrasen, Wild-Stauden-Wall, „Beet der Flatterlinge“, Teich mit Sumpfwiese, Benjes-Hecke, größter Mirabellen-Baum und höchster Holunder-Strauch von Bad Langensalza). Kinder dürfen spielen und die Natur erforschen, Erwachsene erhalten Anregungen für eine naturnahe Gartengestaltung. Nätürlich ist auch für Verweilplätze gesorgt. Last but not least erreicht man durch den Garten das '''einzige begehbare Stück Stadtmauer-Wehrgang''' und zwei Stadtmauertürme. Zur nach ökologischen Gesichtspunkten sanierten Stadtmauer gehören im Stadtmauer-Rundturm ein „Raum der Stille“ und im Eckturm die Lese-Ecken.
}}
* {{vCard|name=TRACO Park|alt=Garten des Travertins|comment=betrieben von der Firma [https://traco.de/ TRACO]|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/traco-park/|address=Poststraße 17, 99947 Bad Langensalza|lat=51.1039|long=10.6377|phone=+49 (0)3603 8520|hours=Mo–Fr 9:00–18:00, Sa 10:00–13:00, in den Wintermonaten verkürzt|price=frei|subtype=wheelchair, free parking|lastedit=2026-04-10|description=Ausstellungsgarten zeigt breites Spektrum der natürlichen und ästhetischen Garten- und Landschaftsgestaltung mit Sandstein, Muschelkalk und Travertin aus firmeneigenen Steinbrüchen bei Weimar, Gotha und Bad Langensalza: Mauern, Treppen, Wege, Wasserkunst….}}
== Aktivitäten ==
* {{vCard | name = Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | lat = 51.11442 | long = 10.64683 | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = ''Thermalbad+Sauna'': So–Mi 10:00–21:00, Do–Sa 10:00–22:00 | price = ab 5{{nnbsp}}J komplexes Preissystem: Bad, Sauna, Kombitarife, Spättarife, Rabatte, s. Webseite | lastedit = 2026-04-13 | description = (Kinder bis zur Vollendung des 12.{{nnbsp}}Lebensjahres nur in Begleitung Erwachsener.) Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT).
}}
* {{vCard | name = Kino ''Burgtheater'' | type = cinema | url = https://burg-theater.de/ | address = Vor dem Schlosse 5e, 99947 Bad Langensalza | lat = 51.10903 | long = 10.64725 | phone = +49 (0)3603 846206 | fax = +49 (0)3212 1080916 | email = kino@burg-theater.de | hours = Tageweise Mo-So, teils ab 12:15, letzte Vorstellung 20:00 | price = 6,50–10 €; Aufschläge: ab 120 min +0,50 €, ab 140 min +1 €, 3D–Filme +2,50 €, teils Kinderermäßigungen vor 19:00; Di. Kinotag (nicht feiertags) | lastedit = 2026-04-08
}}
* {{vCard | name = Kindererlebniswelt ''Rumpelburg'' | type = children | url = https://kindererlebniswelt-rumpelburg.de/ | address = Sperlingsgasse 4, 99947 Bad Langensalza | lat = 51.10664 | long = 10.64754 | phone = +49 (0)3603 398-4604 | email = info@kindererlebniswelt-rumpelburg.de | hours = Di–Fr 14:00–18:00, Sa 10:00–18:00, So 10:00–17:00, auf Vorbestellung für Gruppen Di–Fr 10:00–13:00, Schließzeiten beachten (ges. Feiertage, Sommer-Betriebsferien, Weihnachtsferien) | price = 0–1J frei, 1–2J 3,50{{nnbsp}}€/1{{nnbsp}}Std, ab 2J/Erw. 4,00{{nnbsp}}€/1{{nnbsp}}Std, Rabatte/Sonderaktionen s. Webseite | lastedit = 2026-04-10 | description = Klettern, rutschen und toben in einer fantastischen Welt mit Spiel, Spaß und Entdeckungen. Netzbrücken, geheimnisvolle Baumhäuser, riesige Puppenstube und wilde Rutschpartien – Abwechslung bei jedem Wetter für Groß und Klein. Ereignisreiche Stunden durch verschiedene Rollen spielerisch erleben in: Spielhaus, Schiff, Tiergehege mit Holztieren oder Spielstadt. Aufmerksame Kinder entdecken vielleicht die geheimnisvollen Rumpelburgbewohner: Rosentroll Puck, Wasserelfe Tine oder Rumpel, das Gespenst.
}}
* Die Stadt veranstaltet insbesondere in der [[Bad Langensalza#vCard Q16857154|Konzertkirche]], dem [[Bad Langensalza#vCard Kongress- und Kulturzentrum Bad Langensalza|Kongress- und Kulturzentrum Bad Langensalza]] sowie an anderen Orten diverse '''Events''' wie beispielsweise Konzerte, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender Eventkalender].
* '''[https://badlangensalza.de/kur-tourismus/planen-buchen/veranstaltungen/veranstaltungshighlights/mittelalterstadtfest/ Mittelalterstadtfest]''' mit Handwerker- und Händlerständen, Musik- und Kleinkunstprogramm sowie Schaukämpfen am letzten Augustwochenende (aktuell 29./30. August 2026)
* Im ''Japanischen Garten'' finden diverse Veranstaltungen statt (Details finden sich beim [[#vCard_Q26821540|Japanischen Garten]]):
** '''Hanami Kirschblütenfest''' (April)
** '''Kodomo NoHi Kinderfest''' (Mai)
** '''Märchenfest''' (Juni)
** '''Tanabata Sternenfest''' (Juli)
** '''Fernöstliche Lichter-Poesie''': Sie wurde im Dezember 2025 (innerhalb der eigentlich üblichen Schließzeit November bis Februar) erstmalig veranstaltet und wird vsl. in den kommenden Jahren wiederholt.
* {{vCard | name = Flugplatz Bad Langensalza | type = landing site | wikidata = Q2900762 | directions = 3{{nnbsp}}km nordwestlich von Bad Langensalza | show = copy| price = Schnupperflug ab 30 €; ''Pilot für einen Tag'' (ca. 3 Std.) 199 € | lastedit = 2026-04-04 | description = Er wurde 1927 errichtet und von der [[w:Wehrmacht|Wehrmacht]] genutzt. Aktuell wird der [[w:Sonderlandeplatz|Sonderlandeplatz]] vom Flugsportverein ''„Otto Lilienthal“ Bad Langensalza e.{{nnbsp}}V.'' betrieben. Er verfügt über eine Gras-Start- und Landebahn mit der Größe 800{{nnbsp}}m × 40{{nnbsp}}m. Angebote: Segelflug, Ultraleichtflug (UL-Flug), Rundflüge und Gastflüge.
}}
== Einkaufen ==
Es gibt Bad in Langensalza das typische Angebot einer Kleinstadt. Spezielle lokale Reisesouvenirs sind hier zu erwerben.
* {{vCard|name=Wochenmarkt|type=market|url=https://citymanagement-badlangensalza.de/events/wochenmarkt/|address=Fußgängerzone|lat=51.1086|long=10.6454|hours=Mi 8:00–14:00|lastedit=2026-04-06|description=Auf dem Wochenmarkt gibt es nicht nur frisches Obst und Gemüse, Geflügel und Fisch, Backwaren, Eier und Teigwaren, Wurst- und Käsesorten, Pasti und Antipasti, Gewürze, Kräuter, Honig und Marmeladen sowie Blumen und Pflanzen zu kaufen, man kann dort auch diverse warme Gerichte gleich essen oder mitnehmen. Viele der Angebote stammen dabei aus der Region. Für eine thüringer Stadt eher ungewöhnlich erhält man als eine der beiden je eintägigen Möglichkeiten im Ort ''[[w:Thüringer Rostbratwürste|Thüringer Rostbratwürste]]'' in einer Semmel (gute Wurst, sehr gutes Brötchen, 3{{nnbsp}}€).}}
* {{vCard | name = Buchhandlung ''Buchgeschwister'' | type = book seller | url = https://www.genialokal.de/buchhandlung/bad-langensalza/buchgeschwister/ | address = Mühlhäuser Str. 39, 99947 Bad Langensalza | lat = 51.10895 | long = 10.64475 | phone = +49 (0)3603 842449 | email = kontakt@buchgeschwister.com | instagram = buchgeschwister.lsz | hours = Di–Fr 10:00–13:00, 14:00–17:00, Sa 10:00–13:00 | image = Buchhandlung "Buchgeschwister" Bad Langensalza.jpg | lastedit = 2026-04-09 | description = sehr persönliche Beratung.
}}
== Küche ==
Bei vielen Cafés und Restaurants kann man auch draußen sitzen. Letztere haben oft werktags ein Mittagsangebot.
* {{vCard | name = Café Schwesterherz | comment = Gegründet von den Schwestern Anni und Ulrike | type = cafe | url = https://cafe-schwesterherz.jimdofree.com/ | address = Mühlhäuser Str. 2, 99947 Bad Langensalza | lat = 51.10878 | long = 10.64463 | phone = +49 (0)3603 3989345 | email = Cafe-Schwesterherz@freenet.de | hours = Di–Fr 9:00–17:30, 2.+4. Sa im Monat 9:30—17:00, 1.+3. Sa im Monat 9:30—12:30 | image = Cafe Schwesterherz Bad Langensalza.jpg | lastedit = 2026-04-08 | description = Uriges Ambiente mit der Möglichkeit, schöne Dinge zu erwerben und auch draußen zu sitzen. Eine der Spezialitäten sind nach dem Motto ''Kuchen wie bei Omi'' selbstgebackene Kuchen. Die ausführlichen Rezensionen des Cafés (Google 4,8/5) sprechen oft von begeisterten Besuchern. Um sicher einen Platz zu bekommen ist eine Reservierung empfehlenswert.
}}
* {{vCard | name = Rosencafé | type = restaurant | url = https://www.rosencafe-bad-langensalza.de/ | address = Am Rosengarten 11, 99947 Bad Langensalza | directions = Direkt am [[#vCard_Q112079448|Rosengarten]], Zugangsmöglichkeit von dort aus, zurück benötigt man die Eintrittskarte für das Drehkreuz. Eingang auch vom neuen Wohngebiet aus. | lat = 51.11224 | long = 10.65247 | phone = +49 (0)3603 891601 | email = info@rosencafe-bad-langensalza.de | hours = Do–So 10:00–17:00, bis 15:00 warme Küche | subtype = accessible, parking | lastedit = 2026-04-17
}}
* {{vCard | name = Ristorante Venezia | type = restaurant | url = https://www.venezia-restaurant.de/ | address = Marktstraße 31, 99947 Bad Langensalza | lat = 51.10820 | long = 10.64577 | phone = +49 03603 895469 | fax = +49 03603 8969308 | hours = tägl. 10:00–0:00, warme Küche durchgehend 11:00–23:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Villa Italia | type = restaurant | url = https://www.villa-italia.de/ | address = Kurpromenade 5a, 99947 Bad Langensalza | lat = 51.10838 | long = 10.65071 | phone = +49 03603 892861 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Punjabi Bad'sha | alt = Indisches Restaurant & Eiscafe | type = restaurant | url = https://www.punjabi-badshah.de/ | address = Kornmarkt 2, 99947 Bad Langensalza | lat = 51.10761 | long = 10.64739 | phone = +49 (0)36031 279246 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Herkules | type = restaurant | address = Steinweg 11, 99947 Bad Langensalza | lat = 51.10547 | long = 10.64209 | phone = +49 03603 1277321 | facebook = Restaurant.Herkules | hours = Di–Fr 17:00—23:00; Sa,So 11:30—14:30 und 17:00—23:00 | subtype = greek | lastedit = 2026-04-06 | description = Beliebter Grieche in passendem Ambiente.
}}
* {{vCard | name = Pizzeria Flamingo | type = restaurant | address = Steingrubenstraße 7, 99947 Bad Langensalza | lat = 51.10656 | long = 10.64428 | phone = +49 03603 1277589 | instagram = pizzeriaflamingoo | hours = Mo–Sa 10:30–21:30, So 13:00–21:30 | lastedit = 2026-04-06
}}
* {{vCard | name = PHANtastic | alt = Asian Fusion | comment = Gästeparkplatz hinten im Schlosshof 3, 99947 Bad Langensalza | type = restaurant | address = Marktstraße 3, 99947 Bad Langensalza | lat = 51.10866 | long = 10.64578 | phone = +49 (0)3603 8955218 | hours = Di-Sa 10:30-22:00, So 11:30-22:00, Mo nur feiertags geöffnet | lastedit = 2026-04-17 | description = Neueröffnung 11.4.2026, Aktionsangebot 11.4.–19.4.2026 15% Rabatt.
}}
* {{vCard | name = Ratswaage | alt = Restaurant, Bier– und Weinkeller | type = restaurant | url = https://ratswaage-lsz.de/ | address = Mühlhäuser Straße 40, 99947 Bad Langensalza | directions = Der Ratskeller liegt im historischen Stadtzentrum. | lat = 51.10893 | long = 10.64494 | phone = +49 (0)3603 8955310 | email = info@ratswaage-lsz.de | hours = tägl. 11:00–14:30, 17:00–23:00 | image = Restaurant Ratswaage Bad Langensalza.jpg | lastedit = 2026-04-17
}}
* {{vCard|name=Asia Food & Salza Grill|type=restaurant|address=Rathausstraße 9, 99947 Bad Langensalza|lat=51.10818|long=10.64437|phone=+49 (0)3603 84 86 16|hours=Mo-Fr 11:00-21:00, So/Fe 11:00-21:00|price=günstig|payment=derzeit nur Barzahlung|subtype=asian, grill, takeaway|lastedit=2026-04-09|description=alle Speisen auch zum Mitnehmen, ein paar Tische innen und ein paar draußen, Personal freundlich, Essen gut, „große Portion“ heißt zu Recht so!
}}
* {{vCard | name = Schnitzel-Steak-Haus | type = restaurant | url = https://schnitzel-steak-haus.metro.rest/?lang=de | address = Marktstraße 19, 99947 Bad Langensalza | lat = 51.10830 | long = 10.64739 | phone = +49 (0)3603 896970 | email = dido2004@abv.bg | hours = Mo–So 10:00–22:00 | lastedit = 2026-04-10 | description = Jede Woche ein Mittagsmenü: typischerweise Suppe, zwei verschiedene Hauptgerichte, Eis.
}}
== Nachtleben ==
== Unterkunft ==
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig für Übernachtungsgäste eine [[#Kurtaxe|Kurtaxe]]. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza.
* {{vCard | name = Hotel Sante Royale | type = hotel, restaurant | url = https://www.sante-royale.de/hotels/bad-langensalza | address = Parkstraße 1, 99947 Bad Langensalza | lat = 51.11412 | long = 10.64527 | tollfree = +49 0800 9022090 | email = info.badlangensalza@sante-royale.com | subtype = 4, free wlan, restaurant, sauna, spa, dogs, indoor pool, outdoor pool | lastedit = 2026-04-07 | description = Großes, modernes Hotel mit 130 Zimmern und Suiten.
}}
* {{vCard| type = hotel |name=Hotel L.A. CHICAGO|address=Tonnaerstraße 33, 99947 Bad Langensalza |phone=+49 03603 856836|email=info@lachicago.de|fax=+49 03603 856837|url=http://www.lachicago.de |hours=|price= |lat=51.10675 |long=10.65281
}}
* {{vCard| type = hotel |name=Zur Lohgerberei |address=Löbersgasse 2, 99947 Bad Langensalza |phone=+49 03603 846131 |email=kontakt@pension-zur-lohgerberei.de |fax=+49 03603 894344 |url=http://www.pension-zur-lohgerberei.de/ |hours=|price=EZ ab 37 €, DZ ab 27 € (jeweils inkl. Frühstück). |lat=51.11096 |long=10.64662 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Zöllner |address=Steinweg 1, 99947 Bad Langensalza |phone=+49 03603 815664 |email=info@pension-zoellner-thueringen.de |fax= |url=http://www.pension-zoellner-thueringen.de/ |hours=|price=EZ ab 30 €, DZ ab 50 € (jeweils inkl. Frühstück). |lat=51.10611 |long=10.64204 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Bergstube |address=Bergstraße 7, 99947 Bad Langensalza |phone=+49 03603 846980 |email=j.schroe@tonline.de |fax=+49 03603 814132 |url=http://bergstube.de/ |hours=|price=EZ ab 35 €, DZ als EZ ab 43 €, DZ ab 55 €. |lat=51.13836 |long=10.63443 |lastedit= |description=
}}
* {{vCard| type = hotel |name=Gasthaus zur Weintraube |address=Mühlhäuser Straße 11, 99947 Bad Langensalza |phone=+49 03603 846133 |email=info@zur-weintraube.de |fax=+49 03603 892830 |url=http://zur-weintraube.de/ |hours= Gasthaus: tägl. ab 10:00 |price=EZ ab 35 €, DZ ab 65 € (jeweils inkl. Frühstück. |lat=51.10943 |long=10.64351 |lastedit=|description=
}}
== Sicherheit ==
* {{vCard|name=Polizeistation |wikidata=|type=police |address=Bahnhofstraße 3, 99947 Bad Langensalza |phone=+49 03603 8310 |email=|fax=|url=|hours=|price=|lat=51.10375 |long=10.64196 |lastedit=|description=}}
== Gesundheit ==
=== Krankenhäuser ===
* {{vCard | name = Hufelandklinik | type = hospital | wikidata = Q107295076 | hours = 24/7 (Notaufnahme) | lastedit = 2026-04-06
}}
* {{vCard|name=Rehaklinik |wikidata=|type=hospital |address=Kurpromenade 6-8, 99947 Bad Langensalza |phone=+49 03603 8030 |email=info@rehaklinik-badlangensalza.de |fax=+49 03603 803100 |url=https://www.rehaklinik-badlangensalza.de/ |hours=|price=|lat=51.10941 |long=10.65063 |lastedit=|description=
}}
=== Sonstiges ===
Es gibt im Ort ein Ärztehaus, ein Medizinisches Versorgungszentrum (MVZ), dieserse Arztpraxen, Zahnärzte sowie drei Apotheken und zwei Sanitätshäuser.
* {{vCard | name = Therapie- und Kurbereich mit MTT der Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = '''Therapie+Kurbereich'': Mo—Fr 7:30—19:30 und nach Vereinbarung; ''Medizinische Trainingstherapie'': Mo—Fr 9:00—19:30 und nach Vereinbarung, Sep—Feb zusätzlich Sa 10:00—14:00 (außer an Feiertagen) | lastedit = 2026-04-13 | description = Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT). | copy-marker = Friederiken Therme
}}
== Praktische Hinweise ==
* {{vCard|name=Touristinformation Langensalza|type=tourist information|url=https://badlangensalza.de/kur-tourismus/service-info/touristinfo/|address=Bei der Marktkirche 11, 99947 Bad Langensalza|lat=51.10791|long=10.64866|phone=+49 (0)3603 834424|fax=+49 (0)3603 834421|email=touristinfo@badlangensalza.de|hours=Apr—Okt: Mo—Fr 9:00—18:00, Sa/So 10:00—16:00, Fe 10:00—14:00; Nov—Mär: Mo-Fr 9:00—17:00, Sa/Fe 10:00—14:00, So geschlossen}}
* Die Stadt bietet an diversen Orten '''kostenloses WLAN''' namens [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/w-langensalza/ W-LANgensalza]. Es gibt einen [https://badlangensalza.de/core/webp-express/webp-images/uploads/sites/2/2024/03/csm_Stadtplan-WLAN_65049e16b6.jpg.webp Stadtplan mit den eingezeichneten Hotspots], zur Verfügung steht es hier:
** Kultur- und Kongresszentrum
** An der Alten Post/Jahnplatz
** Wiebeckplatz, Ecke Lange Straße
** Rathaus
** Bei der Marktkirche
** Parkplatz am Ende der Friedrich-Mann-Straße
** Kornmarkt
** Touristeninformation
* Stadtführungen werden angeboten. Die Informationen dazu sind bei der Tourismusinformation zu erfragen.
* Die Filiale der Post befindet sich in der Tonnaer Straße 38.
=== Kurtaxe ===
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [https://badlangensalza.de/kur-tourismus/planen-buchen/gaestekarte/ Kurtaxe]. Sie beträgt für Erwachsene 3,00{{nnbsp}}€/Übernachtung, für Kinder im Alter von 6 bis 15 Jahren 1,50{{nnbsp}}€/Übernachtung. Für Schwerbehinderte und Blinde mit Schwerbehindertenausweis wird der Kurbeitrag um 50{{nnbsp}}% ermäßigt. Erwerbsunfähige Kriegsbeschädigte und Begleitpersonen von Schwerbehinderten sind von der Kurtaxe befreit. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza. Details: [https://badlangensalza.de/storage/sites/2/2025/03/Kurbeitragssatzung.pdf Kurbeitragssatzung der Stadt Bad Langensalza (pdf)]
== Ausflüge ==
* Der [[Nationalpark Hainich]] mit dem [[w:Baumkronenpfad_Hainich|Baumkronenpfad]] ([https://www.nationalpark-hainich.de/de/ausflugsziele/baumkronenpfad.html Webseite des Nationalparks], [https://www.baumkronen-pfad.de/ Webseite Bad Langensalza]) an der [[w:Thiemsburg|Thiemsburg]] liegt nur wenige Kilometer südlich der Stadt.
* [[Eisenach]] mit der [[w:Wartburg|Wartburg]] ist mit dem Auto in weniger als 30 Minuten zu erreichen.
<!--
== Literatur ==
-->
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.10806| long= 10.64667| radius= }}
{{IstInKat|Thüringen||Thüringer Kernland||Kurort in Thüringen}}
47fah56qvxiht21lsai30ppalhpfejs
1769215
1769214
2026-04-17T11:46:15Z
Ousw
57729
"-" vereinheitlicht
1769215
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/ Touristinformation]
| TouriInfoTel = +49 (0)3603 834424
}}
Die Kur- und Rosenstadt '''Bad Langensalza''' ist eine ehemalige Kreisstadt am Nordwestrand des [[Thüringer Kernland|Thüringer Beckens]]. Neben einer Therme und zwei Kliniken kennzeichen die Stadt besonders ihre historische Altstadt, zehn Parks und Gärten, die teils ganzjährig zum Besuch einladen, sowie die Blumenpracht im gesamten Ort.
== Hintergrund ==
{{Mapframe|51.10806| long= 10.646|zoom=14|height=300|width=300|type=geoline}}
Bad Langensalza (bis 1956: Langensalza) ist ein Schwefel-Sole-Heilbad und staatlich anerkannter Kurort. Zu Beginn des 9. Jahrhunderts wurde erstmals ein Ort namens Salza – im lateinischen Text Salzaha – urkundlich erwähnt. Bad Langensalza gehört zu den historisch bedeutendsten Städten im Thüringer Becken, wovon die reichhaltige historische Bausubstanz in der Altstadt zeugt. Als eine der Waidstädte war Bad Langensalza sehr wohlhabend, sodass große Kirchen und eine mächtige Stadtmauer aus Langensalzaer Travertin, der direkt im Südwesten der Altstadt abgebaut werden konnte, errichtet wurden. Um 1300 wurde die Stadtmauer mit vier Eingangstoren fertiggestellt. Ein verheerender Stadtbrand legte 1711 Teile der Altstadt in Schutt und Asche. Die im prachtvollen Barockstil an ihrer Stelle entstandenen Bürgerhäuser prägen noch heute das Bild der Stadt. Heute sind von der ältesten Stadtbefestigung noch vier Stadtmauertürme erhalten.
Bekannt ist die Stadt auch für die [[w:Schlacht_bei_Langensalza|Schlacht bei Langensalza]] zwischen Preussen und Hannover 1866, in deren Folge Preussen Hannover annektierte. Im [[#vCard_Arboretum|Arboretum]] steht das daran erinnernde [[w:Langensalza-Denkmal_(Bad_Langensalza)|Denkmal]] der Stadt.
Im Juni 1938 wurde im Reinhardbrunner Hof eine antisemitische Hetzausstellung gezeigt. Ebenso wurden Sinti- und Roma-Familien verfolgt, von denen einige im KZ Langensalza, einem Außenlager des KZ Buchenwald, inhaftiert waren. Dort mussten insgesamt etwa 1300 ausländische Frauen und Männer Zwangsarbeit für ein Projekt der Junkers verrichten. Am 5. April 1945 wurde Langensalza durch amerikanische Truppen besetzt und Anfang Juli an die Rote Armee übergeben. So wurde es Teil der Sowjetischen Besatzungszone (SBZ) und ab 1949 der DDR.
Seit dem 28. Juni 1956 trägt Langensalza den Namenszusatz Bad. Seit 1990 wurde die Altstadt zu einem großen Teil restauriert. Später konnten in der Stadt Heilquellen erschlossen werden, die bis heute dem Kurbetrieb dienen. Damit einher ging die Anlage mehrerer Parks, wie Rosengarten und Japanischer Garten. Seit dem 22. Juni 2002 nennt sich Bad Langensalza „Rosenstadt“. Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [[#Kurtaxe|Kurtaxe]].
== Anreise ==
=== Mit dem Flugzeug ===
* Die nächstgelegenen Verkehrsflughäfen mit Linienverkehr sind der {{marker|type = airport|name = Flughafen Leipzig Halle |wikidata = Q668382}} und der {{marker|type = airport|name = Flughafen Frankfurt am Main|wikidata = Q46033}}.
* Auf dem in ca. 65{{nnbsp}}km entfernten {{marker | type = airport | name = Flughafen Erfurt–Weimar | wikidata = Q703794}} starten und landen mittlerweile nur noch Chartermaschinen. Er ist aber weiterhin für Geschäfts- und Sportflieger offen.
* {{vCard|name=Flugplatz Bad Langensalza|type=landing site|wikidata=Q2900762|directions=ca. 3{{nnbsp}}km nördlich|description=Der als [[w:Sonderlandeplatz|Sonderlandeplatz]] klassifizierte Fluplatz verfügt über eine 800{{nnbsp}}m lange Graslandebahn und kann von Ultraleichtfliegern angeflogen werden. Der Platz wird betrieben vom Flugsportverein „Otto Lilienthal“.}}
=== Mit der Bahn ===
{{vCard | name = Bahnhof Langensalza | type = rail | wikidata = Q62415577 | lastedit = 2026-04-10 | description = Betreuung nur mittels '''Video'''-Reisezentrum (geöffnet Mo-Fr 7:15–18:30, Sa 8:15–13:30), behindertengerechte Toilette nur mit entsprechendem Schlüssel. Am Bahnhof halten Regionalzüge aus Erfurt über Gotha oder über Gräfentonna sowie aus Kassel und Göttingen über Leinefelde und Mühlhausen. Der Bahnhof liegt am südlichen Stadtrand etwa ein Kilometer vom Stadtzentrum. Jeder hier verkehrende Zug bedient auch den Landkreis Gotha. Das nahegelegene [[Gotha]] bietet den nächsten ICE-Bahnhof. Mit der Stadtbuslinie B kann man direkt von der Haltestelle am Bahnhofsvorplatz Mo-Fr tagsüber halbstündlich und Sa vormittags alle zwei Stunden in die Innenstadt und zurück fahren; Aus-/Einstieg an der Endhaltestelle „Treffpunkt Wiebeckplatz“ (Fahrplan siehe [[#Mobilität|Mobilität]]). Das geschlossene Bahnhofsgebäude ist leider nicht einladend, obwohl es auch so noch vom früheren Wohlstand der Stadt zeugt, man wird aber im Ort dafür entschädigt. Zwischen Bahnhof und Busbahnhof gibt es den Imbiss ''Herbigs Grill''. }}
=== Mit dem Bus ===
Der {{Marker | type = bus | name = ZOB | lat=51.10166 | long=10.64270}} befindet sich ein Stück neben dem Bahnhofsvorplatz. Aufgrund der Lage bietet er nicht nur die Möglichkeit, über verschiedene Buslinien die benachbarten Gemeinden zu erreichen, sondern ermöglicht direkt zwischen Schienen-, Buslinien- und Stadtbusverkehr (Linie B, Haltestelle nicht am ZOB, sondern direkt am Bahnhofsvorplatz) zu wechseln. Auch [[Fernbusse in Deutschland|Fernbusse]] halten hier.
=== Auf der Straße ===
* Über die Autobahn {{RSIGN|DE|A|4}}, Anschlussstelle {{Ausfahrt|Eisenach-Ost,|40a,}} und der {{RSIGN|DE|B|84}} gelangt man in die Stadt.
* Die {{RSIGN|DE|B|247}} führt von [[Gotha]] oder von [[Mühlhausen (Thüringen)]] nach Bad Langensalza.
=== Mit dem Fahrrad ===
Der [[Unstrut-Radweg|Unstrut-Radweg]] durchquert den Ortsteil Thamsbrück.
== Mobilität ==
Aufgrund der Größe ist die Stadt gut zu Fuß zu erkunden. Parkplätze stehen auch an vielen Stellen zur Verfügung. Es gibt zwei Stadtbuslinien: [https://www.salzatours.de/fahrplanauskunft/ Fahrplanauskunft] der Salza–Tours König GmbH & Co. KG
* '''Linie A''' Gewerbegebiet Nord '''–''' EKZ Rasenmühlenweg – Treffpunkt Wiebeckplatz – Gutenbergstraße – Gewerbegebiet Ost
* '''Linie B''' Ufhoven Schenke – Bahnhof – Gutenbergstraße – Treffpunkt Wiebeckplatz & zurück
===Thiemsburg===
Buslinie 150 Verkehrsgemeinschaft Wartburgregion im Sommer mindestens 4 mal täglich Bad Langensalza - [[Thiemsburg]] - [[Behringen]] - [[Eisenach]].
== Sehenswürdigkeiten ==
[[Datei:LangensalzaGottesackerkirche.JPG|mini|Gottesackerkirche St. Trinitatis]]
=== Kirchen ===
* {{vCard | name = Marktkirche ''St. Bonifacii'' | comment = ev. Hauptkirche | type = church | wikidata = Q1901085 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/marktkirche-st-bonifacii/ | phone = +49 (0)3603 846402 | hours = Mo-Sa 14:00–16:00 und nach Vereinbarung | description = Die Marktkirche St. Bonifacii ist die evangelische Hauptkirche der Stadt und wurde in mehreren Bauphasen von Mitte des 13. bis Ende des 16. Jahrhunderts im Stil der Gotik erbaut und erweitert. Aus diesem Grund besteht sie aus vielen sich deutlich voneinander abhebenden Teilen. Eine Besonderheit ist die Einzeigeruhr am 74 m hohen Turm, einem der höchsten Kirchtürme in Thüringen. Die Malereien aus dem 16. Jahrhundert wurden erst Anfang des 20. Jahrhunderts wieder freigelegt. Die barocke Kanzel im Mittelschiff stammt aus dem Jahr 1734. Das Altarbild, eine Kreuzigungsszene darstellend, wurde vermutlich zwischen 1486 und 1490 hergestellt. Mai–Sep. Orgelmusik zur Marktzeit um 12 Uhr.
}}
* {{vCard | name = Bergkirche ''St. Stephani'' | type = church | wikidata = Q16857152 | url = https://evangelische-kirche-lsz.de/bergkirche-st-stephani-st-stephan/ | description = Ursprünglich außerhalb der ersten Stadtmauer als dreischiffige Basillika erbaut war sie die Pfarrkirche der Neustadt. Das im Jahr 1196 erstmals urkundlich als Kapelle erwähnte Gotteshaus ist der älteste Sakralbau in Bad Langensalza. Aus einer ursprünglichen Mönchskapelle entwickelte sich die Kirche durch Um- und Anbauten. Die Kanzel wurde 1590 im Renaissancestil aufgebaut. Die Glasfenster sind Stiftungen der Bürger im 19. Jahrhundert. An den Decken sind heute noch die Wappen der Spenderfamilien zu sehen. Die Orgel der Kirche wurde 1884/1985 von dem Bad Langensalzaer Orgelbauer [[w:Friedrich Erdmann Petersilie|Friedrich Petersilie]] erbaut. Der Turm hat eine Höhe von 53,5{{nnbsp}}m.
}}
* {{vCard | name = Gottesackerkirche ''St. Trinitatis'' | type = church | wikidata = Q16857154 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/gottesackerkirche-st-trinitatis/ | address = Tuchmachergasse 5, 99947 Bad Langensalza | directions = Im [[#vCard_Arboretum|Arboretum]], direkt neben dem Eingang. | hours = Nur bei Veranstaltungen zugänglich | lastedit = 2026-04-14 | description = Die Friedhofskirche wird als Konzertkirche mit vielfältigen musikalischen Veranstaltungen und einzigartiger Akustik genutzt. '''Geschichte''': Die Kirche wurde 1734–1739 unter der Schirmherrschaft von Herzog ''Christian von Sachsen–Weißenfels'' mit Travertinsteinen der im 30-jährigen Krieg zerstörten Marienkirche errichtet, woran die Kartusche über dem östlichen Portal erinnert. Über das Spitzbogenportal an der Westseite gelangt man zu den restaurierten Grüften. In Gegensatz zum strengen, symmetrischen Außenbau steht die reiche barocke Innenausstattung der Saalkirche mit zweigeschossigen Holzemporen und dem Kanzelaltar von 1734. Die aufwendige Gestaltung des Deckengewölbes zeigt sich in den barocken Malereien in ovalen Medaillons und Stuckaturen. Zur Ausstattung gehören das Madonnen-Relief aus der Marienkirche, zwei barocke Epitaphien und eine Orgel von ''Friedrich Erdmann Petersilie'' (1869). Umfangreiche Sanierungs- und Restaurierungsarbeiten 2008/2009 führten zu neuem Glanz.
}}
=== Bauwerke ===
* {{vCard|name=Rathaus|type=town hall|wikidata=Q119440667|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/rathaus/|description=Das Glockenspiel mit 32 Glocken und 5 Figuren kann 16 verschiedene Melodien spielen und erklingt täglich um 12 und 18 Uhr. Möglichkeit zu einer [https://badlangensalza.de/kur-tourismus/planen-buchen/gastefuhrungen/gruppenfuehrungen-3/unter-dem-pflaster/ Stadt- und Kellerführung], Dauer: 120 min, Preis 135,00 €, optional: „Herrliches Gesöff“ zum Abschluss zzgl. 2,50 € pro Getränk.
}}
* {{vCard | name = Schloss Dryburg | type = chateau | wikidata = Q2240669 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/schloss-dryburg/ | hours = Galerie: Do–Sa 14:00–17:00 und nach Vereinbarung. An Feiertagen geschlossen | lastedit = 2026-04-12 | description = Das Schloss Dryburg ist das älteste erhaltene, komplett aus Stein gemauerte Profangebäude in der Stadt. Von der mittelalterlichen Kernburg ist noch der Westflügel erhalten. Er beherbergt seit Anfang 2011 unter anderem die Galerie des [https://www.kunstwestthueringer.com/ Kunstwestthüringer e. V.], für Kunstliebhaber ein Muss. Der gemeinnützige Kunstverein sieht seine Aufgabe in Präsentation, Vermittlung und Aktion in Sachen zeitgenössischer bildender Kunst. Pro Jahr sind ca. sechs Ausstellungen zu sehen, eine davon immer im Mai ist die Präsentation von Werken internationaler Künstler.
}}
* {{vCard | name = Friederikenschlösschen | type = chateau | wikidata = Q19279910 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/friederikenschloesschen/ | address = Mauergasse 2, 99947 Bad Langensalza | hours = „Tag des offenen Schlösschens“ jeweils 14:00–17:00, aktuell: 17.05.26, 28.06.26, 12.07.26, 02.08.26, 16.08.26, 13.09.26 (Tag des offenen Denkmals 10:00–17:00), 18.10.26 | price = frei / auf Spendenbasis | lastedit = 2026-04-08 | description = Die Herzoginwitwe Friederike von Sachsen-Weißenfels ließ 1749 bis 1751 das Rokoko-Lustschloss errichten. Im Festsaal des Friederikenschlösschens werden Kleinkunstprogramme und Kammerkonzerte aufgeführt.
}}
* {{vCard | name = Stadtmauer und Türme | type = monument | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmauer-und-tuerme/ | lat = 51.10934 | long = 10.64943 | description = Bad Langensalza besitzt bis heute einen gut erhaltenen mittelalterlichen Stadtmauerring, von dem noch 16 Wachtürme und ein Eingangstor erhalten geblieben sind. Der 35,40 Meter hohe Klagetorturm an der Kurpromenade ist einer der wenigen noch erhaltenen Tortürme in Thüringen.
}}
* {{vCard | name = Kultur- und Kongresszentrum Bad Langensalza | comment = Jahnplatz als Parkfläche direkt hinter dem Haus | type = conference center | url = https://www.kkz-badlangensalza.de/ | address = Bürgermeister–Schönau–Platz 1, 99947 Bad Langensalza | lat = 51.11050 | long = 10.64223 | phone = +49 (0)3603 859 190 | email = kkz@bad-langensalza.de | lastedit = 2026-04-14 | description = NUTZUNG: Für Veranstaltungen (Tagung, Festlichkeit oder Konzert) von 10 bis zu 500 Personen: Unterschiedliche Räumlichkeiten (Saal, Bühne, Clubraum (Hufelandraum), Probesaal (Wieglebsaal), Saalnebenräume (Kloppstocksaal), kleiner Saal (Hermstedtsaal), Foyer) für jeden Anlass, moderne Tagungs- und Bühnentechnik, erfahrenes Veranstaltungsmanagement und hochwertige Gastronomie. Die Stadt veranstaltet hier (wie in der [[#vCard_Q16857154|Konzertkirche]] und an anderen Orten) diverse Events, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender]. GESCHICHTE: Das heutige Kultur- und Kongresszentrum hat eine lange Geschichte und wurde ehemals als Schützenhaus (erstmalige Erwähnung der „sagittarii“, der „Kappentragenden Pfeilschützen“, im Jahre 1380) erbaut und ersetzte zwei Vorgängerbauten für die Langensalzaer Schützengilde. Von 1717–1733 wurde das erste Schützenhaus errichtet und litt dann unter den deutschen Befreiungskriegen (1813 Pulvermagazin, 1814 Lazarett). Das baufällige Fachwerkgebäude diente nicht mehr seinem Zweck und wurde 1833 abgerissen. Der Neubau wurde dem Mauermeister ''Johann Benjamin Schneider'' und dem Zimmermeister ''Christian Andreas Wenk'' übertragen. Da die Schützen die Kosten nicht tragen konnten, wurden 215 Aktien verkauft. Grundsteinlegung war 1833, die Einweihung selbst fand im Juli 1834 statt. Der umfangreichere Neubau erhielt an der Frontseite einen repräsentativen Balkon sowie einen dreiseitigen Giebel. Bei den Kapitulationsverhandlungen 1866 (Hannover vs. Preußen) gastierte der König Georg V. von Hannover im Juni 1866 im Schützenhaus und der Kriegsrat besiegelte die Kapitulation. Im Nachhinein erfolgte die Benennung als „Königszimmer“ oder „Blaues Zimmer“. im Dezember 1906 wurde das gesamte Gebäude ein Raub der Flammen, glücklicherweise gab es.eine Entschädigungszahlung der ''Provinzial-Feuersozietät''. Das nach Bauplänen des hiesigen Stadtbaumeisters '''Ferdinand Kummer'' im November 1907 fertiggestellte Gebäude wurde mit Festbankett und Festball eingeweiht. Die veralteten Schießstände mussten auf königlichen Befehl erneuert und umzäunt werden. Im 1. Weltkrieg pausierten die Vereinsaktivitäten und das Schützenhaus wurde ab Herbst 1914 bis Anfang 1919 als Reservelazarett genutzt. Nach dem 2. Weltkrieg wurde das Schützenhaus von der Besatzungsmacht beschlagnahmt und 1946 mit dem Ziel der Errichtung eines Kulturzentrums der Sozialistischen Einheitspartei Deutschlands übertragen. Die Umbenennung des Gebäudes in Kulturhaus erfolgte schließlich Abfang Oktober 1952. Ab Januar 1961 wurde das geschlossene Kulturhaus in drei Bauabschnitten umgestaltet, die Gastronomie modernisiert. Mit einer symbolischen Schlüsselübergabe eröffnete das renovierte Kulturhaus Ende April 1962 und der Kulturhaus–Beirat kümmerte sich um die Nutzung. Der Kulturhausgarten wurde erstmals 1967 genutzt, die alte Kegelbahn 1978 abgerissen. Im Juni 1986 erfolgte einen Komplettumbau. Aufgrund von finanziellen und materiellen Engpässen wurden die Handwerker immer wieder unterbrochen, denn in den Wirren der Wendezeit versiegten die Geldquellen. Mit Hilfe von Bundes- und Landesmitteln konnte das Vorhaben eines modernen Kultur- und Kongresszentrums schließlich vollendet werden. Die Wiedereröffnung fand im Rahmen einer feierlichen Veranstaltung am 21. Februar 1992 statt. Der neue Name repräsentierte die kulturellen und künstlerischen Aspekte. In Vorbereitung des Landesprojektes ''Mensch–Natur–Städtebau'' wurde im Jahr 2009 das Kultur- und Kongresszentrum abermals umfangreich restauriert und modernisiert, insbesondere die Rosenlounge, die Außenfassade und der große Saal erstrahlen in neuem Glanz.
}}
=== Aussichtspunkt ===
[[Datei:Langensalza Dreitürmeblick.jpg|mini|Drei-Türme-Blick]]
[[Datei:LangensalzaDreitürmeblick2.JPG|mini|Blick durch die Skulptur]]
* {{vCard|name=Drei-Türme-Blick|type=viewpoint | lat = 51.1092 | long = 10.6417 |directions = vor der Gottesackerkirche neben dem Eingang in das Arboretum |url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/drei-tuerme-blick/ |description= Vom „Argusblick“ (die Skulptur wurde von dem Bad Langensalzaer Künstler [[w:Harald_Stieding|Harald Stieding]] geschaffen), einem aus Stein gehauenen Auge, das auf einer Travertinsäule thront, sind der Turm der einstigen Augustinerkirche, der Turm des Rathauses und schließlich der Turm der Marktkirche St. Bonifacii zu sehen. Diese drei Türme prägen die Ansicht der Kurstadt und sind immer wieder ein beliebtes Fotomotiv.
}}
=== Museen ===
[[Datei:Schild Wassermuseum vor Klagetor Bad Langensalza.jpg|mini|upright|Schild Wassermuseum mit dem Klagetor im Hintergrund]]
* {{vCard|name=Stadtmuseum im Augustinerkloster|type=museum|wikidata=Q76639038|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmuseum-im-augustinerkloster/|address=Augustinerplatz 1-2, 99947 Bad Langensalza|phone=+49 03603 813002|email=stadtmuseum@bad-langensalza.de|hours=Fr–So 13:00–17:00, Feiertagsregelungen beachten|price=Normal 5,00{{nnbsp}}€/Tag, erm. 4,00{{nnbsp}}€/Tag, Kinder und Schüler frei; Kombiticket Apotheken- und Stadtmuseum Erw. 8,00{{nnbsp}}€, erm. 6,00{{nnbsp}}€|lastedit=2026-04-01
}}
* {{vCard | name = Thüringer Apothekenmuseum | comment = im „Haus Rosenthal“ | type = museum | wikidata = Q20479980 | hours = Derzeit wie [[#vCard_Q76639038|Stadtmuseum]] | price = Wie [[#vCard_Q76639038|Stadtmuseum]] | lastedit = 2026-04-05 | description = Das historische Gebäude „Haus Rosenthal“ beherbergt seit Mai 2014 das Thüringer Apothekenmuseum. Die Besucher können im restaurierten Baudenkmal aus dem Jahr 1515, dessen Renovierung in einem FIlm gezeigt wird, u.{{nnbsp}}a. die historischen Wandvertäfelungen und zwei Holzstuben auf sich wirken lassen. Für die gelungene Sanierung erhielt die Stadt im Wettbewerb um den''Thüringer Holzbaupreis 2013'' eine Anerkennung sowie im Jahr 2015 den Thüringer Denkmalschutzpreis. Im Obergeschoss des Baudenkmals wird auf 276{{nnbsp}}m² eine Ausstellung zur Pharmaziegeschichte des 18. bis 20. Jahrhunderts präsentiert. In acht Räumen sind die verschiedenen Arbeitsbereiche einer alten Apotheke abgebildet. Neben einer Darstellung des Lebens und Wirkens des Langensalzaer Apothekers und Chemikers ''Johann Christian Wiegleb'' (1732–1800) werden Standgefäße aus Glas, Porzellan und Holz sowie eine Vielzahl an pharmazeutischen Arbeitsgeräten zur Herstellung von Arzneimitteln gezeigt. Das Museum ergänzt der angrenzende [[#vCard_Apothekergarten|Apothekergarten]], in dem mehr als 80 verschiedene, überwiegend heimische, Heilkräuter wachsen. Hinweis: Im Gebäude sind nur die Ausstellungen im Erdgeschoß sowie der Apothekergarten barrierefrei zu erreichen.
}}
* {{vCard | name = Rosenmuseum | comment = beim [[#vCard_Q112079448|Rosengarten]] | type = museum | address = Vor dem Klagetor 3, 99947 Bad Langensalza | directions = Zugang beim Kassenhäuschen des Rosengartens | lat = 51.11081 | long = 10.65237 | phone = +49 03603 834424 | hours = Wie [[#vCard_Q112079448|Rosengarten]] | lastedit = 2026-04-08 | description = Das Museum hat sich seit seiner Einrichtung kaum verändert und strahlt daher ein entsprechendes Flair aus, ist aber auch sehr informativ. Beispielsweise lernt man die In-vitro-Vermehrung von Rosen, bei der dünnste Scheiben von Rosenknospen steril in Nährmedien kultiviert werden, kennen, die die schnelle Produktion großer Mengen von Klonen ermöglicht. Das Museum soll beginnend mit der Saison 2026 sukzessive erneuert und mit modernen Medien ausgestattet werden.
}}
* {{vCard|name=Historische Druckerei|id=Historische_Druckerei|type=museum|lat=51.1092|long=10.6512|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/historische-druckerei/|hours=ganzjährig Di,Mi, Fr 9:00–12:00, sowie nach Vereinbarung|price=frei|description=Im Park des Friederikenschlösschens in der ehemaligen Kutscherremise befindet sich seit März 2008 die „Historische Druckerei“. Sie beherbergt heute u.{{nnbsp}}a. eine beeindruckende Handtiegelpresse aus dem Jahr 1854 sowie diverse Utensilien für den Handsatz und wird in kleinem Rahmen nach wie vor für Sonderdrucke genutzt. Die Druckerei kann an drei Tagen in der Woche vormittags ganzjährig besichtigt werden und die Besucher erhalten auf Wunsch von einem der sie betreuenden ehemaligen Setzer eine Führung mit der Möglichkeit, selbst ein Andenken zu drucken.}}
* {{vCard | name = Wassermuseum | type = museum | address = Hüngelsgasse 13, 99947 Bad Langensalza | lat = 51.11079 | long = 10.64951 | phone = +49 (0)3603 84070 | hours = Di 8:00–12:00, 13:30–17:30; Do 8:00–12:00, 13:30–15:30 | image = Wassermuseum Bad Langensalza.JPG | lastedit = 2026-04-07 | description = Betreiber: Verbandswasserwerk Bad Langensalza / Abwasserzweckverband (WAZV) "Mittlere Unstrut". Die beiden Google-Rezensionen des winzigen Museums im Eingangsbereich des Amtes innerhalb des letzten Jahres sind 5/5.
}}
=== Parks und Gärten ===
[[Datei:Bad Langensalza Arboretum Lageplan.jpg|mini|Lageplan Arboretum]]
[[Datei:Bad Langensalza Arboretum Pflanzensystematik.jpg|mini|Pflanzensystematik Arboretum]]
[[Datei:Bad Langensalza, japanischer Garten, Bild 8.jpg|mini|Japanischer Garten]]
[[Datei:Bad Langensalza 2022 - Rosengarten.jpg|mini|Rosengarten]]
[[Datei:Erblühende Magnolien am Wasserlauf vor Magnoliengarten Bad Langensalza.jpg|mini|Erblühende Magnolien am Wasserlauf vor dem Magnoliengarten]]
[[Datei:Ulmus parvifolia "Chinesische Kiefer" frei aufrechte Form Alter ca. 130 Jahre Japanischer Garten Bad Langensalza 02.jpg|mini|upright|Austreibender Bonsai Ulmus parvifolia „Chinesische Kiefer“, frei aufrechte Form, Alter ca. 130 Jahre, vor blühendem Baum im Japanischen Garten]]
Die Stadt besticht durch eine Vielzahl von [https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/ Parks und Gärten]:
* {{vCard | name = Arboretum | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/arboretum/ | lat = 51.10834 | long = 10.63949 | hours = Mär,Okt: täglich 10:00–18:00, Apr–Sep: täglich 10:00–19:00, Nov–Feb: geschlossen | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Das Arboretum (Baumgarten) ist eine geschichtsträchtige Parkanlage. Es lädt neben Entspannung und Erholung zum bummeln durch die Vielfalt an Bäumen und Sträuchern ein. Hier ist der Jahrezeitenwechsel am deutlichsten von allen Gärten der Stadt zu erleben. So zeigt sich das Arboretum von von Mitte März bis Oktober im bunten Blüten- und Blätterkleid. Auch bevor die Bäume ausschlagen bereichern den Garten zur Frühjahrsblüte durch früh blühende [[w:Magnolien|Magnolien]] und [[w:Frühjahrsblüher|Frühjahrsblüher]] mehr als nur einzelne Farbtupfer. Im Arboretum wachsen über 200 verschiedene Arten von [[w:Gehölz|Gehölz]]en, die zu mehr als 20 Pflanzenfamilien gehören. Eine umfangreiche Erweiterung der Gehölzsammlung konnte fast ausschließlich durch Spenden von Bürgern, Unternehmen und Institutionen realisiert werden. Ergänzt wird der Eindruck durch die zwölf Skulpturen aus Holz und Muschelkalk von neun Künstlern aus vier Ländern sowie einem Zeugnis der Stadtgeschichte, dem ''Hannoveraner Denkmal'', das an die Schlacht bei Langensalza 1866 erinnert. Die ebenfalls dort befindliche [[#vCard_Q16857154|Gottesackerkirche]] aus dem Jahr 1734 (von 2008–2009 saniert) wird als Konzertkirche ''St. Trinitatis'' genutzt. Das Arboretum ist zusätzlich zu einem Lageplan reichlich mit Text und Systematiken auf Schautafeln beschildert, so dass man viel über die [[w:Systematik des Pflanzenreichs|Systematik des Pflanzenreichs]] erfährt und die Gehölze entsprechend leicht finden und zuordnen kann. | id = Arboretum
}}
* {{vCard | name = Botanischer Garten ''Garten der Vielfalt'' | type = botanical garden | wikidata = Q4948492 | hours = Mai–Okt täglich 10:00–18:00 | price = frei | subtype = nodogs | lastedit = 2026-04-11 | description = Der Garten mit einem Sukkulentenhaus im Zentrum ist nach dem Umbau der ''[[#vCard_Friederiken Therme|Friederiken Therme]]'' seit 2025 erneut geöffnet und beinhaltet auch ein Kneippsches Tretbecken; insbesondere der Alpingarten (Alpinum) und die Gräserlandschaft werden zurzeit wieder neu angelegt. Besonders beeindrucken die teils sehr großen Goldkugelkakteen („Schwiegermuttersitz“ bzw. „-stuhl“).
}}
* {{vCard | name = Japanischer Garten ''Garten der Glückseligkeit'' | name-local = (jap. 幸福の庭, Kōfuku no niwa | alt = genauer ein [[w:Japanischer Wandelgarten|Japanischer Wandelgarten]] | type = garden | wikidata = Q26821540 | hours = Mär, Okt: täglich 10:00–18:00; Apr-Sep: täglich 10:00–19:00 | price = ab 12 J. 6,00 €/Tag, erm. 5,00 €/Tag; Feierabendticket (ab 17:00) 4,00 €/Tag; Kombiticket (alle Gärten, Stadt- und Apothekenmuseum) 20,00 €/Tag, erm. 16,00 €/Tag; bei Sonderveranstaltungen teils andere Preise | subtype = nodogs | lastedit = 2026-04-05 | description = Besucher tauchen ein in die Harmonie der Stille der verschiedenen Landschaften. Das Wasser hat eine wichtige symbolische Bedeutung: Wellenbewegungen fließen vom Wasserfall über den Teich in den Trockenbach, Pflanzen und Steine führen die Bewegung weiter. Im Kontrast zur Teichlandschaft steht die Trockenlandschaft. Ein Pflanzenpavillon mit Teehaus und der „Pavillon des Teetrinkens“, in dem ohne Zeremonie grüner Tee gereicht wird, ergänzen das Ensemble. Im April beginnen die Kirsch- und Magnoilienblüte, im Mai blüht die Azaleenlandschaft, Iris und Seerosen folgen im Juni. Es finden diverse Veranstaltungen (mit Vorführung japanischer Kampf- und Trommelkünste, Origami, Sushi uvm.) statt: Hanami Kirschblütenfest (April, aktuell 25. April 2026), Kodomo NoHi Kinderfest (Mai), Märchenfest (Juni), Tanabata Sternenfest (Juli). Im Dezember 2025 wurde zudem erstmalig (innerhalb der eigentlich üblichen Schließzeit November bis Februar) eine ''Fernöstliche Lichter-Poesie'' veranstaltet. Bei dieser wurde der Garten mit wechselnden Lichtfarben beleuchtet, es gab zwei Videoprojektionen u.{{nnbsp}}a. mit Videos und Bildern über den Garten sowie Musikuntermalung. Nach Aussage der Mitarbeiter war die Veranstaltung so gut besucht, dass sie vsl. in den kommenden Jahren wiederholt wird.
}}
* {{vCard|name=Kurpark|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/kurpark/|lat=51.10881|long=10.65008|hours=24/7|price=frei|lastedit=2026-03-05|description=Der Park liegt teilweise entlang der Stadtmauer und ist zur Hälfte von einem kleinen Wasserlauf durchzogen. Am einen Ende befindet sich ein künstlicher Wasserfall, und der Weg führt dann vorbei am Friederikenschlösschen, einem Kinderspielplatz, dem Abzweig zum Rosengarten, weiter zwischen dem Japanischen Garten und dem Natur!Gärten und geht dann in den Weg zum Magnoliengarten und den Botanischen Garten über. Blumenbeete, zugeschnittene Bäume und Bögen aus Büschen, unter denen man durchgehen kann, bereichern das Ambiente.}}
* {{vCard | name = Rosengarten ''Garten der Liebe'' | comment = Zugang zum [[#vCard_Rosencafé|Rosencafé]] direkt vom Garten aus | type = garden | wikidata = Q112079448 | hours = Mai-Sep: täglich 10:00–19:00; Okt: täglich 10:00-–8:00 | price = Wie [[#vCard_Q26821540|Japanischer Garten]] | subtype = parking, nodogs | lastedit = 2026-04-17 | description = Auf 18.000 qm erblühen und duften fast 450 Rosenarten wie historische und Englische Rosen, Wildrosen und Edelrosen, Rosenhochstämme und Kleinstrauchrosen; besonders sehenswert ist die Sammlung der Bad Langensalzaer Rosen (1950–990 wurden hier allein 91 Rosensorten gezüchtet. Anni Berger, die einzige Rosenzüchterin Deutschlands, war in Bad Langensalza tätig. Sie ist Namensgeberin einer Stiftung, die die Rosentradition, Denkmalpflege und Umweltschutz fördert – vgl. Anni-Berger-Stiftung.de), Skulpturen der Künstler Gert van Acker und Harald Stieding ergänzen das Gartenbild. Da auch die Vorgärten und die Stadtplätze vielfältige Rosen zieren, verwundert es nicht, dass 2002 der Stadt das Prädikat „Rosenstadt“ verliehen wurde.
}}
* {{vCard | name = Magnoliengarten | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/magnoliengarten/ | lat = 51.11366 | long = 10.64912 | hours = 24/7 | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Der 2006 eröffnete Magnoliengarten zeigt auf 1.500 qm mehr als 30 Magnolienarten, die von März bis Juli blühen – eine Zaubernuss beginnt den Blütenreigen. Magnolien gehören mit zu den ältesten Blütenpflanzen der Erde (vor der Eiszeit auch in Europa heimisch!), die heute in Ostasien und Amerika zu finden sind. Ergänzt werden sie durch Hortensien, Waldreben, Ginkgobäume sowie Blumen und Sträucher, teils auf einem kleinen Hügel als weiteres gestalterisches Element.
}}
* {{vCard | name = Schlösschenpark | comment = des [[#vCard_Q19279910|Friederikenschlösschens]] | type = park | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/schloesschenpark/ | lat = 51.10892 | long = 10.65177 | price = frei | lastedit = 2026-04-05 | description = Der von der der Herzogin Friederike von Sachsen-Weißenfels terrassenartig angelegte kleine Park aus der Mitte des 18. Jahrhunderts mit Blick auf das Schlösschen lädt zum Verweilen ein. Im hinteren Teil des Gartens ist ein historischer Gartenpavillon aus dem Jahr 1878 erhalten. Dort sprudelt aus einem Bronzebecken Schwefelwasser, das seit 1812 in der Kurstadt Bad Langensalza als Heilwasser verwendet wird. In der ehemaligen Remise befindet sich eine [[#vCard_Historische_Druckerei|historische Druckerei]].
}}
* {{vCard | name = Apothekergarten | alt = ''Garten der Heilkräuter'' | comment = beim [[#vCard_Q20479980|Apothekenmuseum]] | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/apothekergarten/ | lat = 51.11016 | long = 10.64459 | hours = Wie Apothekenmuseum, in der Wintersaison geschlossen | lastedit = 2026-04-05 | description = Der Apothekergarten hinter dem „Haus Rosenthal“ (daher nur über das Apothekenmuseum zugänglich) zeigt eine Auswahl an in Mitteldeutschland heimischer Pflanzen, die immer noch zur Herstellung von Arzneidrogen verwendet werden. Die Heilpflanzen sind in neun Beeten nach ihren Anwendungen bzw. medizinischer Indikation geordnet und beschildert. Umsäumt werden die Kräuterbeete von Blumen (Rosen brauchen in Bad Langensalza gar nicht extra erwähnt werden) sowie einigen Obstbäumen und Sträuchern. | id = Apothekergarten
}}
* {{vCard | name = Natur!Garten | comment = betrieben vom [[w:Bund_für_Umwelt_und_Naturschutz_Deutschland|BUND]] Ortsverband Bad Langensalza[https://badlangensalza.bund.net/]. Das '''Café'''[https://baeckerei-esche.de/bund-naturgarten-cafe/] im Garten hat '''kürzere''' Öffnungszeiten: Apr–Okt Mi–Fr 13:00–17:00, Sa/So/Fe bis 18:00 | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/naturgarten/ | lat = 51.1121 | long = 10.6489 | hours = Mär–Okt: täglich 8:00–18:00 | price = frei | lastedit = 2026-04-05 | description = Der 1.600 m² große Garten ermöglicht es, die Natur anzufassen (-> einheimische Pflanzen und Insekten). Er besteht seit 1994 auf und wurde 2019/20 neu gestaltet, dazu gehörten ein Pflanzenbestand mit über 1.000 neuen einheimischen bzw. für einen Bauerngarten typische Blumenzwiebeln, Stauden und Gehölze. Der Garten dient auch der Umweltbildung und verbindet einen nachhaltigen Bauerngarten (zentrales Brunnenhäuschen, Obst- und Gemüsebeete, Kräuterbank, klassische Bauerngarten-Blumenbeete, Färberpflanzen, Kompost) mit einem reinen Naturgarten (Blumenrasen, Wild-Stauden-Wall, „Beet der Flatterlinge“, Teich mit Sumpfwiese, Benjes-Hecke, größter Mirabellen-Baum und höchster Holunder-Strauch von Bad Langensalza). Kinder dürfen spielen und die Natur erforschen, Erwachsene erhalten Anregungen für eine naturnahe Gartengestaltung. Nätürlich ist auch für Verweilplätze gesorgt. Last but not least erreicht man durch den Garten das '''einzige begehbare Stück Stadtmauer-Wehrgang''' und zwei Stadtmauertürme. Zur nach ökologischen Gesichtspunkten sanierten Stadtmauer gehören im Stadtmauer-Rundturm ein „Raum der Stille“ und im Eckturm die Lese-Ecken.
}}
* {{vCard|name=TRACO Park|alt=Garten des Travertins|comment=betrieben von der Firma [https://traco.de/ TRACO]|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/traco-park/|address=Poststraße 17, 99947 Bad Langensalza|lat=51.1039|long=10.6377|phone=+49 (0)3603 8520|hours=Mo–Fr 9:00–18:00, Sa 10:00–13:00, in den Wintermonaten verkürzt|price=frei|subtype=wheelchair, free parking|lastedit=2026-04-10|description=Ausstellungsgarten zeigt breites Spektrum der natürlichen und ästhetischen Garten- und Landschaftsgestaltung mit Sandstein, Muschelkalk und Travertin aus firmeneigenen Steinbrüchen bei Weimar, Gotha und Bad Langensalza: Mauern, Treppen, Wege, Wasserkunst….}}
== Aktivitäten ==
* {{vCard | name = Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | lat = 51.11442 | long = 10.64683 | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = ''Thermalbad+Sauna'': So–Mi 10:00–21:00, Do–Sa 10:00–22:00 | price = ab 5{{nnbsp}}J komplexes Preissystem: Bad, Sauna, Kombitarife, Spättarife, Rabatte, s. Webseite | lastedit = 2026-04-13 | description = (Kinder bis zur Vollendung des 12.{{nnbsp}}Lebensjahres nur in Begleitung Erwachsener.) Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT).
}}
* {{vCard | name = Kino ''Burgtheater'' | type = cinema | url = https://burg-theater.de/ | address = Vor dem Schlosse 5e, 99947 Bad Langensalza | lat = 51.10903 | long = 10.64725 | phone = +49 (0)3603 846206 | fax = +49 (0)3212 1080916 | email = kino@burg-theater.de | hours = Tageweise Mo-So, teils ab 12:15, letzte Vorstellung 20:00 | price = 6,50–10 €; Aufschläge: ab 120 min +0,50 €, ab 140 min +1 €, 3D–Filme +2,50 €, teils Kinderermäßigungen vor 19:00; Di. Kinotag (nicht feiertags) | lastedit = 2026-04-08
}}
* {{vCard | name = Kindererlebniswelt ''Rumpelburg'' | type = children | url = https://kindererlebniswelt-rumpelburg.de/ | address = Sperlingsgasse 4, 99947 Bad Langensalza | lat = 51.10664 | long = 10.64754 | phone = +49 (0)3603 398-4604 | email = info@kindererlebniswelt-rumpelburg.de | hours = Di–Fr 14:00–18:00, Sa 10:00–18:00, So 10:00–17:00, auf Vorbestellung für Gruppen Di–Fr 10:00–13:00, Schließzeiten beachten (ges. Feiertage, Sommer-Betriebsferien, Weihnachtsferien) | price = 0–1J frei, 1–2J 3,50{{nnbsp}}€/1{{nnbsp}}Std, ab 2J/Erw. 4,00{{nnbsp}}€/1{{nnbsp}}Std, Rabatte/Sonderaktionen s. Webseite | lastedit = 2026-04-10 | description = Klettern, rutschen und toben in einer fantastischen Welt mit Spiel, Spaß und Entdeckungen. Netzbrücken, geheimnisvolle Baumhäuser, riesige Puppenstube und wilde Rutschpartien – Abwechslung bei jedem Wetter für Groß und Klein. Ereignisreiche Stunden durch verschiedene Rollen spielerisch erleben in: Spielhaus, Schiff, Tiergehege mit Holztieren oder Spielstadt. Aufmerksame Kinder entdecken vielleicht die geheimnisvollen Rumpelburgbewohner: Rosentroll Puck, Wasserelfe Tine oder Rumpel, das Gespenst.
}}
* Die Stadt veranstaltet insbesondere in der [[Bad Langensalza#vCard Q16857154|Konzertkirche]], dem [[Bad Langensalza#vCard Kongress- und Kulturzentrum Bad Langensalza|Kongress- und Kulturzentrum Bad Langensalza]] sowie an anderen Orten diverse '''Events''' wie beispielsweise Konzerte, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender Eventkalender].
* '''[https://badlangensalza.de/kur-tourismus/planen-buchen/veranstaltungen/veranstaltungshighlights/mittelalterstadtfest/ Mittelalterstadtfest]''' mit Handwerker- und Händlerständen, Musik- und Kleinkunstprogramm sowie Schaukämpfen am letzten Augustwochenende (aktuell 29./30. August 2026)
* Im ''Japanischen Garten'' finden diverse Veranstaltungen statt (Details finden sich beim [[#vCard_Q26821540|Japanischen Garten]]):
** '''Hanami Kirschblütenfest''' (April)
** '''Kodomo NoHi Kinderfest''' (Mai)
** '''Märchenfest''' (Juni)
** '''Tanabata Sternenfest''' (Juli)
** '''Fernöstliche Lichter-Poesie''': Sie wurde im Dezember 2025 (innerhalb der eigentlich üblichen Schließzeit November bis Februar) erstmalig veranstaltet und wird vsl. in den kommenden Jahren wiederholt.
* {{vCard | name = Flugplatz Bad Langensalza | type = landing site | wikidata = Q2900762 | directions = 3{{nnbsp}}km nordwestlich von Bad Langensalza | show = copy| price = Schnupperflug ab 30 €; ''Pilot für einen Tag'' (ca. 3 Std.) 199 € | lastedit = 2026-04-04 | description = Er wurde 1927 errichtet und von der [[w:Wehrmacht|Wehrmacht]] genutzt. Aktuell wird der [[w:Sonderlandeplatz|Sonderlandeplatz]] vom Flugsportverein ''„Otto Lilienthal“ Bad Langensalza e.{{nnbsp}}V.'' betrieben. Er verfügt über eine Gras-Start- und Landebahn mit der Größe 800{{nnbsp}}m × 40{{nnbsp}}m. Angebote: Segelflug, Ultraleichtflug (UL-Flug), Rundflüge und Gastflüge.
}}
== Einkaufen ==
Es gibt Bad in Langensalza das typische Angebot einer Kleinstadt. Spezielle lokale Reisesouvenirs sind hier zu erwerben.
* {{vCard|name=Wochenmarkt|type=market|url=https://citymanagement-badlangensalza.de/events/wochenmarkt/|address=Fußgängerzone|lat=51.1086|long=10.6454|hours=Mi 8:00–14:00|lastedit=2026-04-06|description=Auf dem Wochenmarkt gibt es nicht nur frisches Obst und Gemüse, Geflügel und Fisch, Backwaren, Eier und Teigwaren, Wurst- und Käsesorten, Pasti und Antipasti, Gewürze, Kräuter, Honig und Marmeladen sowie Blumen und Pflanzen zu kaufen, man kann dort auch diverse warme Gerichte gleich essen oder mitnehmen. Viele der Angebote stammen dabei aus der Region. Für eine thüringer Stadt eher ungewöhnlich erhält man als eine der beiden je eintägigen Möglichkeiten im Ort ''[[w:Thüringer Rostbratwürste|Thüringer Rostbratwürste]]'' in einer Semmel (gute Wurst, sehr gutes Brötchen, 3{{nnbsp}}€).}}
* {{vCard | name = Buchhandlung ''Buchgeschwister'' | type = book seller | url = https://www.genialokal.de/buchhandlung/bad-langensalza/buchgeschwister/ | address = Mühlhäuser Str. 39, 99947 Bad Langensalza | lat = 51.10895 | long = 10.64475 | phone = +49 (0)3603 842449 | email = kontakt@buchgeschwister.com | instagram = buchgeschwister.lsz | hours = Di–Fr 10:00–13:00, 14:00–17:00, Sa 10:00–13:00 | image = Buchhandlung "Buchgeschwister" Bad Langensalza.jpg | lastedit = 2026-04-09 | description = sehr persönliche Beratung.
}}
== Küche ==
Bei vielen Cafés und Restaurants kann man auch draußen sitzen. Letztere haben oft werktags ein Mittagsangebot.
* {{vCard | name = Café Schwesterherz | comment = Gegründet von den Schwestern Anni und Ulrike | type = cafe | url = https://cafe-schwesterherz.jimdofree.com/ | address = Mühlhäuser Str. 2, 99947 Bad Langensalza | lat = 51.10878 | long = 10.64463 | phone = +49 (0)3603 3989345 | email = Cafe-Schwesterherz@freenet.de | hours = Di–Fr 9:00–17:30, 2.+4. Sa im Monat 9:30—17:00, 1.+3. Sa im Monat 9:30—12:30 | image = Cafe Schwesterherz Bad Langensalza.jpg | lastedit = 2026-04-08 | description = Uriges Ambiente mit der Möglichkeit, schöne Dinge zu erwerben und auch draußen zu sitzen. Eine der Spezialitäten sind nach dem Motto ''Kuchen wie bei Omi'' selbstgebackene Kuchen. Die ausführlichen Rezensionen des Cafés (Google 4,8/5) sprechen oft von begeisterten Besuchern. Um sicher einen Platz zu bekommen ist eine Reservierung empfehlenswert.
}}
* {{vCard | name = Rosencafé | type = restaurant | url = https://www.rosencafe-bad-langensalza.de/ | address = Am Rosengarten 11, 99947 Bad Langensalza | directions = Direkt am [[#vCard_Q112079448|Rosengarten]], Zugangsmöglichkeit von dort aus, zurück benötigt man die Eintrittskarte für das Drehkreuz. Eingang auch vom neuen Wohngebiet aus. | lat = 51.11224 | long = 10.65247 | phone = +49 (0)3603 891601 | email = info@rosencafe-bad-langensalza.de | hours = Do–So 10:00–17:00, bis 15:00 warme Küche | subtype = accessible, parking | lastedit = 2026-04-17
}}
* {{vCard | name = Ristorante Venezia | type = restaurant | url = https://www.venezia-restaurant.de/ | address = Marktstraße 31, 99947 Bad Langensalza | lat = 51.10820 | long = 10.64577 | phone = +49 03603 895469 | fax = +49 03603 8969308 | hours = tägl. 10:00–0:00, warme Küche durchgehend 11:00–23:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Villa Italia | type = restaurant | url = https://www.villa-italia.de/ | address = Kurpromenade 5a, 99947 Bad Langensalza | lat = 51.10838 | long = 10.65071 | phone = +49 03603 892861 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Punjabi Bad'sha | alt = Indisches Restaurant & Eiscafe | type = restaurant | url = https://www.punjabi-badshah.de/ | address = Kornmarkt 2, 99947 Bad Langensalza | lat = 51.10761 | long = 10.64739 | phone = +49 (0)36031 279246 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Herkules | type = restaurant | address = Steinweg 11, 99947 Bad Langensalza | lat = 51.10547 | long = 10.64209 | phone = +49 03603 1277321 | facebook = Restaurant.Herkules | hours = Di–Fr 17:00—23:00; Sa,So 11:30—14:30 und 17:00—23:00 | subtype = greek | lastedit = 2026-04-06 | description = Beliebter Grieche in passendem Ambiente.
}}
* {{vCard | name = Pizzeria Flamingo | type = restaurant | address = Steingrubenstraße 7, 99947 Bad Langensalza | lat = 51.10656 | long = 10.64428 | phone = +49 03603 1277589 | instagram = pizzeriaflamingoo | hours = Mo–Sa 10:30–21:30, So 13:00–21:30 | lastedit = 2026-04-06
}}
* {{vCard | name = PHANtastic | alt = Asian Fusion | comment = Gästeparkplatz hinten im Schlosshof 3, 99947 Bad Langensalza | type = restaurant | address = Marktstraße 3, 99947 Bad Langensalza | lat = 51.10866 | long = 10.64578 | phone = +49 (0)3603 8955218 | hours = Di–Sa 10:30–22:00, So 11:30–22:00, Mo nur feiertags geöffnet | lastedit = 2026-04-17 | description = Neueröffnung 11.4.2026, Aktionsangebot 11.4.–19.4.2026 15% Rabatt.
}}
* {{vCard | name = Ratswaage | alt = Restaurant, Bier– und Weinkeller | type = restaurant | url = https://ratswaage-lsz.de/ | address = Mühlhäuser Straße 40, 99947 Bad Langensalza | directions = Der Ratskeller liegt im historischen Stadtzentrum. | lat = 51.10893 | long = 10.64494 | phone = +49 (0)3603 8955310 | email = info@ratswaage-lsz.de | hours = tägl. 11:00–14:30, 17:00–23:00 | image = Restaurant Ratswaage Bad Langensalza.jpg | lastedit = 2026-04-17
}}
* {{vCard|name=Asia Food & Salza Grill|type=restaurant|address=Rathausstraße 9, 99947 Bad Langensalza|lat=51.10818|long=10.64437|phone=+49 (0)3603 84 86 16|hours=Mo–Fr 11:00–21:00, So/Fe 11:00–21:00|price=günstig|payment=derzeit nur Barzahlung|subtype=asian, grill, takeaway|lastedit=2026-04-09|description=alle Speisen auch zum Mitnehmen, ein paar Tische innen und ein paar draußen, Personal freundlich, Essen gut, „große Portion“ heißt zu Recht so!
}}
* {{vCard | name = Schnitzel-Steak-Haus | type = restaurant | url = https://schnitzel-steak-haus.metro.rest/?lang=de | address = Marktstraße 19, 99947 Bad Langensalza | lat = 51.10830 | long = 10.64739 | phone = +49 (0)3603 896970 | email = dido2004@abv.bg | hours = Mo–So 10:00–22:00 | lastedit = 2026-04-10 | description = Jede Woche ein Mittagsmenü: typischerweise Suppe, zwei verschiedene Hauptgerichte, Eis.
}}
== Nachtleben ==
== Unterkunft ==
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig für Übernachtungsgäste eine [[#Kurtaxe|Kurtaxe]]. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza.
* {{vCard | name = Hotel Sante Royale | type = hotel, restaurant | url = https://www.sante-royale.de/hotels/bad-langensalza | address = Parkstraße 1, 99947 Bad Langensalza | lat = 51.11412 | long = 10.64527 | tollfree = +49 0800 9022090 | email = info.badlangensalza@sante-royale.com | subtype = 4, free wlan, restaurant, sauna, spa, dogs, indoor pool, outdoor pool | lastedit = 2026-04-07 | description = Großes, modernes Hotel mit 130 Zimmern und Suiten.
}}
* {{vCard| type = hotel |name=Hotel L.A. CHICAGO|address=Tonnaerstraße 33, 99947 Bad Langensalza |phone=+49 03603 856836|email=info@lachicago.de|fax=+49 03603 856837|url=http://www.lachicago.de |hours=|price= |lat=51.10675 |long=10.65281
}}
* {{vCard| type = hotel |name=Zur Lohgerberei |address=Löbersgasse 2, 99947 Bad Langensalza |phone=+49 03603 846131 |email=kontakt@pension-zur-lohgerberei.de |fax=+49 03603 894344 |url=http://www.pension-zur-lohgerberei.de/ |hours=|price=EZ ab 37 €, DZ ab 27 € (jeweils inkl. Frühstück). |lat=51.11096 |long=10.64662 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Zöllner |address=Steinweg 1, 99947 Bad Langensalza |phone=+49 03603 815664 |email=info@pension-zoellner-thueringen.de |fax= |url=http://www.pension-zoellner-thueringen.de/ |hours=|price=EZ ab 30 €, DZ ab 50 € (jeweils inkl. Frühstück). |lat=51.10611 |long=10.64204 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Bergstube |address=Bergstraße 7, 99947 Bad Langensalza |phone=+49 03603 846980 |email=j.schroe@tonline.de |fax=+49 03603 814132 |url=http://bergstube.de/ |hours=|price=EZ ab 35 €, DZ als EZ ab 43 €, DZ ab 55 €. |lat=51.13836 |long=10.63443 |lastedit= |description=
}}
* {{vCard| type = hotel |name=Gasthaus zur Weintraube |address=Mühlhäuser Straße 11, 99947 Bad Langensalza |phone=+49 03603 846133 |email=info@zur-weintraube.de |fax=+49 03603 892830 |url=http://zur-weintraube.de/ |hours= Gasthaus: tägl. ab 10:00 |price=EZ ab 35 €, DZ ab 65 € (jeweils inkl. Frühstück. |lat=51.10943 |long=10.64351 |lastedit=|description=
}}
== Sicherheit ==
* {{vCard|name=Polizeistation |wikidata=|type=police |address=Bahnhofstraße 3, 99947 Bad Langensalza |phone=+49 03603 8310 |email=|fax=|url=|hours=|price=|lat=51.10375 |long=10.64196 |lastedit=|description=}}
== Gesundheit ==
=== Krankenhäuser ===
* {{vCard | name = Hufelandklinik | type = hospital | wikidata = Q107295076 | hours = 24/7 (Notaufnahme) | lastedit = 2026-04-06
}}
* {{vCard|name=Rehaklinik |wikidata=|type=hospital |address=Kurpromenade 6-8, 99947 Bad Langensalza |phone=+49 03603 8030 |email=info@rehaklinik-badlangensalza.de |fax=+49 03603 803100 |url=https://www.rehaklinik-badlangensalza.de/ |hours=|price=|lat=51.10941 |long=10.65063 |lastedit=|description=
}}
=== Sonstiges ===
Es gibt im Ort ein Ärztehaus, ein Medizinisches Versorgungszentrum (MVZ), dieserse Arztpraxen, Zahnärzte sowie drei Apotheken und zwei Sanitätshäuser.
* {{vCard | name = Therapie- und Kurbereich mit MTT der Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = '''Therapie+Kurbereich'': Mo—Fr 7:30—19:30 und nach Vereinbarung; ''Medizinische Trainingstherapie'': Mo—Fr 9:00—19:30 und nach Vereinbarung, Sep—Feb zusätzlich Sa 10:00—14:00 (außer an Feiertagen) | lastedit = 2026-04-13 | description = Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT). | copy-marker = Friederiken Therme
}}
== Praktische Hinweise ==
* {{vCard|name=Touristinformation Langensalza|type=tourist information|url=https://badlangensalza.de/kur-tourismus/service-info/touristinfo/|address=Bei der Marktkirche 11, 99947 Bad Langensalza|lat=51.10791|long=10.64866|phone=+49 (0)3603 834424|fax=+49 (0)3603 834421|email=touristinfo@badlangensalza.de|hours=Apr—Okt: Mo—Fr 9:00—18:00, Sa/So 10:00—16:00, Fe 10:00—14:00; Nov—Mär: Mo-Fr 9:00—17:00, Sa/Fe 10:00—14:00, So geschlossen}}
* Die Stadt bietet an diversen Orten '''kostenloses WLAN''' namens [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/w-langensalza/ W-LANgensalza]. Es gibt einen [https://badlangensalza.de/core/webp-express/webp-images/uploads/sites/2/2024/03/csm_Stadtplan-WLAN_65049e16b6.jpg.webp Stadtplan mit den eingezeichneten Hotspots], zur Verfügung steht es hier:
** Kultur- und Kongresszentrum
** An der Alten Post/Jahnplatz
** Wiebeckplatz, Ecke Lange Straße
** Rathaus
** Bei der Marktkirche
** Parkplatz am Ende der Friedrich-Mann-Straße
** Kornmarkt
** Touristeninformation
* Stadtführungen werden angeboten. Die Informationen dazu sind bei der Tourismusinformation zu erfragen.
* Die Filiale der Post befindet sich in der Tonnaer Straße 38.
=== Kurtaxe ===
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [https://badlangensalza.de/kur-tourismus/planen-buchen/gaestekarte/ Kurtaxe]. Sie beträgt für Erwachsene 3,00{{nnbsp}}€/Übernachtung, für Kinder im Alter von 6 bis 15 Jahren 1,50{{nnbsp}}€/Übernachtung. Für Schwerbehinderte und Blinde mit Schwerbehindertenausweis wird der Kurbeitrag um 50{{nnbsp}}% ermäßigt. Erwerbsunfähige Kriegsbeschädigte und Begleitpersonen von Schwerbehinderten sind von der Kurtaxe befreit. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza. Details: [https://badlangensalza.de/storage/sites/2/2025/03/Kurbeitragssatzung.pdf Kurbeitragssatzung der Stadt Bad Langensalza (pdf)]
== Ausflüge ==
* Der [[Nationalpark Hainich]] mit dem [[w:Baumkronenpfad_Hainich|Baumkronenpfad]] ([https://www.nationalpark-hainich.de/de/ausflugsziele/baumkronenpfad.html Webseite des Nationalparks], [https://www.baumkronen-pfad.de/ Webseite Bad Langensalza]) an der [[w:Thiemsburg|Thiemsburg]] liegt nur wenige Kilometer südlich der Stadt.
* [[Eisenach]] mit der [[w:Wartburg|Wartburg]] ist mit dem Auto in weniger als 30 Minuten zu erreichen.
<!--
== Literatur ==
-->
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.10806| long= 10.64667| radius= }}
{{IstInKat|Thüringen||Thüringer Kernland||Kurort in Thüringen}}
ratw2nfsclg5c2mqikjxkov66vlro4y
1769216
1769215
2026-04-17T11:47:03Z
Ousw
57729
/* Küche */ Geänderte vCard für Café Schwesterherz – richtige -
1769216
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/ Touristinformation]
| TouriInfoTel = +49 (0)3603 834424
}}
Die Kur- und Rosenstadt '''Bad Langensalza''' ist eine ehemalige Kreisstadt am Nordwestrand des [[Thüringer Kernland|Thüringer Beckens]]. Neben einer Therme und zwei Kliniken kennzeichen die Stadt besonders ihre historische Altstadt, zehn Parks und Gärten, die teils ganzjährig zum Besuch einladen, sowie die Blumenpracht im gesamten Ort.
== Hintergrund ==
{{Mapframe|51.10806| long= 10.646|zoom=14|height=300|width=300|type=geoline}}
Bad Langensalza (bis 1956: Langensalza) ist ein Schwefel-Sole-Heilbad und staatlich anerkannter Kurort. Zu Beginn des 9. Jahrhunderts wurde erstmals ein Ort namens Salza – im lateinischen Text Salzaha – urkundlich erwähnt. Bad Langensalza gehört zu den historisch bedeutendsten Städten im Thüringer Becken, wovon die reichhaltige historische Bausubstanz in der Altstadt zeugt. Als eine der Waidstädte war Bad Langensalza sehr wohlhabend, sodass große Kirchen und eine mächtige Stadtmauer aus Langensalzaer Travertin, der direkt im Südwesten der Altstadt abgebaut werden konnte, errichtet wurden. Um 1300 wurde die Stadtmauer mit vier Eingangstoren fertiggestellt. Ein verheerender Stadtbrand legte 1711 Teile der Altstadt in Schutt und Asche. Die im prachtvollen Barockstil an ihrer Stelle entstandenen Bürgerhäuser prägen noch heute das Bild der Stadt. Heute sind von der ältesten Stadtbefestigung noch vier Stadtmauertürme erhalten.
Bekannt ist die Stadt auch für die [[w:Schlacht_bei_Langensalza|Schlacht bei Langensalza]] zwischen Preussen und Hannover 1866, in deren Folge Preussen Hannover annektierte. Im [[#vCard_Arboretum|Arboretum]] steht das daran erinnernde [[w:Langensalza-Denkmal_(Bad_Langensalza)|Denkmal]] der Stadt.
Im Juni 1938 wurde im Reinhardbrunner Hof eine antisemitische Hetzausstellung gezeigt. Ebenso wurden Sinti- und Roma-Familien verfolgt, von denen einige im KZ Langensalza, einem Außenlager des KZ Buchenwald, inhaftiert waren. Dort mussten insgesamt etwa 1300 ausländische Frauen und Männer Zwangsarbeit für ein Projekt der Junkers verrichten. Am 5. April 1945 wurde Langensalza durch amerikanische Truppen besetzt und Anfang Juli an die Rote Armee übergeben. So wurde es Teil der Sowjetischen Besatzungszone (SBZ) und ab 1949 der DDR.
Seit dem 28. Juni 1956 trägt Langensalza den Namenszusatz Bad. Seit 1990 wurde die Altstadt zu einem großen Teil restauriert. Später konnten in der Stadt Heilquellen erschlossen werden, die bis heute dem Kurbetrieb dienen. Damit einher ging die Anlage mehrerer Parks, wie Rosengarten und Japanischer Garten. Seit dem 22. Juni 2002 nennt sich Bad Langensalza „Rosenstadt“. Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [[#Kurtaxe|Kurtaxe]].
== Anreise ==
=== Mit dem Flugzeug ===
* Die nächstgelegenen Verkehrsflughäfen mit Linienverkehr sind der {{marker|type = airport|name = Flughafen Leipzig Halle |wikidata = Q668382}} und der {{marker|type = airport|name = Flughafen Frankfurt am Main|wikidata = Q46033}}.
* Auf dem in ca. 65{{nnbsp}}km entfernten {{marker | type = airport | name = Flughafen Erfurt–Weimar | wikidata = Q703794}} starten und landen mittlerweile nur noch Chartermaschinen. Er ist aber weiterhin für Geschäfts- und Sportflieger offen.
* {{vCard|name=Flugplatz Bad Langensalza|type=landing site|wikidata=Q2900762|directions=ca. 3{{nnbsp}}km nördlich|description=Der als [[w:Sonderlandeplatz|Sonderlandeplatz]] klassifizierte Fluplatz verfügt über eine 800{{nnbsp}}m lange Graslandebahn und kann von Ultraleichtfliegern angeflogen werden. Der Platz wird betrieben vom Flugsportverein „Otto Lilienthal“.}}
=== Mit der Bahn ===
{{vCard | name = Bahnhof Langensalza | type = rail | wikidata = Q62415577 | lastedit = 2026-04-10 | description = Betreuung nur mittels '''Video'''-Reisezentrum (geöffnet Mo-Fr 7:15–18:30, Sa 8:15–13:30), behindertengerechte Toilette nur mit entsprechendem Schlüssel. Am Bahnhof halten Regionalzüge aus Erfurt über Gotha oder über Gräfentonna sowie aus Kassel und Göttingen über Leinefelde und Mühlhausen. Der Bahnhof liegt am südlichen Stadtrand etwa ein Kilometer vom Stadtzentrum. Jeder hier verkehrende Zug bedient auch den Landkreis Gotha. Das nahegelegene [[Gotha]] bietet den nächsten ICE-Bahnhof. Mit der Stadtbuslinie B kann man direkt von der Haltestelle am Bahnhofsvorplatz Mo-Fr tagsüber halbstündlich und Sa vormittags alle zwei Stunden in die Innenstadt und zurück fahren; Aus-/Einstieg an der Endhaltestelle „Treffpunkt Wiebeckplatz“ (Fahrplan siehe [[#Mobilität|Mobilität]]). Das geschlossene Bahnhofsgebäude ist leider nicht einladend, obwohl es auch so noch vom früheren Wohlstand der Stadt zeugt, man wird aber im Ort dafür entschädigt. Zwischen Bahnhof und Busbahnhof gibt es den Imbiss ''Herbigs Grill''. }}
=== Mit dem Bus ===
Der {{Marker | type = bus | name = ZOB | lat=51.10166 | long=10.64270}} befindet sich ein Stück neben dem Bahnhofsvorplatz. Aufgrund der Lage bietet er nicht nur die Möglichkeit, über verschiedene Buslinien die benachbarten Gemeinden zu erreichen, sondern ermöglicht direkt zwischen Schienen-, Buslinien- und Stadtbusverkehr (Linie B, Haltestelle nicht am ZOB, sondern direkt am Bahnhofsvorplatz) zu wechseln. Auch [[Fernbusse in Deutschland|Fernbusse]] halten hier.
=== Auf der Straße ===
* Über die Autobahn {{RSIGN|DE|A|4}}, Anschlussstelle {{Ausfahrt|Eisenach-Ost,|40a,}} und der {{RSIGN|DE|B|84}} gelangt man in die Stadt.
* Die {{RSIGN|DE|B|247}} führt von [[Gotha]] oder von [[Mühlhausen (Thüringen)]] nach Bad Langensalza.
=== Mit dem Fahrrad ===
Der [[Unstrut-Radweg|Unstrut-Radweg]] durchquert den Ortsteil Thamsbrück.
== Mobilität ==
Aufgrund der Größe ist die Stadt gut zu Fuß zu erkunden. Parkplätze stehen auch an vielen Stellen zur Verfügung. Es gibt zwei Stadtbuslinien: [https://www.salzatours.de/fahrplanauskunft/ Fahrplanauskunft] der Salza–Tours König GmbH & Co. KG
* '''Linie A''' Gewerbegebiet Nord '''–''' EKZ Rasenmühlenweg – Treffpunkt Wiebeckplatz – Gutenbergstraße – Gewerbegebiet Ost
* '''Linie B''' Ufhoven Schenke – Bahnhof – Gutenbergstraße – Treffpunkt Wiebeckplatz & zurück
===Thiemsburg===
Buslinie 150 Verkehrsgemeinschaft Wartburgregion im Sommer mindestens 4 mal täglich Bad Langensalza - [[Thiemsburg]] - [[Behringen]] - [[Eisenach]].
== Sehenswürdigkeiten ==
[[Datei:LangensalzaGottesackerkirche.JPG|mini|Gottesackerkirche St. Trinitatis]]
=== Kirchen ===
* {{vCard | name = Marktkirche ''St. Bonifacii'' | comment = ev. Hauptkirche | type = church | wikidata = Q1901085 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/marktkirche-st-bonifacii/ | phone = +49 (0)3603 846402 | hours = Mo-Sa 14:00–16:00 und nach Vereinbarung | description = Die Marktkirche St. Bonifacii ist die evangelische Hauptkirche der Stadt und wurde in mehreren Bauphasen von Mitte des 13. bis Ende des 16. Jahrhunderts im Stil der Gotik erbaut und erweitert. Aus diesem Grund besteht sie aus vielen sich deutlich voneinander abhebenden Teilen. Eine Besonderheit ist die Einzeigeruhr am 74 m hohen Turm, einem der höchsten Kirchtürme in Thüringen. Die Malereien aus dem 16. Jahrhundert wurden erst Anfang des 20. Jahrhunderts wieder freigelegt. Die barocke Kanzel im Mittelschiff stammt aus dem Jahr 1734. Das Altarbild, eine Kreuzigungsszene darstellend, wurde vermutlich zwischen 1486 und 1490 hergestellt. Mai–Sep. Orgelmusik zur Marktzeit um 12 Uhr.
}}
* {{vCard | name = Bergkirche ''St. Stephani'' | type = church | wikidata = Q16857152 | url = https://evangelische-kirche-lsz.de/bergkirche-st-stephani-st-stephan/ | description = Ursprünglich außerhalb der ersten Stadtmauer als dreischiffige Basillika erbaut war sie die Pfarrkirche der Neustadt. Das im Jahr 1196 erstmals urkundlich als Kapelle erwähnte Gotteshaus ist der älteste Sakralbau in Bad Langensalza. Aus einer ursprünglichen Mönchskapelle entwickelte sich die Kirche durch Um- und Anbauten. Die Kanzel wurde 1590 im Renaissancestil aufgebaut. Die Glasfenster sind Stiftungen der Bürger im 19. Jahrhundert. An den Decken sind heute noch die Wappen der Spenderfamilien zu sehen. Die Orgel der Kirche wurde 1884/1985 von dem Bad Langensalzaer Orgelbauer [[w:Friedrich Erdmann Petersilie|Friedrich Petersilie]] erbaut. Der Turm hat eine Höhe von 53,5{{nnbsp}}m.
}}
* {{vCard | name = Gottesackerkirche ''St. Trinitatis'' | type = church | wikidata = Q16857154 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/gottesackerkirche-st-trinitatis/ | address = Tuchmachergasse 5, 99947 Bad Langensalza | directions = Im [[#vCard_Arboretum|Arboretum]], direkt neben dem Eingang. | hours = Nur bei Veranstaltungen zugänglich | lastedit = 2026-04-14 | description = Die Friedhofskirche wird als Konzertkirche mit vielfältigen musikalischen Veranstaltungen und einzigartiger Akustik genutzt. '''Geschichte''': Die Kirche wurde 1734–1739 unter der Schirmherrschaft von Herzog ''Christian von Sachsen–Weißenfels'' mit Travertinsteinen der im 30-jährigen Krieg zerstörten Marienkirche errichtet, woran die Kartusche über dem östlichen Portal erinnert. Über das Spitzbogenportal an der Westseite gelangt man zu den restaurierten Grüften. In Gegensatz zum strengen, symmetrischen Außenbau steht die reiche barocke Innenausstattung der Saalkirche mit zweigeschossigen Holzemporen und dem Kanzelaltar von 1734. Die aufwendige Gestaltung des Deckengewölbes zeigt sich in den barocken Malereien in ovalen Medaillons und Stuckaturen. Zur Ausstattung gehören das Madonnen-Relief aus der Marienkirche, zwei barocke Epitaphien und eine Orgel von ''Friedrich Erdmann Petersilie'' (1869). Umfangreiche Sanierungs- und Restaurierungsarbeiten 2008/2009 führten zu neuem Glanz.
}}
=== Bauwerke ===
* {{vCard|name=Rathaus|type=town hall|wikidata=Q119440667|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/rathaus/|description=Das Glockenspiel mit 32 Glocken und 5 Figuren kann 16 verschiedene Melodien spielen und erklingt täglich um 12 und 18 Uhr. Möglichkeit zu einer [https://badlangensalza.de/kur-tourismus/planen-buchen/gastefuhrungen/gruppenfuehrungen-3/unter-dem-pflaster/ Stadt- und Kellerführung], Dauer: 120 min, Preis 135,00 €, optional: „Herrliches Gesöff“ zum Abschluss zzgl. 2,50 € pro Getränk.
}}
* {{vCard | name = Schloss Dryburg | type = chateau | wikidata = Q2240669 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/schloss-dryburg/ | hours = Galerie: Do–Sa 14:00–17:00 und nach Vereinbarung. An Feiertagen geschlossen | lastedit = 2026-04-12 | description = Das Schloss Dryburg ist das älteste erhaltene, komplett aus Stein gemauerte Profangebäude in der Stadt. Von der mittelalterlichen Kernburg ist noch der Westflügel erhalten. Er beherbergt seit Anfang 2011 unter anderem die Galerie des [https://www.kunstwestthueringer.com/ Kunstwestthüringer e. V.], für Kunstliebhaber ein Muss. Der gemeinnützige Kunstverein sieht seine Aufgabe in Präsentation, Vermittlung und Aktion in Sachen zeitgenössischer bildender Kunst. Pro Jahr sind ca. sechs Ausstellungen zu sehen, eine davon immer im Mai ist die Präsentation von Werken internationaler Künstler.
}}
* {{vCard | name = Friederikenschlösschen | type = chateau | wikidata = Q19279910 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/friederikenschloesschen/ | address = Mauergasse 2, 99947 Bad Langensalza | hours = „Tag des offenen Schlösschens“ jeweils 14:00–17:00, aktuell: 17.05.26, 28.06.26, 12.07.26, 02.08.26, 16.08.26, 13.09.26 (Tag des offenen Denkmals 10:00–17:00), 18.10.26 | price = frei / auf Spendenbasis | lastedit = 2026-04-08 | description = Die Herzoginwitwe Friederike von Sachsen-Weißenfels ließ 1749 bis 1751 das Rokoko-Lustschloss errichten. Im Festsaal des Friederikenschlösschens werden Kleinkunstprogramme und Kammerkonzerte aufgeführt.
}}
* {{vCard | name = Stadtmauer und Türme | type = monument | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmauer-und-tuerme/ | lat = 51.10934 | long = 10.64943 | description = Bad Langensalza besitzt bis heute einen gut erhaltenen mittelalterlichen Stadtmauerring, von dem noch 16 Wachtürme und ein Eingangstor erhalten geblieben sind. Der 35,40 Meter hohe Klagetorturm an der Kurpromenade ist einer der wenigen noch erhaltenen Tortürme in Thüringen.
}}
* {{vCard | name = Kultur- und Kongresszentrum Bad Langensalza | comment = Jahnplatz als Parkfläche direkt hinter dem Haus | type = conference center | url = https://www.kkz-badlangensalza.de/ | address = Bürgermeister–Schönau–Platz 1, 99947 Bad Langensalza | lat = 51.11050 | long = 10.64223 | phone = +49 (0)3603 859 190 | email = kkz@bad-langensalza.de | lastedit = 2026-04-14 | description = NUTZUNG: Für Veranstaltungen (Tagung, Festlichkeit oder Konzert) von 10 bis zu 500 Personen: Unterschiedliche Räumlichkeiten (Saal, Bühne, Clubraum (Hufelandraum), Probesaal (Wieglebsaal), Saalnebenräume (Kloppstocksaal), kleiner Saal (Hermstedtsaal), Foyer) für jeden Anlass, moderne Tagungs- und Bühnentechnik, erfahrenes Veranstaltungsmanagement und hochwertige Gastronomie. Die Stadt veranstaltet hier (wie in der [[#vCard_Q16857154|Konzertkirche]] und an anderen Orten) diverse Events, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender]. GESCHICHTE: Das heutige Kultur- und Kongresszentrum hat eine lange Geschichte und wurde ehemals als Schützenhaus (erstmalige Erwähnung der „sagittarii“, der „Kappentragenden Pfeilschützen“, im Jahre 1380) erbaut und ersetzte zwei Vorgängerbauten für die Langensalzaer Schützengilde. Von 1717–1733 wurde das erste Schützenhaus errichtet und litt dann unter den deutschen Befreiungskriegen (1813 Pulvermagazin, 1814 Lazarett). Das baufällige Fachwerkgebäude diente nicht mehr seinem Zweck und wurde 1833 abgerissen. Der Neubau wurde dem Mauermeister ''Johann Benjamin Schneider'' und dem Zimmermeister ''Christian Andreas Wenk'' übertragen. Da die Schützen die Kosten nicht tragen konnten, wurden 215 Aktien verkauft. Grundsteinlegung war 1833, die Einweihung selbst fand im Juli 1834 statt. Der umfangreichere Neubau erhielt an der Frontseite einen repräsentativen Balkon sowie einen dreiseitigen Giebel. Bei den Kapitulationsverhandlungen 1866 (Hannover vs. Preußen) gastierte der König Georg V. von Hannover im Juni 1866 im Schützenhaus und der Kriegsrat besiegelte die Kapitulation. Im Nachhinein erfolgte die Benennung als „Königszimmer“ oder „Blaues Zimmer“. im Dezember 1906 wurde das gesamte Gebäude ein Raub der Flammen, glücklicherweise gab es.eine Entschädigungszahlung der ''Provinzial-Feuersozietät''. Das nach Bauplänen des hiesigen Stadtbaumeisters '''Ferdinand Kummer'' im November 1907 fertiggestellte Gebäude wurde mit Festbankett und Festball eingeweiht. Die veralteten Schießstände mussten auf königlichen Befehl erneuert und umzäunt werden. Im 1. Weltkrieg pausierten die Vereinsaktivitäten und das Schützenhaus wurde ab Herbst 1914 bis Anfang 1919 als Reservelazarett genutzt. Nach dem 2. Weltkrieg wurde das Schützenhaus von der Besatzungsmacht beschlagnahmt und 1946 mit dem Ziel der Errichtung eines Kulturzentrums der Sozialistischen Einheitspartei Deutschlands übertragen. Die Umbenennung des Gebäudes in Kulturhaus erfolgte schließlich Abfang Oktober 1952. Ab Januar 1961 wurde das geschlossene Kulturhaus in drei Bauabschnitten umgestaltet, die Gastronomie modernisiert. Mit einer symbolischen Schlüsselübergabe eröffnete das renovierte Kulturhaus Ende April 1962 und der Kulturhaus–Beirat kümmerte sich um die Nutzung. Der Kulturhausgarten wurde erstmals 1967 genutzt, die alte Kegelbahn 1978 abgerissen. Im Juni 1986 erfolgte einen Komplettumbau. Aufgrund von finanziellen und materiellen Engpässen wurden die Handwerker immer wieder unterbrochen, denn in den Wirren der Wendezeit versiegten die Geldquellen. Mit Hilfe von Bundes- und Landesmitteln konnte das Vorhaben eines modernen Kultur- und Kongresszentrums schließlich vollendet werden. Die Wiedereröffnung fand im Rahmen einer feierlichen Veranstaltung am 21. Februar 1992 statt. Der neue Name repräsentierte die kulturellen und künstlerischen Aspekte. In Vorbereitung des Landesprojektes ''Mensch–Natur–Städtebau'' wurde im Jahr 2009 das Kultur- und Kongresszentrum abermals umfangreich restauriert und modernisiert, insbesondere die Rosenlounge, die Außenfassade und der große Saal erstrahlen in neuem Glanz.
}}
=== Aussichtspunkt ===
[[Datei:Langensalza Dreitürmeblick.jpg|mini|Drei-Türme-Blick]]
[[Datei:LangensalzaDreitürmeblick2.JPG|mini|Blick durch die Skulptur]]
* {{vCard|name=Drei-Türme-Blick|type=viewpoint | lat = 51.1092 | long = 10.6417 |directions = vor der Gottesackerkirche neben dem Eingang in das Arboretum |url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/drei-tuerme-blick/ |description= Vom „Argusblick“ (die Skulptur wurde von dem Bad Langensalzaer Künstler [[w:Harald_Stieding|Harald Stieding]] geschaffen), einem aus Stein gehauenen Auge, das auf einer Travertinsäule thront, sind der Turm der einstigen Augustinerkirche, der Turm des Rathauses und schließlich der Turm der Marktkirche St. Bonifacii zu sehen. Diese drei Türme prägen die Ansicht der Kurstadt und sind immer wieder ein beliebtes Fotomotiv.
}}
=== Museen ===
[[Datei:Schild Wassermuseum vor Klagetor Bad Langensalza.jpg|mini|upright|Schild Wassermuseum mit dem Klagetor im Hintergrund]]
* {{vCard|name=Stadtmuseum im Augustinerkloster|type=museum|wikidata=Q76639038|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmuseum-im-augustinerkloster/|address=Augustinerplatz 1-2, 99947 Bad Langensalza|phone=+49 03603 813002|email=stadtmuseum@bad-langensalza.de|hours=Fr–So 13:00–17:00, Feiertagsregelungen beachten|price=Normal 5,00{{nnbsp}}€/Tag, erm. 4,00{{nnbsp}}€/Tag, Kinder und Schüler frei; Kombiticket Apotheken- und Stadtmuseum Erw. 8,00{{nnbsp}}€, erm. 6,00{{nnbsp}}€|lastedit=2026-04-01
}}
* {{vCard | name = Thüringer Apothekenmuseum | comment = im „Haus Rosenthal“ | type = museum | wikidata = Q20479980 | hours = Derzeit wie [[#vCard_Q76639038|Stadtmuseum]] | price = Wie [[#vCard_Q76639038|Stadtmuseum]] | lastedit = 2026-04-05 | description = Das historische Gebäude „Haus Rosenthal“ beherbergt seit Mai 2014 das Thüringer Apothekenmuseum. Die Besucher können im restaurierten Baudenkmal aus dem Jahr 1515, dessen Renovierung in einem FIlm gezeigt wird, u.{{nnbsp}}a. die historischen Wandvertäfelungen und zwei Holzstuben auf sich wirken lassen. Für die gelungene Sanierung erhielt die Stadt im Wettbewerb um den''Thüringer Holzbaupreis 2013'' eine Anerkennung sowie im Jahr 2015 den Thüringer Denkmalschutzpreis. Im Obergeschoss des Baudenkmals wird auf 276{{nnbsp}}m² eine Ausstellung zur Pharmaziegeschichte des 18. bis 20. Jahrhunderts präsentiert. In acht Räumen sind die verschiedenen Arbeitsbereiche einer alten Apotheke abgebildet. Neben einer Darstellung des Lebens und Wirkens des Langensalzaer Apothekers und Chemikers ''Johann Christian Wiegleb'' (1732–1800) werden Standgefäße aus Glas, Porzellan und Holz sowie eine Vielzahl an pharmazeutischen Arbeitsgeräten zur Herstellung von Arzneimitteln gezeigt. Das Museum ergänzt der angrenzende [[#vCard_Apothekergarten|Apothekergarten]], in dem mehr als 80 verschiedene, überwiegend heimische, Heilkräuter wachsen. Hinweis: Im Gebäude sind nur die Ausstellungen im Erdgeschoß sowie der Apothekergarten barrierefrei zu erreichen.
}}
* {{vCard | name = Rosenmuseum | comment = beim [[#vCard_Q112079448|Rosengarten]] | type = museum | address = Vor dem Klagetor 3, 99947 Bad Langensalza | directions = Zugang beim Kassenhäuschen des Rosengartens | lat = 51.11081 | long = 10.65237 | phone = +49 03603 834424 | hours = Wie [[#vCard_Q112079448|Rosengarten]] | lastedit = 2026-04-08 | description = Das Museum hat sich seit seiner Einrichtung kaum verändert und strahlt daher ein entsprechendes Flair aus, ist aber auch sehr informativ. Beispielsweise lernt man die In-vitro-Vermehrung von Rosen, bei der dünnste Scheiben von Rosenknospen steril in Nährmedien kultiviert werden, kennen, die die schnelle Produktion großer Mengen von Klonen ermöglicht. Das Museum soll beginnend mit der Saison 2026 sukzessive erneuert und mit modernen Medien ausgestattet werden.
}}
* {{vCard|name=Historische Druckerei|id=Historische_Druckerei|type=museum|lat=51.1092|long=10.6512|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/historische-druckerei/|hours=ganzjährig Di,Mi, Fr 9:00–12:00, sowie nach Vereinbarung|price=frei|description=Im Park des Friederikenschlösschens in der ehemaligen Kutscherremise befindet sich seit März 2008 die „Historische Druckerei“. Sie beherbergt heute u.{{nnbsp}}a. eine beeindruckende Handtiegelpresse aus dem Jahr 1854 sowie diverse Utensilien für den Handsatz und wird in kleinem Rahmen nach wie vor für Sonderdrucke genutzt. Die Druckerei kann an drei Tagen in der Woche vormittags ganzjährig besichtigt werden und die Besucher erhalten auf Wunsch von einem der sie betreuenden ehemaligen Setzer eine Führung mit der Möglichkeit, selbst ein Andenken zu drucken.}}
* {{vCard | name = Wassermuseum | type = museum | address = Hüngelsgasse 13, 99947 Bad Langensalza | lat = 51.11079 | long = 10.64951 | phone = +49 (0)3603 84070 | hours = Di 8:00–12:00, 13:30–17:30; Do 8:00–12:00, 13:30–15:30 | image = Wassermuseum Bad Langensalza.JPG | lastedit = 2026-04-07 | description = Betreiber: Verbandswasserwerk Bad Langensalza / Abwasserzweckverband (WAZV) "Mittlere Unstrut". Die beiden Google-Rezensionen des winzigen Museums im Eingangsbereich des Amtes innerhalb des letzten Jahres sind 5/5.
}}
=== Parks und Gärten ===
[[Datei:Bad Langensalza Arboretum Lageplan.jpg|mini|Lageplan Arboretum]]
[[Datei:Bad Langensalza Arboretum Pflanzensystematik.jpg|mini|Pflanzensystematik Arboretum]]
[[Datei:Bad Langensalza, japanischer Garten, Bild 8.jpg|mini|Japanischer Garten]]
[[Datei:Bad Langensalza 2022 - Rosengarten.jpg|mini|Rosengarten]]
[[Datei:Erblühende Magnolien am Wasserlauf vor Magnoliengarten Bad Langensalza.jpg|mini|Erblühende Magnolien am Wasserlauf vor dem Magnoliengarten]]
[[Datei:Ulmus parvifolia "Chinesische Kiefer" frei aufrechte Form Alter ca. 130 Jahre Japanischer Garten Bad Langensalza 02.jpg|mini|upright|Austreibender Bonsai Ulmus parvifolia „Chinesische Kiefer“, frei aufrechte Form, Alter ca. 130 Jahre, vor blühendem Baum im Japanischen Garten]]
Die Stadt besticht durch eine Vielzahl von [https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/ Parks und Gärten]:
* {{vCard | name = Arboretum | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/arboretum/ | lat = 51.10834 | long = 10.63949 | hours = Mär,Okt: täglich 10:00–18:00, Apr–Sep: täglich 10:00–19:00, Nov–Feb: geschlossen | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Das Arboretum (Baumgarten) ist eine geschichtsträchtige Parkanlage. Es lädt neben Entspannung und Erholung zum bummeln durch die Vielfalt an Bäumen und Sträuchern ein. Hier ist der Jahrezeitenwechsel am deutlichsten von allen Gärten der Stadt zu erleben. So zeigt sich das Arboretum von von Mitte März bis Oktober im bunten Blüten- und Blätterkleid. Auch bevor die Bäume ausschlagen bereichern den Garten zur Frühjahrsblüte durch früh blühende [[w:Magnolien|Magnolien]] und [[w:Frühjahrsblüher|Frühjahrsblüher]] mehr als nur einzelne Farbtupfer. Im Arboretum wachsen über 200 verschiedene Arten von [[w:Gehölz|Gehölz]]en, die zu mehr als 20 Pflanzenfamilien gehören. Eine umfangreiche Erweiterung der Gehölzsammlung konnte fast ausschließlich durch Spenden von Bürgern, Unternehmen und Institutionen realisiert werden. Ergänzt wird der Eindruck durch die zwölf Skulpturen aus Holz und Muschelkalk von neun Künstlern aus vier Ländern sowie einem Zeugnis der Stadtgeschichte, dem ''Hannoveraner Denkmal'', das an die Schlacht bei Langensalza 1866 erinnert. Die ebenfalls dort befindliche [[#vCard_Q16857154|Gottesackerkirche]] aus dem Jahr 1734 (von 2008–2009 saniert) wird als Konzertkirche ''St. Trinitatis'' genutzt. Das Arboretum ist zusätzlich zu einem Lageplan reichlich mit Text und Systematiken auf Schautafeln beschildert, so dass man viel über die [[w:Systematik des Pflanzenreichs|Systematik des Pflanzenreichs]] erfährt und die Gehölze entsprechend leicht finden und zuordnen kann. | id = Arboretum
}}
* {{vCard | name = Botanischer Garten ''Garten der Vielfalt'' | type = botanical garden | wikidata = Q4948492 | hours = Mai–Okt täglich 10:00–18:00 | price = frei | subtype = nodogs | lastedit = 2026-04-11 | description = Der Garten mit einem Sukkulentenhaus im Zentrum ist nach dem Umbau der ''[[#vCard_Friederiken Therme|Friederiken Therme]]'' seit 2025 erneut geöffnet und beinhaltet auch ein Kneippsches Tretbecken; insbesondere der Alpingarten (Alpinum) und die Gräserlandschaft werden zurzeit wieder neu angelegt. Besonders beeindrucken die teils sehr großen Goldkugelkakteen („Schwiegermuttersitz“ bzw. „-stuhl“).
}}
* {{vCard | name = Japanischer Garten ''Garten der Glückseligkeit'' | name-local = (jap. 幸福の庭, Kōfuku no niwa | alt = genauer ein [[w:Japanischer Wandelgarten|Japanischer Wandelgarten]] | type = garden | wikidata = Q26821540 | hours = Mär, Okt: täglich 10:00–18:00; Apr-Sep: täglich 10:00–19:00 | price = ab 12 J. 6,00 €/Tag, erm. 5,00 €/Tag; Feierabendticket (ab 17:00) 4,00 €/Tag; Kombiticket (alle Gärten, Stadt- und Apothekenmuseum) 20,00 €/Tag, erm. 16,00 €/Tag; bei Sonderveranstaltungen teils andere Preise | subtype = nodogs | lastedit = 2026-04-05 | description = Besucher tauchen ein in die Harmonie der Stille der verschiedenen Landschaften. Das Wasser hat eine wichtige symbolische Bedeutung: Wellenbewegungen fließen vom Wasserfall über den Teich in den Trockenbach, Pflanzen und Steine führen die Bewegung weiter. Im Kontrast zur Teichlandschaft steht die Trockenlandschaft. Ein Pflanzenpavillon mit Teehaus und der „Pavillon des Teetrinkens“, in dem ohne Zeremonie grüner Tee gereicht wird, ergänzen das Ensemble. Im April beginnen die Kirsch- und Magnoilienblüte, im Mai blüht die Azaleenlandschaft, Iris und Seerosen folgen im Juni. Es finden diverse Veranstaltungen (mit Vorführung japanischer Kampf- und Trommelkünste, Origami, Sushi uvm.) statt: Hanami Kirschblütenfest (April, aktuell 25. April 2026), Kodomo NoHi Kinderfest (Mai), Märchenfest (Juni), Tanabata Sternenfest (Juli). Im Dezember 2025 wurde zudem erstmalig (innerhalb der eigentlich üblichen Schließzeit November bis Februar) eine ''Fernöstliche Lichter-Poesie'' veranstaltet. Bei dieser wurde der Garten mit wechselnden Lichtfarben beleuchtet, es gab zwei Videoprojektionen u.{{nnbsp}}a. mit Videos und Bildern über den Garten sowie Musikuntermalung. Nach Aussage der Mitarbeiter war die Veranstaltung so gut besucht, dass sie vsl. in den kommenden Jahren wiederholt wird.
}}
* {{vCard|name=Kurpark|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/kurpark/|lat=51.10881|long=10.65008|hours=24/7|price=frei|lastedit=2026-03-05|description=Der Park liegt teilweise entlang der Stadtmauer und ist zur Hälfte von einem kleinen Wasserlauf durchzogen. Am einen Ende befindet sich ein künstlicher Wasserfall, und der Weg führt dann vorbei am Friederikenschlösschen, einem Kinderspielplatz, dem Abzweig zum Rosengarten, weiter zwischen dem Japanischen Garten und dem Natur!Gärten und geht dann in den Weg zum Magnoliengarten und den Botanischen Garten über. Blumenbeete, zugeschnittene Bäume und Bögen aus Büschen, unter denen man durchgehen kann, bereichern das Ambiente.}}
* {{vCard | name = Rosengarten ''Garten der Liebe'' | comment = Zugang zum [[#vCard_Rosencafé|Rosencafé]] direkt vom Garten aus | type = garden | wikidata = Q112079448 | hours = Mai-Sep: täglich 10:00–19:00; Okt: täglich 10:00-–8:00 | price = Wie [[#vCard_Q26821540|Japanischer Garten]] | subtype = parking, nodogs | lastedit = 2026-04-17 | description = Auf 18.000 qm erblühen und duften fast 450 Rosenarten wie historische und Englische Rosen, Wildrosen und Edelrosen, Rosenhochstämme und Kleinstrauchrosen; besonders sehenswert ist die Sammlung der Bad Langensalzaer Rosen (1950–990 wurden hier allein 91 Rosensorten gezüchtet. Anni Berger, die einzige Rosenzüchterin Deutschlands, war in Bad Langensalza tätig. Sie ist Namensgeberin einer Stiftung, die die Rosentradition, Denkmalpflege und Umweltschutz fördert – vgl. Anni-Berger-Stiftung.de), Skulpturen der Künstler Gert van Acker und Harald Stieding ergänzen das Gartenbild. Da auch die Vorgärten und die Stadtplätze vielfältige Rosen zieren, verwundert es nicht, dass 2002 der Stadt das Prädikat „Rosenstadt“ verliehen wurde.
}}
* {{vCard | name = Magnoliengarten | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/magnoliengarten/ | lat = 51.11366 | long = 10.64912 | hours = 24/7 | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Der 2006 eröffnete Magnoliengarten zeigt auf 1.500 qm mehr als 30 Magnolienarten, die von März bis Juli blühen – eine Zaubernuss beginnt den Blütenreigen. Magnolien gehören mit zu den ältesten Blütenpflanzen der Erde (vor der Eiszeit auch in Europa heimisch!), die heute in Ostasien und Amerika zu finden sind. Ergänzt werden sie durch Hortensien, Waldreben, Ginkgobäume sowie Blumen und Sträucher, teils auf einem kleinen Hügel als weiteres gestalterisches Element.
}}
* {{vCard | name = Schlösschenpark | comment = des [[#vCard_Q19279910|Friederikenschlösschens]] | type = park | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/schloesschenpark/ | lat = 51.10892 | long = 10.65177 | price = frei | lastedit = 2026-04-05 | description = Der von der der Herzogin Friederike von Sachsen-Weißenfels terrassenartig angelegte kleine Park aus der Mitte des 18. Jahrhunderts mit Blick auf das Schlösschen lädt zum Verweilen ein. Im hinteren Teil des Gartens ist ein historischer Gartenpavillon aus dem Jahr 1878 erhalten. Dort sprudelt aus einem Bronzebecken Schwefelwasser, das seit 1812 in der Kurstadt Bad Langensalza als Heilwasser verwendet wird. In der ehemaligen Remise befindet sich eine [[#vCard_Historische_Druckerei|historische Druckerei]].
}}
* {{vCard | name = Apothekergarten | alt = ''Garten der Heilkräuter'' | comment = beim [[#vCard_Q20479980|Apothekenmuseum]] | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/apothekergarten/ | lat = 51.11016 | long = 10.64459 | hours = Wie Apothekenmuseum, in der Wintersaison geschlossen | lastedit = 2026-04-05 | description = Der Apothekergarten hinter dem „Haus Rosenthal“ (daher nur über das Apothekenmuseum zugänglich) zeigt eine Auswahl an in Mitteldeutschland heimischer Pflanzen, die immer noch zur Herstellung von Arzneidrogen verwendet werden. Die Heilpflanzen sind in neun Beeten nach ihren Anwendungen bzw. medizinischer Indikation geordnet und beschildert. Umsäumt werden die Kräuterbeete von Blumen (Rosen brauchen in Bad Langensalza gar nicht extra erwähnt werden) sowie einigen Obstbäumen und Sträuchern. | id = Apothekergarten
}}
* {{vCard | name = Natur!Garten | comment = betrieben vom [[w:Bund_für_Umwelt_und_Naturschutz_Deutschland|BUND]] Ortsverband Bad Langensalza[https://badlangensalza.bund.net/]. Das '''Café'''[https://baeckerei-esche.de/bund-naturgarten-cafe/] im Garten hat '''kürzere''' Öffnungszeiten: Apr–Okt Mi–Fr 13:00–17:00, Sa/So/Fe bis 18:00 | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/naturgarten/ | lat = 51.1121 | long = 10.6489 | hours = Mär–Okt: täglich 8:00–18:00 | price = frei | lastedit = 2026-04-05 | description = Der 1.600 m² große Garten ermöglicht es, die Natur anzufassen (-> einheimische Pflanzen und Insekten). Er besteht seit 1994 auf und wurde 2019/20 neu gestaltet, dazu gehörten ein Pflanzenbestand mit über 1.000 neuen einheimischen bzw. für einen Bauerngarten typische Blumenzwiebeln, Stauden und Gehölze. Der Garten dient auch der Umweltbildung und verbindet einen nachhaltigen Bauerngarten (zentrales Brunnenhäuschen, Obst- und Gemüsebeete, Kräuterbank, klassische Bauerngarten-Blumenbeete, Färberpflanzen, Kompost) mit einem reinen Naturgarten (Blumenrasen, Wild-Stauden-Wall, „Beet der Flatterlinge“, Teich mit Sumpfwiese, Benjes-Hecke, größter Mirabellen-Baum und höchster Holunder-Strauch von Bad Langensalza). Kinder dürfen spielen und die Natur erforschen, Erwachsene erhalten Anregungen für eine naturnahe Gartengestaltung. Nätürlich ist auch für Verweilplätze gesorgt. Last but not least erreicht man durch den Garten das '''einzige begehbare Stück Stadtmauer-Wehrgang''' und zwei Stadtmauertürme. Zur nach ökologischen Gesichtspunkten sanierten Stadtmauer gehören im Stadtmauer-Rundturm ein „Raum der Stille“ und im Eckturm die Lese-Ecken.
}}
* {{vCard|name=TRACO Park|alt=Garten des Travertins|comment=betrieben von der Firma [https://traco.de/ TRACO]|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/traco-park/|address=Poststraße 17, 99947 Bad Langensalza|lat=51.1039|long=10.6377|phone=+49 (0)3603 8520|hours=Mo–Fr 9:00–18:00, Sa 10:00–13:00, in den Wintermonaten verkürzt|price=frei|subtype=wheelchair, free parking|lastedit=2026-04-10|description=Ausstellungsgarten zeigt breites Spektrum der natürlichen und ästhetischen Garten- und Landschaftsgestaltung mit Sandstein, Muschelkalk und Travertin aus firmeneigenen Steinbrüchen bei Weimar, Gotha und Bad Langensalza: Mauern, Treppen, Wege, Wasserkunst….}}
== Aktivitäten ==
* {{vCard | name = Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | lat = 51.11442 | long = 10.64683 | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = ''Thermalbad+Sauna'': So–Mi 10:00–21:00, Do–Sa 10:00–22:00 | price = ab 5{{nnbsp}}J komplexes Preissystem: Bad, Sauna, Kombitarife, Spättarife, Rabatte, s. Webseite | lastedit = 2026-04-13 | description = (Kinder bis zur Vollendung des 12.{{nnbsp}}Lebensjahres nur in Begleitung Erwachsener.) Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT).
}}
* {{vCard | name = Kino ''Burgtheater'' | type = cinema | url = https://burg-theater.de/ | address = Vor dem Schlosse 5e, 99947 Bad Langensalza | lat = 51.10903 | long = 10.64725 | phone = +49 (0)3603 846206 | fax = +49 (0)3212 1080916 | email = kino@burg-theater.de | hours = Tageweise Mo-So, teils ab 12:15, letzte Vorstellung 20:00 | price = 6,50–10 €; Aufschläge: ab 120 min +0,50 €, ab 140 min +1 €, 3D–Filme +2,50 €, teils Kinderermäßigungen vor 19:00; Di. Kinotag (nicht feiertags) | lastedit = 2026-04-08
}}
* {{vCard | name = Kindererlebniswelt ''Rumpelburg'' | type = children | url = https://kindererlebniswelt-rumpelburg.de/ | address = Sperlingsgasse 4, 99947 Bad Langensalza | lat = 51.10664 | long = 10.64754 | phone = +49 (0)3603 398-4604 | email = info@kindererlebniswelt-rumpelburg.de | hours = Di–Fr 14:00–18:00, Sa 10:00–18:00, So 10:00–17:00, auf Vorbestellung für Gruppen Di–Fr 10:00–13:00, Schließzeiten beachten (ges. Feiertage, Sommer-Betriebsferien, Weihnachtsferien) | price = 0–1J frei, 1–2J 3,50{{nnbsp}}€/1{{nnbsp}}Std, ab 2J/Erw. 4,00{{nnbsp}}€/1{{nnbsp}}Std, Rabatte/Sonderaktionen s. Webseite | lastedit = 2026-04-10 | description = Klettern, rutschen und toben in einer fantastischen Welt mit Spiel, Spaß und Entdeckungen. Netzbrücken, geheimnisvolle Baumhäuser, riesige Puppenstube und wilde Rutschpartien – Abwechslung bei jedem Wetter für Groß und Klein. Ereignisreiche Stunden durch verschiedene Rollen spielerisch erleben in: Spielhaus, Schiff, Tiergehege mit Holztieren oder Spielstadt. Aufmerksame Kinder entdecken vielleicht die geheimnisvollen Rumpelburgbewohner: Rosentroll Puck, Wasserelfe Tine oder Rumpel, das Gespenst.
}}
* Die Stadt veranstaltet insbesondere in der [[Bad Langensalza#vCard Q16857154|Konzertkirche]], dem [[Bad Langensalza#vCard Kongress- und Kulturzentrum Bad Langensalza|Kongress- und Kulturzentrum Bad Langensalza]] sowie an anderen Orten diverse '''Events''' wie beispielsweise Konzerte, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender Eventkalender].
* '''[https://badlangensalza.de/kur-tourismus/planen-buchen/veranstaltungen/veranstaltungshighlights/mittelalterstadtfest/ Mittelalterstadtfest]''' mit Handwerker- und Händlerständen, Musik- und Kleinkunstprogramm sowie Schaukämpfen am letzten Augustwochenende (aktuell 29./30. August 2026)
* Im ''Japanischen Garten'' finden diverse Veranstaltungen statt (Details finden sich beim [[#vCard_Q26821540|Japanischen Garten]]):
** '''Hanami Kirschblütenfest''' (April)
** '''Kodomo NoHi Kinderfest''' (Mai)
** '''Märchenfest''' (Juni)
** '''Tanabata Sternenfest''' (Juli)
** '''Fernöstliche Lichter-Poesie''': Sie wurde im Dezember 2025 (innerhalb der eigentlich üblichen Schließzeit November bis Februar) erstmalig veranstaltet und wird vsl. in den kommenden Jahren wiederholt.
* {{vCard | name = Flugplatz Bad Langensalza | type = landing site | wikidata = Q2900762 | directions = 3{{nnbsp}}km nordwestlich von Bad Langensalza | show = copy| price = Schnupperflug ab 30 €; ''Pilot für einen Tag'' (ca. 3 Std.) 199 € | lastedit = 2026-04-04 | description = Er wurde 1927 errichtet und von der [[w:Wehrmacht|Wehrmacht]] genutzt. Aktuell wird der [[w:Sonderlandeplatz|Sonderlandeplatz]] vom Flugsportverein ''„Otto Lilienthal“ Bad Langensalza e.{{nnbsp}}V.'' betrieben. Er verfügt über eine Gras-Start- und Landebahn mit der Größe 800{{nnbsp}}m × 40{{nnbsp}}m. Angebote: Segelflug, Ultraleichtflug (UL-Flug), Rundflüge und Gastflüge.
}}
== Einkaufen ==
Es gibt Bad in Langensalza das typische Angebot einer Kleinstadt. Spezielle lokale Reisesouvenirs sind hier zu erwerben.
* {{vCard|name=Wochenmarkt|type=market|url=https://citymanagement-badlangensalza.de/events/wochenmarkt/|address=Fußgängerzone|lat=51.1086|long=10.6454|hours=Mi 8:00–14:00|lastedit=2026-04-06|description=Auf dem Wochenmarkt gibt es nicht nur frisches Obst und Gemüse, Geflügel und Fisch, Backwaren, Eier und Teigwaren, Wurst- und Käsesorten, Pasti und Antipasti, Gewürze, Kräuter, Honig und Marmeladen sowie Blumen und Pflanzen zu kaufen, man kann dort auch diverse warme Gerichte gleich essen oder mitnehmen. Viele der Angebote stammen dabei aus der Region. Für eine thüringer Stadt eher ungewöhnlich erhält man als eine der beiden je eintägigen Möglichkeiten im Ort ''[[w:Thüringer Rostbratwürste|Thüringer Rostbratwürste]]'' in einer Semmel (gute Wurst, sehr gutes Brötchen, 3{{nnbsp}}€).}}
* {{vCard | name = Buchhandlung ''Buchgeschwister'' | type = book seller | url = https://www.genialokal.de/buchhandlung/bad-langensalza/buchgeschwister/ | address = Mühlhäuser Str. 39, 99947 Bad Langensalza | lat = 51.10895 | long = 10.64475 | phone = +49 (0)3603 842449 | email = kontakt@buchgeschwister.com | instagram = buchgeschwister.lsz | hours = Di–Fr 10:00–13:00, 14:00–17:00, Sa 10:00–13:00 | image = Buchhandlung "Buchgeschwister" Bad Langensalza.jpg | lastedit = 2026-04-09 | description = sehr persönliche Beratung.
}}
== Küche ==
Bei vielen Cafés und Restaurants kann man auch draußen sitzen. Letztere haben oft werktags ein Mittagsangebot.
* {{vCard | name = Café Schwesterherz | comment = Gegründet von den Schwestern Anni und Ulrike | type = cafe | url = https://cafe-schwesterherz.jimdofree.com/ | address = Mühlhäuser Str. 2, 99947 Bad Langensalza | lat = 51.10878 | long = 10.64463 | phone = +49 (0)3603 3989345 | email = Cafe-Schwesterherz@freenet.de | hours = Di–Fr 9:00–17:30, 2.+4. Sa im Monat 9:30–17:00, 1.+3. Sa im Monat 9:30–12:30 | image = Cafe Schwesterherz Bad Langensalza.jpg | lastedit = 2026-04-17 | description = Uriges Ambiente mit der Möglichkeit, schöne Dinge zu erwerben und auch draußen zu sitzen. Eine der Spezialitäten sind nach dem Motto ''Kuchen wie bei Omi'' selbstgebackene Kuchen. Die ausführlichen Rezensionen des Cafés (Google 4,8/5) sprechen oft von begeisterten Besuchern. Um sicher einen Platz zu bekommen ist eine Reservierung empfehlenswert.
}}
* {{vCard | name = Rosencafé | type = restaurant | url = https://www.rosencafe-bad-langensalza.de/ | address = Am Rosengarten 11, 99947 Bad Langensalza | directions = Direkt am [[#vCard_Q112079448|Rosengarten]], Zugangsmöglichkeit von dort aus, zurück benötigt man die Eintrittskarte für das Drehkreuz. Eingang auch vom neuen Wohngebiet aus. | lat = 51.11224 | long = 10.65247 | phone = +49 (0)3603 891601 | email = info@rosencafe-bad-langensalza.de | hours = Do–So 10:00–17:00, bis 15:00 warme Küche | subtype = accessible, parking | lastedit = 2026-04-17
}}
* {{vCard | name = Ristorante Venezia | type = restaurant | url = https://www.venezia-restaurant.de/ | address = Marktstraße 31, 99947 Bad Langensalza | lat = 51.10820 | long = 10.64577 | phone = +49 03603 895469 | fax = +49 03603 8969308 | hours = tägl. 10:00–0:00, warme Küche durchgehend 11:00–23:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Villa Italia | type = restaurant | url = https://www.villa-italia.de/ | address = Kurpromenade 5a, 99947 Bad Langensalza | lat = 51.10838 | long = 10.65071 | phone = +49 03603 892861 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Punjabi Bad'sha | alt = Indisches Restaurant & Eiscafe | type = restaurant | url = https://www.punjabi-badshah.de/ | address = Kornmarkt 2, 99947 Bad Langensalza | lat = 51.10761 | long = 10.64739 | phone = +49 (0)36031 279246 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Herkules | type = restaurant | address = Steinweg 11, 99947 Bad Langensalza | lat = 51.10547 | long = 10.64209 | phone = +49 03603 1277321 | facebook = Restaurant.Herkules | hours = Di–Fr 17:00—23:00; Sa,So 11:30—14:30 und 17:00—23:00 | subtype = greek | lastedit = 2026-04-06 | description = Beliebter Grieche in passendem Ambiente.
}}
* {{vCard | name = Pizzeria Flamingo | type = restaurant | address = Steingrubenstraße 7, 99947 Bad Langensalza | lat = 51.10656 | long = 10.64428 | phone = +49 03603 1277589 | instagram = pizzeriaflamingoo | hours = Mo–Sa 10:30–21:30, So 13:00–21:30 | lastedit = 2026-04-06
}}
* {{vCard | name = PHANtastic | alt = Asian Fusion | comment = Gästeparkplatz hinten im Schlosshof 3, 99947 Bad Langensalza | type = restaurant | address = Marktstraße 3, 99947 Bad Langensalza | lat = 51.10866 | long = 10.64578 | phone = +49 (0)3603 8955218 | hours = Di–Sa 10:30–22:00, So 11:30–22:00, Mo nur feiertags geöffnet | lastedit = 2026-04-17 | description = Neueröffnung 11.4.2026, Aktionsangebot 11.4.–19.4.2026 15% Rabatt.
}}
* {{vCard | name = Ratswaage | alt = Restaurant, Bier– und Weinkeller | type = restaurant | url = https://ratswaage-lsz.de/ | address = Mühlhäuser Straße 40, 99947 Bad Langensalza | directions = Der Ratskeller liegt im historischen Stadtzentrum. | lat = 51.10893 | long = 10.64494 | phone = +49 (0)3603 8955310 | email = info@ratswaage-lsz.de | hours = tägl. 11:00–14:30, 17:00–23:00 | image = Restaurant Ratswaage Bad Langensalza.jpg | lastedit = 2026-04-17
}}
* {{vCard|name=Asia Food & Salza Grill|type=restaurant|address=Rathausstraße 9, 99947 Bad Langensalza|lat=51.10818|long=10.64437|phone=+49 (0)3603 84 86 16|hours=Mo–Fr 11:00–21:00, So/Fe 11:00–21:00|price=günstig|payment=derzeit nur Barzahlung|subtype=asian, grill, takeaway|lastedit=2026-04-09|description=alle Speisen auch zum Mitnehmen, ein paar Tische innen und ein paar draußen, Personal freundlich, Essen gut, „große Portion“ heißt zu Recht so!
}}
* {{vCard | name = Schnitzel-Steak-Haus | type = restaurant | url = https://schnitzel-steak-haus.metro.rest/?lang=de | address = Marktstraße 19, 99947 Bad Langensalza | lat = 51.10830 | long = 10.64739 | phone = +49 (0)3603 896970 | email = dido2004@abv.bg | hours = Mo–So 10:00–22:00 | lastedit = 2026-04-10 | description = Jede Woche ein Mittagsmenü: typischerweise Suppe, zwei verschiedene Hauptgerichte, Eis.
}}
== Nachtleben ==
== Unterkunft ==
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig für Übernachtungsgäste eine [[#Kurtaxe|Kurtaxe]]. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza.
* {{vCard | name = Hotel Sante Royale | type = hotel, restaurant | url = https://www.sante-royale.de/hotels/bad-langensalza | address = Parkstraße 1, 99947 Bad Langensalza | lat = 51.11412 | long = 10.64527 | tollfree = +49 0800 9022090 | email = info.badlangensalza@sante-royale.com | subtype = 4, free wlan, restaurant, sauna, spa, dogs, indoor pool, outdoor pool | lastedit = 2026-04-07 | description = Großes, modernes Hotel mit 130 Zimmern und Suiten.
}}
* {{vCard| type = hotel |name=Hotel L.A. CHICAGO|address=Tonnaerstraße 33, 99947 Bad Langensalza |phone=+49 03603 856836|email=info@lachicago.de|fax=+49 03603 856837|url=http://www.lachicago.de |hours=|price= |lat=51.10675 |long=10.65281
}}
* {{vCard| type = hotel |name=Zur Lohgerberei |address=Löbersgasse 2, 99947 Bad Langensalza |phone=+49 03603 846131 |email=kontakt@pension-zur-lohgerberei.de |fax=+49 03603 894344 |url=http://www.pension-zur-lohgerberei.de/ |hours=|price=EZ ab 37 €, DZ ab 27 € (jeweils inkl. Frühstück). |lat=51.11096 |long=10.64662 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Zöllner |address=Steinweg 1, 99947 Bad Langensalza |phone=+49 03603 815664 |email=info@pension-zoellner-thueringen.de |fax= |url=http://www.pension-zoellner-thueringen.de/ |hours=|price=EZ ab 30 €, DZ ab 50 € (jeweils inkl. Frühstück). |lat=51.10611 |long=10.64204 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Bergstube |address=Bergstraße 7, 99947 Bad Langensalza |phone=+49 03603 846980 |email=j.schroe@tonline.de |fax=+49 03603 814132 |url=http://bergstube.de/ |hours=|price=EZ ab 35 €, DZ als EZ ab 43 €, DZ ab 55 €. |lat=51.13836 |long=10.63443 |lastedit= |description=
}}
* {{vCard| type = hotel |name=Gasthaus zur Weintraube |address=Mühlhäuser Straße 11, 99947 Bad Langensalza |phone=+49 03603 846133 |email=info@zur-weintraube.de |fax=+49 03603 892830 |url=http://zur-weintraube.de/ |hours= Gasthaus: tägl. ab 10:00 |price=EZ ab 35 €, DZ ab 65 € (jeweils inkl. Frühstück. |lat=51.10943 |long=10.64351 |lastedit=|description=
}}
== Sicherheit ==
* {{vCard|name=Polizeistation |wikidata=|type=police |address=Bahnhofstraße 3, 99947 Bad Langensalza |phone=+49 03603 8310 |email=|fax=|url=|hours=|price=|lat=51.10375 |long=10.64196 |lastedit=|description=}}
== Gesundheit ==
=== Krankenhäuser ===
* {{vCard | name = Hufelandklinik | type = hospital | wikidata = Q107295076 | hours = 24/7 (Notaufnahme) | lastedit = 2026-04-06
}}
* {{vCard|name=Rehaklinik |wikidata=|type=hospital |address=Kurpromenade 6-8, 99947 Bad Langensalza |phone=+49 03603 8030 |email=info@rehaklinik-badlangensalza.de |fax=+49 03603 803100 |url=https://www.rehaklinik-badlangensalza.de/ |hours=|price=|lat=51.10941 |long=10.65063 |lastedit=|description=
}}
=== Sonstiges ===
Es gibt im Ort ein Ärztehaus, ein Medizinisches Versorgungszentrum (MVZ), dieserse Arztpraxen, Zahnärzte sowie drei Apotheken und zwei Sanitätshäuser.
* {{vCard | name = Therapie- und Kurbereich mit MTT der Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = '''Therapie+Kurbereich'': Mo—Fr 7:30—19:30 und nach Vereinbarung; ''Medizinische Trainingstherapie'': Mo—Fr 9:00—19:30 und nach Vereinbarung, Sep—Feb zusätzlich Sa 10:00—14:00 (außer an Feiertagen) | lastedit = 2026-04-13 | description = Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT). | copy-marker = Friederiken Therme
}}
== Praktische Hinweise ==
* {{vCard|name=Touristinformation Langensalza|type=tourist information|url=https://badlangensalza.de/kur-tourismus/service-info/touristinfo/|address=Bei der Marktkirche 11, 99947 Bad Langensalza|lat=51.10791|long=10.64866|phone=+49 (0)3603 834424|fax=+49 (0)3603 834421|email=touristinfo@badlangensalza.de|hours=Apr—Okt: Mo—Fr 9:00—18:00, Sa/So 10:00—16:00, Fe 10:00—14:00; Nov—Mär: Mo-Fr 9:00—17:00, Sa/Fe 10:00—14:00, So geschlossen}}
* Die Stadt bietet an diversen Orten '''kostenloses WLAN''' namens [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/w-langensalza/ W-LANgensalza]. Es gibt einen [https://badlangensalza.de/core/webp-express/webp-images/uploads/sites/2/2024/03/csm_Stadtplan-WLAN_65049e16b6.jpg.webp Stadtplan mit den eingezeichneten Hotspots], zur Verfügung steht es hier:
** Kultur- und Kongresszentrum
** An der Alten Post/Jahnplatz
** Wiebeckplatz, Ecke Lange Straße
** Rathaus
** Bei der Marktkirche
** Parkplatz am Ende der Friedrich-Mann-Straße
** Kornmarkt
** Touristeninformation
* Stadtführungen werden angeboten. Die Informationen dazu sind bei der Tourismusinformation zu erfragen.
* Die Filiale der Post befindet sich in der Tonnaer Straße 38.
=== Kurtaxe ===
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [https://badlangensalza.de/kur-tourismus/planen-buchen/gaestekarte/ Kurtaxe]. Sie beträgt für Erwachsene 3,00{{nnbsp}}€/Übernachtung, für Kinder im Alter von 6 bis 15 Jahren 1,50{{nnbsp}}€/Übernachtung. Für Schwerbehinderte und Blinde mit Schwerbehindertenausweis wird der Kurbeitrag um 50{{nnbsp}}% ermäßigt. Erwerbsunfähige Kriegsbeschädigte und Begleitpersonen von Schwerbehinderten sind von der Kurtaxe befreit. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza. Details: [https://badlangensalza.de/storage/sites/2/2025/03/Kurbeitragssatzung.pdf Kurbeitragssatzung der Stadt Bad Langensalza (pdf)]
== Ausflüge ==
* Der [[Nationalpark Hainich]] mit dem [[w:Baumkronenpfad_Hainich|Baumkronenpfad]] ([https://www.nationalpark-hainich.de/de/ausflugsziele/baumkronenpfad.html Webseite des Nationalparks], [https://www.baumkronen-pfad.de/ Webseite Bad Langensalza]) an der [[w:Thiemsburg|Thiemsburg]] liegt nur wenige Kilometer südlich der Stadt.
* [[Eisenach]] mit der [[w:Wartburg|Wartburg]] ist mit dem Auto in weniger als 30 Minuten zu erreichen.
<!--
== Literatur ==
-->
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.10806| long= 10.64667| radius= }}
{{IstInKat|Thüringen||Thüringer Kernland||Kurort in Thüringen}}
kj5f4r806tvkohi4l510bkeqkevka3r
1769217
1769216
2026-04-17T11:49:27Z
Ousw
57729
/* Mit der Bahn */ Geänderte vCard für Bahnhof Langensalza – "–" vereinheitlicht
1769217
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/ Touristinformation]
| TouriInfoTel = +49 (0)3603 834424
}}
Die Kur- und Rosenstadt '''Bad Langensalza''' ist eine ehemalige Kreisstadt am Nordwestrand des [[Thüringer Kernland|Thüringer Beckens]]. Neben einer Therme und zwei Kliniken kennzeichen die Stadt besonders ihre historische Altstadt, zehn Parks und Gärten, die teils ganzjährig zum Besuch einladen, sowie die Blumenpracht im gesamten Ort.
== Hintergrund ==
{{Mapframe|51.10806| long= 10.646|zoom=14|height=300|width=300|type=geoline}}
Bad Langensalza (bis 1956: Langensalza) ist ein Schwefel-Sole-Heilbad und staatlich anerkannter Kurort. Zu Beginn des 9. Jahrhunderts wurde erstmals ein Ort namens Salza – im lateinischen Text Salzaha – urkundlich erwähnt. Bad Langensalza gehört zu den historisch bedeutendsten Städten im Thüringer Becken, wovon die reichhaltige historische Bausubstanz in der Altstadt zeugt. Als eine der Waidstädte war Bad Langensalza sehr wohlhabend, sodass große Kirchen und eine mächtige Stadtmauer aus Langensalzaer Travertin, der direkt im Südwesten der Altstadt abgebaut werden konnte, errichtet wurden. Um 1300 wurde die Stadtmauer mit vier Eingangstoren fertiggestellt. Ein verheerender Stadtbrand legte 1711 Teile der Altstadt in Schutt und Asche. Die im prachtvollen Barockstil an ihrer Stelle entstandenen Bürgerhäuser prägen noch heute das Bild der Stadt. Heute sind von der ältesten Stadtbefestigung noch vier Stadtmauertürme erhalten.
Bekannt ist die Stadt auch für die [[w:Schlacht_bei_Langensalza|Schlacht bei Langensalza]] zwischen Preussen und Hannover 1866, in deren Folge Preussen Hannover annektierte. Im [[#vCard_Arboretum|Arboretum]] steht das daran erinnernde [[w:Langensalza-Denkmal_(Bad_Langensalza)|Denkmal]] der Stadt.
Im Juni 1938 wurde im Reinhardbrunner Hof eine antisemitische Hetzausstellung gezeigt. Ebenso wurden Sinti- und Roma-Familien verfolgt, von denen einige im KZ Langensalza, einem Außenlager des KZ Buchenwald, inhaftiert waren. Dort mussten insgesamt etwa 1300 ausländische Frauen und Männer Zwangsarbeit für ein Projekt der Junkers verrichten. Am 5. April 1945 wurde Langensalza durch amerikanische Truppen besetzt und Anfang Juli an die Rote Armee übergeben. So wurde es Teil der Sowjetischen Besatzungszone (SBZ) und ab 1949 der DDR.
Seit dem 28. Juni 1956 trägt Langensalza den Namenszusatz Bad. Seit 1990 wurde die Altstadt zu einem großen Teil restauriert. Später konnten in der Stadt Heilquellen erschlossen werden, die bis heute dem Kurbetrieb dienen. Damit einher ging die Anlage mehrerer Parks, wie Rosengarten und Japanischer Garten. Seit dem 22. Juni 2002 nennt sich Bad Langensalza „Rosenstadt“. Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [[#Kurtaxe|Kurtaxe]].
== Anreise ==
=== Mit dem Flugzeug ===
* Die nächstgelegenen Verkehrsflughäfen mit Linienverkehr sind der {{marker|type = airport|name = Flughafen Leipzig Halle |wikidata = Q668382}} und der {{marker|type = airport|name = Flughafen Frankfurt am Main|wikidata = Q46033}}.
* Auf dem in ca. 65{{nnbsp}}km entfernten {{marker | type = airport | name = Flughafen Erfurt–Weimar | wikidata = Q703794}} starten und landen mittlerweile nur noch Chartermaschinen. Er ist aber weiterhin für Geschäfts- und Sportflieger offen.
* {{vCard|name=Flugplatz Bad Langensalza|type=landing site|wikidata=Q2900762|directions=ca. 3{{nnbsp}}km nördlich|description=Der als [[w:Sonderlandeplatz|Sonderlandeplatz]] klassifizierte Fluplatz verfügt über eine 800{{nnbsp}}m lange Graslandebahn und kann von Ultraleichtfliegern angeflogen werden. Der Platz wird betrieben vom Flugsportverein „Otto Lilienthal“.}}
=== Mit der Bahn ===
{{vCard | name = Bahnhof Langensalza | type = rail | wikidata = Q62415577 | lastedit = 2026-04-17 | description = Betreuung nur mittels '''Video'''-Reisezentrum (geöffnet Mo–Fr 7:15–18:30, Sa 8:15–13:30), behindertengerechte Toilette nur mit entsprechendem Schlüssel. Am Bahnhof halten Regionalzüge aus Erfurt über Gotha oder über Gräfentonna sowie aus Kassel und Göttingen über Leinefelde und Mühlhausen. Der Bahnhof liegt am südlichen Stadtrand etwa ein Kilometer vom Stadtzentrum. Jeder hier verkehrende Zug bedient auch den Landkreis Gotha. Das nahegelegene [[Gotha]] bietet den nächsten ICE-Bahnhof. Mit der Stadtbuslinie B kann man direkt von der Haltestelle am Bahnhofsvorplatz Mo-Fr tagsüber halbstündlich und Sa vormittags alle zwei Stunden in die Innenstadt und zurück fahren; Aus-/Einstieg an der Endhaltestelle „Treffpunkt Wiebeckplatz“ (Fahrplan siehe [[#Mobilität|Mobilität]]). Das geschlossene Bahnhofsgebäude ist leider nicht einladend, obwohl es auch so noch vom früheren Wohlstand der Stadt zeugt, man wird aber im Ort dafür entschädigt. Zwischen Bahnhof und Busbahnhof gibt es den Imbiss ''Herbigs Grill''. }}
=== Mit dem Bus ===
Der {{Marker | type = bus | name = ZOB | lat=51.10166 | long=10.64270}} befindet sich ein Stück neben dem Bahnhofsvorplatz. Aufgrund der Lage bietet er nicht nur die Möglichkeit, über verschiedene Buslinien die benachbarten Gemeinden zu erreichen, sondern ermöglicht direkt zwischen Schienen-, Buslinien- und Stadtbusverkehr (Linie B, Haltestelle nicht am ZOB, sondern direkt am Bahnhofsvorplatz) zu wechseln. Auch [[Fernbusse in Deutschland|Fernbusse]] halten hier.
=== Auf der Straße ===
* Über die Autobahn {{RSIGN|DE|A|4}}, Anschlussstelle {{Ausfahrt|Eisenach-Ost,|40a,}} und der {{RSIGN|DE|B|84}} gelangt man in die Stadt.
* Die {{RSIGN|DE|B|247}} führt von [[Gotha]] oder von [[Mühlhausen (Thüringen)]] nach Bad Langensalza.
=== Mit dem Fahrrad ===
Der [[Unstrut-Radweg|Unstrut-Radweg]] durchquert den Ortsteil Thamsbrück.
== Mobilität ==
Aufgrund der Größe ist die Stadt gut zu Fuß zu erkunden. Parkplätze stehen auch an vielen Stellen zur Verfügung. Es gibt zwei Stadtbuslinien: [https://www.salzatours.de/fahrplanauskunft/ Fahrplanauskunft] der Salza–Tours König GmbH & Co. KG
* '''Linie A''' Gewerbegebiet Nord '''–''' EKZ Rasenmühlenweg – Treffpunkt Wiebeckplatz – Gutenbergstraße – Gewerbegebiet Ost
* '''Linie B''' Ufhoven Schenke – Bahnhof – Gutenbergstraße – Treffpunkt Wiebeckplatz & zurück
===Thiemsburg===
Buslinie 150 Verkehrsgemeinschaft Wartburgregion im Sommer mindestens 4 mal täglich Bad Langensalza - [[Thiemsburg]] - [[Behringen]] - [[Eisenach]].
== Sehenswürdigkeiten ==
[[Datei:LangensalzaGottesackerkirche.JPG|mini|Gottesackerkirche St. Trinitatis]]
=== Kirchen ===
* {{vCard | name = Marktkirche ''St. Bonifacii'' | comment = ev. Hauptkirche | type = church | wikidata = Q1901085 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/marktkirche-st-bonifacii/ | phone = +49 (0)3603 846402 | hours = Mo-Sa 14:00–16:00 und nach Vereinbarung | description = Die Marktkirche St. Bonifacii ist die evangelische Hauptkirche der Stadt und wurde in mehreren Bauphasen von Mitte des 13. bis Ende des 16. Jahrhunderts im Stil der Gotik erbaut und erweitert. Aus diesem Grund besteht sie aus vielen sich deutlich voneinander abhebenden Teilen. Eine Besonderheit ist die Einzeigeruhr am 74 m hohen Turm, einem der höchsten Kirchtürme in Thüringen. Die Malereien aus dem 16. Jahrhundert wurden erst Anfang des 20. Jahrhunderts wieder freigelegt. Die barocke Kanzel im Mittelschiff stammt aus dem Jahr 1734. Das Altarbild, eine Kreuzigungsszene darstellend, wurde vermutlich zwischen 1486 und 1490 hergestellt. Mai–Sep. Orgelmusik zur Marktzeit um 12 Uhr.
}}
* {{vCard | name = Bergkirche ''St. Stephani'' | type = church | wikidata = Q16857152 | url = https://evangelische-kirche-lsz.de/bergkirche-st-stephani-st-stephan/ | description = Ursprünglich außerhalb der ersten Stadtmauer als dreischiffige Basillika erbaut war sie die Pfarrkirche der Neustadt. Das im Jahr 1196 erstmals urkundlich als Kapelle erwähnte Gotteshaus ist der älteste Sakralbau in Bad Langensalza. Aus einer ursprünglichen Mönchskapelle entwickelte sich die Kirche durch Um- und Anbauten. Die Kanzel wurde 1590 im Renaissancestil aufgebaut. Die Glasfenster sind Stiftungen der Bürger im 19. Jahrhundert. An den Decken sind heute noch die Wappen der Spenderfamilien zu sehen. Die Orgel der Kirche wurde 1884/1985 von dem Bad Langensalzaer Orgelbauer [[w:Friedrich Erdmann Petersilie|Friedrich Petersilie]] erbaut. Der Turm hat eine Höhe von 53,5{{nnbsp}}m.
}}
* {{vCard | name = Gottesackerkirche ''St. Trinitatis'' | type = church | wikidata = Q16857154 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/gottesackerkirche-st-trinitatis/ | address = Tuchmachergasse 5, 99947 Bad Langensalza | directions = Im [[#vCard_Arboretum|Arboretum]], direkt neben dem Eingang. | hours = Nur bei Veranstaltungen zugänglich | lastedit = 2026-04-14 | description = Die Friedhofskirche wird als Konzertkirche mit vielfältigen musikalischen Veranstaltungen und einzigartiger Akustik genutzt. '''Geschichte''': Die Kirche wurde 1734–1739 unter der Schirmherrschaft von Herzog ''Christian von Sachsen–Weißenfels'' mit Travertinsteinen der im 30-jährigen Krieg zerstörten Marienkirche errichtet, woran die Kartusche über dem östlichen Portal erinnert. Über das Spitzbogenportal an der Westseite gelangt man zu den restaurierten Grüften. In Gegensatz zum strengen, symmetrischen Außenbau steht die reiche barocke Innenausstattung der Saalkirche mit zweigeschossigen Holzemporen und dem Kanzelaltar von 1734. Die aufwendige Gestaltung des Deckengewölbes zeigt sich in den barocken Malereien in ovalen Medaillons und Stuckaturen. Zur Ausstattung gehören das Madonnen-Relief aus der Marienkirche, zwei barocke Epitaphien und eine Orgel von ''Friedrich Erdmann Petersilie'' (1869). Umfangreiche Sanierungs- und Restaurierungsarbeiten 2008/2009 führten zu neuem Glanz.
}}
=== Bauwerke ===
* {{vCard|name=Rathaus|type=town hall|wikidata=Q119440667|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/rathaus/|description=Das Glockenspiel mit 32 Glocken und 5 Figuren kann 16 verschiedene Melodien spielen und erklingt täglich um 12 und 18 Uhr. Möglichkeit zu einer [https://badlangensalza.de/kur-tourismus/planen-buchen/gastefuhrungen/gruppenfuehrungen-3/unter-dem-pflaster/ Stadt- und Kellerführung], Dauer: 120 min, Preis 135,00 €, optional: „Herrliches Gesöff“ zum Abschluss zzgl. 2,50 € pro Getränk.
}}
* {{vCard | name = Schloss Dryburg | type = chateau | wikidata = Q2240669 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/schloss-dryburg/ | hours = Galerie: Do–Sa 14:00–17:00 und nach Vereinbarung. An Feiertagen geschlossen | lastedit = 2026-04-12 | description = Das Schloss Dryburg ist das älteste erhaltene, komplett aus Stein gemauerte Profangebäude in der Stadt. Von der mittelalterlichen Kernburg ist noch der Westflügel erhalten. Er beherbergt seit Anfang 2011 unter anderem die Galerie des [https://www.kunstwestthueringer.com/ Kunstwestthüringer e. V.], für Kunstliebhaber ein Muss. Der gemeinnützige Kunstverein sieht seine Aufgabe in Präsentation, Vermittlung und Aktion in Sachen zeitgenössischer bildender Kunst. Pro Jahr sind ca. sechs Ausstellungen zu sehen, eine davon immer im Mai ist die Präsentation von Werken internationaler Künstler.
}}
* {{vCard | name = Friederikenschlösschen | type = chateau | wikidata = Q19279910 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/friederikenschloesschen/ | address = Mauergasse 2, 99947 Bad Langensalza | hours = „Tag des offenen Schlösschens“ jeweils 14:00–17:00, aktuell: 17.05.26, 28.06.26, 12.07.26, 02.08.26, 16.08.26, 13.09.26 (Tag des offenen Denkmals 10:00–17:00), 18.10.26 | price = frei / auf Spendenbasis | lastedit = 2026-04-08 | description = Die Herzoginwitwe Friederike von Sachsen-Weißenfels ließ 1749 bis 1751 das Rokoko-Lustschloss errichten. Im Festsaal des Friederikenschlösschens werden Kleinkunstprogramme und Kammerkonzerte aufgeführt.
}}
* {{vCard | name = Stadtmauer und Türme | type = monument | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmauer-und-tuerme/ | lat = 51.10934 | long = 10.64943 | description = Bad Langensalza besitzt bis heute einen gut erhaltenen mittelalterlichen Stadtmauerring, von dem noch 16 Wachtürme und ein Eingangstor erhalten geblieben sind. Der 35,40 Meter hohe Klagetorturm an der Kurpromenade ist einer der wenigen noch erhaltenen Tortürme in Thüringen.
}}
* {{vCard | name = Kultur- und Kongresszentrum Bad Langensalza | comment = Jahnplatz als Parkfläche direkt hinter dem Haus | type = conference center | url = https://www.kkz-badlangensalza.de/ | address = Bürgermeister–Schönau–Platz 1, 99947 Bad Langensalza | lat = 51.11050 | long = 10.64223 | phone = +49 (0)3603 859 190 | email = kkz@bad-langensalza.de | lastedit = 2026-04-14 | description = NUTZUNG: Für Veranstaltungen (Tagung, Festlichkeit oder Konzert) von 10 bis zu 500 Personen: Unterschiedliche Räumlichkeiten (Saal, Bühne, Clubraum (Hufelandraum), Probesaal (Wieglebsaal), Saalnebenräume (Kloppstocksaal), kleiner Saal (Hermstedtsaal), Foyer) für jeden Anlass, moderne Tagungs- und Bühnentechnik, erfahrenes Veranstaltungsmanagement und hochwertige Gastronomie. Die Stadt veranstaltet hier (wie in der [[#vCard_Q16857154|Konzertkirche]] und an anderen Orten) diverse Events, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender]. GESCHICHTE: Das heutige Kultur- und Kongresszentrum hat eine lange Geschichte und wurde ehemals als Schützenhaus (erstmalige Erwähnung der „sagittarii“, der „Kappentragenden Pfeilschützen“, im Jahre 1380) erbaut und ersetzte zwei Vorgängerbauten für die Langensalzaer Schützengilde. Von 1717–1733 wurde das erste Schützenhaus errichtet und litt dann unter den deutschen Befreiungskriegen (1813 Pulvermagazin, 1814 Lazarett). Das baufällige Fachwerkgebäude diente nicht mehr seinem Zweck und wurde 1833 abgerissen. Der Neubau wurde dem Mauermeister ''Johann Benjamin Schneider'' und dem Zimmermeister ''Christian Andreas Wenk'' übertragen. Da die Schützen die Kosten nicht tragen konnten, wurden 215 Aktien verkauft. Grundsteinlegung war 1833, die Einweihung selbst fand im Juli 1834 statt. Der umfangreichere Neubau erhielt an der Frontseite einen repräsentativen Balkon sowie einen dreiseitigen Giebel. Bei den Kapitulationsverhandlungen 1866 (Hannover vs. Preußen) gastierte der König Georg V. von Hannover im Juni 1866 im Schützenhaus und der Kriegsrat besiegelte die Kapitulation. Im Nachhinein erfolgte die Benennung als „Königszimmer“ oder „Blaues Zimmer“. im Dezember 1906 wurde das gesamte Gebäude ein Raub der Flammen, glücklicherweise gab es.eine Entschädigungszahlung der ''Provinzial-Feuersozietät''. Das nach Bauplänen des hiesigen Stadtbaumeisters '''Ferdinand Kummer'' im November 1907 fertiggestellte Gebäude wurde mit Festbankett und Festball eingeweiht. Die veralteten Schießstände mussten auf königlichen Befehl erneuert und umzäunt werden. Im 1. Weltkrieg pausierten die Vereinsaktivitäten und das Schützenhaus wurde ab Herbst 1914 bis Anfang 1919 als Reservelazarett genutzt. Nach dem 2. Weltkrieg wurde das Schützenhaus von der Besatzungsmacht beschlagnahmt und 1946 mit dem Ziel der Errichtung eines Kulturzentrums der Sozialistischen Einheitspartei Deutschlands übertragen. Die Umbenennung des Gebäudes in Kulturhaus erfolgte schließlich Abfang Oktober 1952. Ab Januar 1961 wurde das geschlossene Kulturhaus in drei Bauabschnitten umgestaltet, die Gastronomie modernisiert. Mit einer symbolischen Schlüsselübergabe eröffnete das renovierte Kulturhaus Ende April 1962 und der Kulturhaus–Beirat kümmerte sich um die Nutzung. Der Kulturhausgarten wurde erstmals 1967 genutzt, die alte Kegelbahn 1978 abgerissen. Im Juni 1986 erfolgte einen Komplettumbau. Aufgrund von finanziellen und materiellen Engpässen wurden die Handwerker immer wieder unterbrochen, denn in den Wirren der Wendezeit versiegten die Geldquellen. Mit Hilfe von Bundes- und Landesmitteln konnte das Vorhaben eines modernen Kultur- und Kongresszentrums schließlich vollendet werden. Die Wiedereröffnung fand im Rahmen einer feierlichen Veranstaltung am 21. Februar 1992 statt. Der neue Name repräsentierte die kulturellen und künstlerischen Aspekte. In Vorbereitung des Landesprojektes ''Mensch–Natur–Städtebau'' wurde im Jahr 2009 das Kultur- und Kongresszentrum abermals umfangreich restauriert und modernisiert, insbesondere die Rosenlounge, die Außenfassade und der große Saal erstrahlen in neuem Glanz.
}}
=== Aussichtspunkt ===
[[Datei:Langensalza Dreitürmeblick.jpg|mini|Drei-Türme-Blick]]
[[Datei:LangensalzaDreitürmeblick2.JPG|mini|Blick durch die Skulptur]]
* {{vCard|name=Drei-Türme-Blick|type=viewpoint | lat = 51.1092 | long = 10.6417 |directions = vor der Gottesackerkirche neben dem Eingang in das Arboretum |url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/drei-tuerme-blick/ |description= Vom „Argusblick“ (die Skulptur wurde von dem Bad Langensalzaer Künstler [[w:Harald_Stieding|Harald Stieding]] geschaffen), einem aus Stein gehauenen Auge, das auf einer Travertinsäule thront, sind der Turm der einstigen Augustinerkirche, der Turm des Rathauses und schließlich der Turm der Marktkirche St. Bonifacii zu sehen. Diese drei Türme prägen die Ansicht der Kurstadt und sind immer wieder ein beliebtes Fotomotiv.
}}
=== Museen ===
[[Datei:Schild Wassermuseum vor Klagetor Bad Langensalza.jpg|mini|upright|Schild Wassermuseum mit dem Klagetor im Hintergrund]]
* {{vCard|name=Stadtmuseum im Augustinerkloster|type=museum|wikidata=Q76639038|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmuseum-im-augustinerkloster/|address=Augustinerplatz 1-2, 99947 Bad Langensalza|phone=+49 03603 813002|email=stadtmuseum@bad-langensalza.de|hours=Fr–So 13:00–17:00, Feiertagsregelungen beachten|price=Normal 5,00{{nnbsp}}€/Tag, erm. 4,00{{nnbsp}}€/Tag, Kinder und Schüler frei; Kombiticket Apotheken- und Stadtmuseum Erw. 8,00{{nnbsp}}€, erm. 6,00{{nnbsp}}€|lastedit=2026-04-01
}}
* {{vCard | name = Thüringer Apothekenmuseum | comment = im „Haus Rosenthal“ | type = museum | wikidata = Q20479980 | hours = Derzeit wie [[#vCard_Q76639038|Stadtmuseum]] | price = Wie [[#vCard_Q76639038|Stadtmuseum]] | lastedit = 2026-04-05 | description = Das historische Gebäude „Haus Rosenthal“ beherbergt seit Mai 2014 das Thüringer Apothekenmuseum. Die Besucher können im restaurierten Baudenkmal aus dem Jahr 1515, dessen Renovierung in einem FIlm gezeigt wird, u.{{nnbsp}}a. die historischen Wandvertäfelungen und zwei Holzstuben auf sich wirken lassen. Für die gelungene Sanierung erhielt die Stadt im Wettbewerb um den''Thüringer Holzbaupreis 2013'' eine Anerkennung sowie im Jahr 2015 den Thüringer Denkmalschutzpreis. Im Obergeschoss des Baudenkmals wird auf 276{{nnbsp}}m² eine Ausstellung zur Pharmaziegeschichte des 18. bis 20. Jahrhunderts präsentiert. In acht Räumen sind die verschiedenen Arbeitsbereiche einer alten Apotheke abgebildet. Neben einer Darstellung des Lebens und Wirkens des Langensalzaer Apothekers und Chemikers ''Johann Christian Wiegleb'' (1732–1800) werden Standgefäße aus Glas, Porzellan und Holz sowie eine Vielzahl an pharmazeutischen Arbeitsgeräten zur Herstellung von Arzneimitteln gezeigt. Das Museum ergänzt der angrenzende [[#vCard_Apothekergarten|Apothekergarten]], in dem mehr als 80 verschiedene, überwiegend heimische, Heilkräuter wachsen. Hinweis: Im Gebäude sind nur die Ausstellungen im Erdgeschoß sowie der Apothekergarten barrierefrei zu erreichen.
}}
* {{vCard | name = Rosenmuseum | comment = beim [[#vCard_Q112079448|Rosengarten]] | type = museum | address = Vor dem Klagetor 3, 99947 Bad Langensalza | directions = Zugang beim Kassenhäuschen des Rosengartens | lat = 51.11081 | long = 10.65237 | phone = +49 03603 834424 | hours = Wie [[#vCard_Q112079448|Rosengarten]] | lastedit = 2026-04-08 | description = Das Museum hat sich seit seiner Einrichtung kaum verändert und strahlt daher ein entsprechendes Flair aus, ist aber auch sehr informativ. Beispielsweise lernt man die In-vitro-Vermehrung von Rosen, bei der dünnste Scheiben von Rosenknospen steril in Nährmedien kultiviert werden, kennen, die die schnelle Produktion großer Mengen von Klonen ermöglicht. Das Museum soll beginnend mit der Saison 2026 sukzessive erneuert und mit modernen Medien ausgestattet werden.
}}
* {{vCard|name=Historische Druckerei|id=Historische_Druckerei|type=museum|lat=51.1092|long=10.6512|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/historische-druckerei/|hours=ganzjährig Di,Mi, Fr 9:00–12:00, sowie nach Vereinbarung|price=frei|description=Im Park des Friederikenschlösschens in der ehemaligen Kutscherremise befindet sich seit März 2008 die „Historische Druckerei“. Sie beherbergt heute u.{{nnbsp}}a. eine beeindruckende Handtiegelpresse aus dem Jahr 1854 sowie diverse Utensilien für den Handsatz und wird in kleinem Rahmen nach wie vor für Sonderdrucke genutzt. Die Druckerei kann an drei Tagen in der Woche vormittags ganzjährig besichtigt werden und die Besucher erhalten auf Wunsch von einem der sie betreuenden ehemaligen Setzer eine Führung mit der Möglichkeit, selbst ein Andenken zu drucken.}}
* {{vCard | name = Wassermuseum | type = museum | address = Hüngelsgasse 13, 99947 Bad Langensalza | lat = 51.11079 | long = 10.64951 | phone = +49 (0)3603 84070 | hours = Di 8:00–12:00, 13:30–17:30; Do 8:00–12:00, 13:30–15:30 | image = Wassermuseum Bad Langensalza.JPG | lastedit = 2026-04-07 | description = Betreiber: Verbandswasserwerk Bad Langensalza / Abwasserzweckverband (WAZV) "Mittlere Unstrut". Die beiden Google-Rezensionen des winzigen Museums im Eingangsbereich des Amtes innerhalb des letzten Jahres sind 5/5.
}}
=== Parks und Gärten ===
[[Datei:Bad Langensalza Arboretum Lageplan.jpg|mini|Lageplan Arboretum]]
[[Datei:Bad Langensalza Arboretum Pflanzensystematik.jpg|mini|Pflanzensystematik Arboretum]]
[[Datei:Bad Langensalza, japanischer Garten, Bild 8.jpg|mini|Japanischer Garten]]
[[Datei:Bad Langensalza 2022 - Rosengarten.jpg|mini|Rosengarten]]
[[Datei:Erblühende Magnolien am Wasserlauf vor Magnoliengarten Bad Langensalza.jpg|mini|Erblühende Magnolien am Wasserlauf vor dem Magnoliengarten]]
[[Datei:Ulmus parvifolia "Chinesische Kiefer" frei aufrechte Form Alter ca. 130 Jahre Japanischer Garten Bad Langensalza 02.jpg|mini|upright|Austreibender Bonsai Ulmus parvifolia „Chinesische Kiefer“, frei aufrechte Form, Alter ca. 130 Jahre, vor blühendem Baum im Japanischen Garten]]
Die Stadt besticht durch eine Vielzahl von [https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/ Parks und Gärten]:
* {{vCard | name = Arboretum | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/arboretum/ | lat = 51.10834 | long = 10.63949 | hours = Mär,Okt: täglich 10:00–18:00, Apr–Sep: täglich 10:00–19:00, Nov–Feb: geschlossen | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Das Arboretum (Baumgarten) ist eine geschichtsträchtige Parkanlage. Es lädt neben Entspannung und Erholung zum bummeln durch die Vielfalt an Bäumen und Sträuchern ein. Hier ist der Jahrezeitenwechsel am deutlichsten von allen Gärten der Stadt zu erleben. So zeigt sich das Arboretum von von Mitte März bis Oktober im bunten Blüten- und Blätterkleid. Auch bevor die Bäume ausschlagen bereichern den Garten zur Frühjahrsblüte durch früh blühende [[w:Magnolien|Magnolien]] und [[w:Frühjahrsblüher|Frühjahrsblüher]] mehr als nur einzelne Farbtupfer. Im Arboretum wachsen über 200 verschiedene Arten von [[w:Gehölz|Gehölz]]en, die zu mehr als 20 Pflanzenfamilien gehören. Eine umfangreiche Erweiterung der Gehölzsammlung konnte fast ausschließlich durch Spenden von Bürgern, Unternehmen und Institutionen realisiert werden. Ergänzt wird der Eindruck durch die zwölf Skulpturen aus Holz und Muschelkalk von neun Künstlern aus vier Ländern sowie einem Zeugnis der Stadtgeschichte, dem ''Hannoveraner Denkmal'', das an die Schlacht bei Langensalza 1866 erinnert. Die ebenfalls dort befindliche [[#vCard_Q16857154|Gottesackerkirche]] aus dem Jahr 1734 (von 2008–2009 saniert) wird als Konzertkirche ''St. Trinitatis'' genutzt. Das Arboretum ist zusätzlich zu einem Lageplan reichlich mit Text und Systematiken auf Schautafeln beschildert, so dass man viel über die [[w:Systematik des Pflanzenreichs|Systematik des Pflanzenreichs]] erfährt und die Gehölze entsprechend leicht finden und zuordnen kann. | id = Arboretum
}}
* {{vCard | name = Botanischer Garten ''Garten der Vielfalt'' | type = botanical garden | wikidata = Q4948492 | hours = Mai–Okt täglich 10:00–18:00 | price = frei | subtype = nodogs | lastedit = 2026-04-11 | description = Der Garten mit einem Sukkulentenhaus im Zentrum ist nach dem Umbau der ''[[#vCard_Friederiken Therme|Friederiken Therme]]'' seit 2025 erneut geöffnet und beinhaltet auch ein Kneippsches Tretbecken; insbesondere der Alpingarten (Alpinum) und die Gräserlandschaft werden zurzeit wieder neu angelegt. Besonders beeindrucken die teils sehr großen Goldkugelkakteen („Schwiegermuttersitz“ bzw. „-stuhl“).
}}
* {{vCard | name = Japanischer Garten ''Garten der Glückseligkeit'' | name-local = (jap. 幸福の庭, Kōfuku no niwa | alt = genauer ein [[w:Japanischer Wandelgarten|Japanischer Wandelgarten]] | type = garden | wikidata = Q26821540 | hours = Mär, Okt: täglich 10:00–18:00; Apr-Sep: täglich 10:00–19:00 | price = ab 12 J. 6,00 €/Tag, erm. 5,00 €/Tag; Feierabendticket (ab 17:00) 4,00 €/Tag; Kombiticket (alle Gärten, Stadt- und Apothekenmuseum) 20,00 €/Tag, erm. 16,00 €/Tag; bei Sonderveranstaltungen teils andere Preise | subtype = nodogs | lastedit = 2026-04-05 | description = Besucher tauchen ein in die Harmonie der Stille der verschiedenen Landschaften. Das Wasser hat eine wichtige symbolische Bedeutung: Wellenbewegungen fließen vom Wasserfall über den Teich in den Trockenbach, Pflanzen und Steine führen die Bewegung weiter. Im Kontrast zur Teichlandschaft steht die Trockenlandschaft. Ein Pflanzenpavillon mit Teehaus und der „Pavillon des Teetrinkens“, in dem ohne Zeremonie grüner Tee gereicht wird, ergänzen das Ensemble. Im April beginnen die Kirsch- und Magnoilienblüte, im Mai blüht die Azaleenlandschaft, Iris und Seerosen folgen im Juni. Es finden diverse Veranstaltungen (mit Vorführung japanischer Kampf- und Trommelkünste, Origami, Sushi uvm.) statt: Hanami Kirschblütenfest (April, aktuell 25. April 2026), Kodomo NoHi Kinderfest (Mai), Märchenfest (Juni), Tanabata Sternenfest (Juli). Im Dezember 2025 wurde zudem erstmalig (innerhalb der eigentlich üblichen Schließzeit November bis Februar) eine ''Fernöstliche Lichter-Poesie'' veranstaltet. Bei dieser wurde der Garten mit wechselnden Lichtfarben beleuchtet, es gab zwei Videoprojektionen u.{{nnbsp}}a. mit Videos und Bildern über den Garten sowie Musikuntermalung. Nach Aussage der Mitarbeiter war die Veranstaltung so gut besucht, dass sie vsl. in den kommenden Jahren wiederholt wird.
}}
* {{vCard|name=Kurpark|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/kurpark/|lat=51.10881|long=10.65008|hours=24/7|price=frei|lastedit=2026-03-05|description=Der Park liegt teilweise entlang der Stadtmauer und ist zur Hälfte von einem kleinen Wasserlauf durchzogen. Am einen Ende befindet sich ein künstlicher Wasserfall, und der Weg führt dann vorbei am Friederikenschlösschen, einem Kinderspielplatz, dem Abzweig zum Rosengarten, weiter zwischen dem Japanischen Garten und dem Natur!Gärten und geht dann in den Weg zum Magnoliengarten und den Botanischen Garten über. Blumenbeete, zugeschnittene Bäume und Bögen aus Büschen, unter denen man durchgehen kann, bereichern das Ambiente.}}
* {{vCard | name = Rosengarten ''Garten der Liebe'' | comment = Zugang zum [[#vCard_Rosencafé|Rosencafé]] direkt vom Garten aus | type = garden | wikidata = Q112079448 | hours = Mai-Sep: täglich 10:00–19:00; Okt: täglich 10:00-–8:00 | price = Wie [[#vCard_Q26821540|Japanischer Garten]] | subtype = parking, nodogs | lastedit = 2026-04-17 | description = Auf 18.000 qm erblühen und duften fast 450 Rosenarten wie historische und Englische Rosen, Wildrosen und Edelrosen, Rosenhochstämme und Kleinstrauchrosen; besonders sehenswert ist die Sammlung der Bad Langensalzaer Rosen (1950–990 wurden hier allein 91 Rosensorten gezüchtet. Anni Berger, die einzige Rosenzüchterin Deutschlands, war in Bad Langensalza tätig. Sie ist Namensgeberin einer Stiftung, die die Rosentradition, Denkmalpflege und Umweltschutz fördert – vgl. Anni-Berger-Stiftung.de), Skulpturen der Künstler Gert van Acker und Harald Stieding ergänzen das Gartenbild. Da auch die Vorgärten und die Stadtplätze vielfältige Rosen zieren, verwundert es nicht, dass 2002 der Stadt das Prädikat „Rosenstadt“ verliehen wurde.
}}
* {{vCard | name = Magnoliengarten | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/magnoliengarten/ | lat = 51.11366 | long = 10.64912 | hours = 24/7 | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Der 2006 eröffnete Magnoliengarten zeigt auf 1.500 qm mehr als 30 Magnolienarten, die von März bis Juli blühen – eine Zaubernuss beginnt den Blütenreigen. Magnolien gehören mit zu den ältesten Blütenpflanzen der Erde (vor der Eiszeit auch in Europa heimisch!), die heute in Ostasien und Amerika zu finden sind. Ergänzt werden sie durch Hortensien, Waldreben, Ginkgobäume sowie Blumen und Sträucher, teils auf einem kleinen Hügel als weiteres gestalterisches Element.
}}
* {{vCard | name = Schlösschenpark | comment = des [[#vCard_Q19279910|Friederikenschlösschens]] | type = park | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/schloesschenpark/ | lat = 51.10892 | long = 10.65177 | price = frei | lastedit = 2026-04-05 | description = Der von der der Herzogin Friederike von Sachsen-Weißenfels terrassenartig angelegte kleine Park aus der Mitte des 18. Jahrhunderts mit Blick auf das Schlösschen lädt zum Verweilen ein. Im hinteren Teil des Gartens ist ein historischer Gartenpavillon aus dem Jahr 1878 erhalten. Dort sprudelt aus einem Bronzebecken Schwefelwasser, das seit 1812 in der Kurstadt Bad Langensalza als Heilwasser verwendet wird. In der ehemaligen Remise befindet sich eine [[#vCard_Historische_Druckerei|historische Druckerei]].
}}
* {{vCard | name = Apothekergarten | alt = ''Garten der Heilkräuter'' | comment = beim [[#vCard_Q20479980|Apothekenmuseum]] | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/apothekergarten/ | lat = 51.11016 | long = 10.64459 | hours = Wie Apothekenmuseum, in der Wintersaison geschlossen | lastedit = 2026-04-05 | description = Der Apothekergarten hinter dem „Haus Rosenthal“ (daher nur über das Apothekenmuseum zugänglich) zeigt eine Auswahl an in Mitteldeutschland heimischer Pflanzen, die immer noch zur Herstellung von Arzneidrogen verwendet werden. Die Heilpflanzen sind in neun Beeten nach ihren Anwendungen bzw. medizinischer Indikation geordnet und beschildert. Umsäumt werden die Kräuterbeete von Blumen (Rosen brauchen in Bad Langensalza gar nicht extra erwähnt werden) sowie einigen Obstbäumen und Sträuchern. | id = Apothekergarten
}}
* {{vCard | name = Natur!Garten | comment = betrieben vom [[w:Bund_für_Umwelt_und_Naturschutz_Deutschland|BUND]] Ortsverband Bad Langensalza[https://badlangensalza.bund.net/]. Das '''Café'''[https://baeckerei-esche.de/bund-naturgarten-cafe/] im Garten hat '''kürzere''' Öffnungszeiten: Apr–Okt Mi–Fr 13:00–17:00, Sa/So/Fe bis 18:00 | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/naturgarten/ | lat = 51.1121 | long = 10.6489 | hours = Mär–Okt: täglich 8:00–18:00 | price = frei | lastedit = 2026-04-05 | description = Der 1.600 m² große Garten ermöglicht es, die Natur anzufassen (-> einheimische Pflanzen und Insekten). Er besteht seit 1994 auf und wurde 2019/20 neu gestaltet, dazu gehörten ein Pflanzenbestand mit über 1.000 neuen einheimischen bzw. für einen Bauerngarten typische Blumenzwiebeln, Stauden und Gehölze. Der Garten dient auch der Umweltbildung und verbindet einen nachhaltigen Bauerngarten (zentrales Brunnenhäuschen, Obst- und Gemüsebeete, Kräuterbank, klassische Bauerngarten-Blumenbeete, Färberpflanzen, Kompost) mit einem reinen Naturgarten (Blumenrasen, Wild-Stauden-Wall, „Beet der Flatterlinge“, Teich mit Sumpfwiese, Benjes-Hecke, größter Mirabellen-Baum und höchster Holunder-Strauch von Bad Langensalza). Kinder dürfen spielen und die Natur erforschen, Erwachsene erhalten Anregungen für eine naturnahe Gartengestaltung. Nätürlich ist auch für Verweilplätze gesorgt. Last but not least erreicht man durch den Garten das '''einzige begehbare Stück Stadtmauer-Wehrgang''' und zwei Stadtmauertürme. Zur nach ökologischen Gesichtspunkten sanierten Stadtmauer gehören im Stadtmauer-Rundturm ein „Raum der Stille“ und im Eckturm die Lese-Ecken.
}}
* {{vCard|name=TRACO Park|alt=Garten des Travertins|comment=betrieben von der Firma [https://traco.de/ TRACO]|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/traco-park/|address=Poststraße 17, 99947 Bad Langensalza|lat=51.1039|long=10.6377|phone=+49 (0)3603 8520|hours=Mo–Fr 9:00–18:00, Sa 10:00–13:00, in den Wintermonaten verkürzt|price=frei|subtype=wheelchair, free parking|lastedit=2026-04-10|description=Ausstellungsgarten zeigt breites Spektrum der natürlichen und ästhetischen Garten- und Landschaftsgestaltung mit Sandstein, Muschelkalk und Travertin aus firmeneigenen Steinbrüchen bei Weimar, Gotha und Bad Langensalza: Mauern, Treppen, Wege, Wasserkunst….}}
== Aktivitäten ==
* {{vCard | name = Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | lat = 51.11442 | long = 10.64683 | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = ''Thermalbad+Sauna'': So–Mi 10:00–21:00, Do–Sa 10:00–22:00 | price = ab 5{{nnbsp}}J komplexes Preissystem: Bad, Sauna, Kombitarife, Spättarife, Rabatte, s. Webseite | lastedit = 2026-04-13 | description = (Kinder bis zur Vollendung des 12.{{nnbsp}}Lebensjahres nur in Begleitung Erwachsener.) Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT).
}}
* {{vCard | name = Kino ''Burgtheater'' | type = cinema | url = https://burg-theater.de/ | address = Vor dem Schlosse 5e, 99947 Bad Langensalza | lat = 51.10903 | long = 10.64725 | phone = +49 (0)3603 846206 | fax = +49 (0)3212 1080916 | email = kino@burg-theater.de | hours = Tageweise Mo-So, teils ab 12:15, letzte Vorstellung 20:00 | price = 6,50–10 €; Aufschläge: ab 120 min +0,50 €, ab 140 min +1 €, 3D–Filme +2,50 €, teils Kinderermäßigungen vor 19:00; Di. Kinotag (nicht feiertags) | lastedit = 2026-04-08
}}
* {{vCard | name = Kindererlebniswelt ''Rumpelburg'' | type = children | url = https://kindererlebniswelt-rumpelburg.de/ | address = Sperlingsgasse 4, 99947 Bad Langensalza | lat = 51.10664 | long = 10.64754 | phone = +49 (0)3603 398-4604 | email = info@kindererlebniswelt-rumpelburg.de | hours = Di–Fr 14:00–18:00, Sa 10:00–18:00, So 10:00–17:00, auf Vorbestellung für Gruppen Di–Fr 10:00–13:00, Schließzeiten beachten (ges. Feiertage, Sommer-Betriebsferien, Weihnachtsferien) | price = 0–1J frei, 1–2J 3,50{{nnbsp}}€/1{{nnbsp}}Std, ab 2J/Erw. 4,00{{nnbsp}}€/1{{nnbsp}}Std, Rabatte/Sonderaktionen s. Webseite | lastedit = 2026-04-10 | description = Klettern, rutschen und toben in einer fantastischen Welt mit Spiel, Spaß und Entdeckungen. Netzbrücken, geheimnisvolle Baumhäuser, riesige Puppenstube und wilde Rutschpartien – Abwechslung bei jedem Wetter für Groß und Klein. Ereignisreiche Stunden durch verschiedene Rollen spielerisch erleben in: Spielhaus, Schiff, Tiergehege mit Holztieren oder Spielstadt. Aufmerksame Kinder entdecken vielleicht die geheimnisvollen Rumpelburgbewohner: Rosentroll Puck, Wasserelfe Tine oder Rumpel, das Gespenst.
}}
* Die Stadt veranstaltet insbesondere in der [[Bad Langensalza#vCard Q16857154|Konzertkirche]], dem [[Bad Langensalza#vCard Kongress- und Kulturzentrum Bad Langensalza|Kongress- und Kulturzentrum Bad Langensalza]] sowie an anderen Orten diverse '''Events''' wie beispielsweise Konzerte, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender Eventkalender].
* '''[https://badlangensalza.de/kur-tourismus/planen-buchen/veranstaltungen/veranstaltungshighlights/mittelalterstadtfest/ Mittelalterstadtfest]''' mit Handwerker- und Händlerständen, Musik- und Kleinkunstprogramm sowie Schaukämpfen am letzten Augustwochenende (aktuell 29./30. August 2026)
* Im ''Japanischen Garten'' finden diverse Veranstaltungen statt (Details finden sich beim [[#vCard_Q26821540|Japanischen Garten]]):
** '''Hanami Kirschblütenfest''' (April)
** '''Kodomo NoHi Kinderfest''' (Mai)
** '''Märchenfest''' (Juni)
** '''Tanabata Sternenfest''' (Juli)
** '''Fernöstliche Lichter-Poesie''': Sie wurde im Dezember 2025 (innerhalb der eigentlich üblichen Schließzeit November bis Februar) erstmalig veranstaltet und wird vsl. in den kommenden Jahren wiederholt.
* {{vCard | name = Flugplatz Bad Langensalza | type = landing site | wikidata = Q2900762 | directions = 3{{nnbsp}}km nordwestlich von Bad Langensalza | show = copy| price = Schnupperflug ab 30 €; ''Pilot für einen Tag'' (ca. 3 Std.) 199 € | lastedit = 2026-04-04 | description = Er wurde 1927 errichtet und von der [[w:Wehrmacht|Wehrmacht]] genutzt. Aktuell wird der [[w:Sonderlandeplatz|Sonderlandeplatz]] vom Flugsportverein ''„Otto Lilienthal“ Bad Langensalza e.{{nnbsp}}V.'' betrieben. Er verfügt über eine Gras-Start- und Landebahn mit der Größe 800{{nnbsp}}m × 40{{nnbsp}}m. Angebote: Segelflug, Ultraleichtflug (UL-Flug), Rundflüge und Gastflüge.
}}
== Einkaufen ==
Es gibt Bad in Langensalza das typische Angebot einer Kleinstadt. Spezielle lokale Reisesouvenirs sind hier zu erwerben.
* {{vCard|name=Wochenmarkt|type=market|url=https://citymanagement-badlangensalza.de/events/wochenmarkt/|address=Fußgängerzone|lat=51.1086|long=10.6454|hours=Mi 8:00–14:00|lastedit=2026-04-06|description=Auf dem Wochenmarkt gibt es nicht nur frisches Obst und Gemüse, Geflügel und Fisch, Backwaren, Eier und Teigwaren, Wurst- und Käsesorten, Pasti und Antipasti, Gewürze, Kräuter, Honig und Marmeladen sowie Blumen und Pflanzen zu kaufen, man kann dort auch diverse warme Gerichte gleich essen oder mitnehmen. Viele der Angebote stammen dabei aus der Region. Für eine thüringer Stadt eher ungewöhnlich erhält man als eine der beiden je eintägigen Möglichkeiten im Ort ''[[w:Thüringer Rostbratwürste|Thüringer Rostbratwürste]]'' in einer Semmel (gute Wurst, sehr gutes Brötchen, 3{{nnbsp}}€).}}
* {{vCard | name = Buchhandlung ''Buchgeschwister'' | type = book seller | url = https://www.genialokal.de/buchhandlung/bad-langensalza/buchgeschwister/ | address = Mühlhäuser Str. 39, 99947 Bad Langensalza | lat = 51.10895 | long = 10.64475 | phone = +49 (0)3603 842449 | email = kontakt@buchgeschwister.com | instagram = buchgeschwister.lsz | hours = Di–Fr 10:00–13:00, 14:00–17:00, Sa 10:00–13:00 | image = Buchhandlung "Buchgeschwister" Bad Langensalza.jpg | lastedit = 2026-04-09 | description = sehr persönliche Beratung.
}}
== Küche ==
Bei vielen Cafés und Restaurants kann man auch draußen sitzen. Letztere haben oft werktags ein Mittagsangebot.
* {{vCard | name = Café Schwesterherz | comment = Gegründet von den Schwestern Anni und Ulrike | type = cafe | url = https://cafe-schwesterherz.jimdofree.com/ | address = Mühlhäuser Str. 2, 99947 Bad Langensalza | lat = 51.10878 | long = 10.64463 | phone = +49 (0)3603 3989345 | email = Cafe-Schwesterherz@freenet.de | hours = Di–Fr 9:00–17:30, 2.+4. Sa im Monat 9:30–17:00, 1.+3. Sa im Monat 9:30–12:30 | image = Cafe Schwesterherz Bad Langensalza.jpg | lastedit = 2026-04-17 | description = Uriges Ambiente mit der Möglichkeit, schöne Dinge zu erwerben und auch draußen zu sitzen. Eine der Spezialitäten sind nach dem Motto ''Kuchen wie bei Omi'' selbstgebackene Kuchen. Die ausführlichen Rezensionen des Cafés (Google 4,8/5) sprechen oft von begeisterten Besuchern. Um sicher einen Platz zu bekommen ist eine Reservierung empfehlenswert.
}}
* {{vCard | name = Rosencafé | type = restaurant | url = https://www.rosencafe-bad-langensalza.de/ | address = Am Rosengarten 11, 99947 Bad Langensalza | directions = Direkt am [[#vCard_Q112079448|Rosengarten]], Zugangsmöglichkeit von dort aus, zurück benötigt man die Eintrittskarte für das Drehkreuz. Eingang auch vom neuen Wohngebiet aus. | lat = 51.11224 | long = 10.65247 | phone = +49 (0)3603 891601 | email = info@rosencafe-bad-langensalza.de | hours = Do–So 10:00–17:00, bis 15:00 warme Küche | subtype = accessible, parking | lastedit = 2026-04-17
}}
* {{vCard | name = Ristorante Venezia | type = restaurant | url = https://www.venezia-restaurant.de/ | address = Marktstraße 31, 99947 Bad Langensalza | lat = 51.10820 | long = 10.64577 | phone = +49 03603 895469 | fax = +49 03603 8969308 | hours = tägl. 10:00–0:00, warme Küche durchgehend 11:00–23:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Villa Italia | type = restaurant | url = https://www.villa-italia.de/ | address = Kurpromenade 5a, 99947 Bad Langensalza | lat = 51.10838 | long = 10.65071 | phone = +49 03603 892861 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Punjabi Bad'sha | alt = Indisches Restaurant & Eiscafe | type = restaurant | url = https://www.punjabi-badshah.de/ | address = Kornmarkt 2, 99947 Bad Langensalza | lat = 51.10761 | long = 10.64739 | phone = +49 (0)36031 279246 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Herkules | type = restaurant | address = Steinweg 11, 99947 Bad Langensalza | lat = 51.10547 | long = 10.64209 | phone = +49 03603 1277321 | facebook = Restaurant.Herkules | hours = Di–Fr 17:00—23:00; Sa,So 11:30—14:30 und 17:00—23:00 | subtype = greek | lastedit = 2026-04-06 | description = Beliebter Grieche in passendem Ambiente.
}}
* {{vCard | name = Pizzeria Flamingo | type = restaurant | address = Steingrubenstraße 7, 99947 Bad Langensalza | lat = 51.10656 | long = 10.64428 | phone = +49 03603 1277589 | instagram = pizzeriaflamingoo | hours = Mo–Sa 10:30–21:30, So 13:00–21:30 | lastedit = 2026-04-06
}}
* {{vCard | name = PHANtastic | alt = Asian Fusion | comment = Gästeparkplatz hinten im Schlosshof 3, 99947 Bad Langensalza | type = restaurant | address = Marktstraße 3, 99947 Bad Langensalza | lat = 51.10866 | long = 10.64578 | phone = +49 (0)3603 8955218 | hours = Di–Sa 10:30–22:00, So 11:30–22:00, Mo nur feiertags geöffnet | lastedit = 2026-04-17 | description = Neueröffnung 11.4.2026, Aktionsangebot 11.4.–19.4.2026 15% Rabatt.
}}
* {{vCard | name = Ratswaage | alt = Restaurant, Bier– und Weinkeller | type = restaurant | url = https://ratswaage-lsz.de/ | address = Mühlhäuser Straße 40, 99947 Bad Langensalza | directions = Der Ratskeller liegt im historischen Stadtzentrum. | lat = 51.10893 | long = 10.64494 | phone = +49 (0)3603 8955310 | email = info@ratswaage-lsz.de | hours = tägl. 11:00–14:30, 17:00–23:00 | image = Restaurant Ratswaage Bad Langensalza.jpg | lastedit = 2026-04-17
}}
* {{vCard|name=Asia Food & Salza Grill|type=restaurant|address=Rathausstraße 9, 99947 Bad Langensalza|lat=51.10818|long=10.64437|phone=+49 (0)3603 84 86 16|hours=Mo–Fr 11:00–21:00, So/Fe 11:00–21:00|price=günstig|payment=derzeit nur Barzahlung|subtype=asian, grill, takeaway|lastedit=2026-04-09|description=alle Speisen auch zum Mitnehmen, ein paar Tische innen und ein paar draußen, Personal freundlich, Essen gut, „große Portion“ heißt zu Recht so!
}}
* {{vCard | name = Schnitzel-Steak-Haus | type = restaurant | url = https://schnitzel-steak-haus.metro.rest/?lang=de | address = Marktstraße 19, 99947 Bad Langensalza | lat = 51.10830 | long = 10.64739 | phone = +49 (0)3603 896970 | email = dido2004@abv.bg | hours = Mo–So 10:00–22:00 | lastedit = 2026-04-10 | description = Jede Woche ein Mittagsmenü: typischerweise Suppe, zwei verschiedene Hauptgerichte, Eis.
}}
== Nachtleben ==
== Unterkunft ==
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig für Übernachtungsgäste eine [[#Kurtaxe|Kurtaxe]]. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza.
* {{vCard | name = Hotel Sante Royale | type = hotel, restaurant | url = https://www.sante-royale.de/hotels/bad-langensalza | address = Parkstraße 1, 99947 Bad Langensalza | lat = 51.11412 | long = 10.64527 | tollfree = +49 0800 9022090 | email = info.badlangensalza@sante-royale.com | subtype = 4, free wlan, restaurant, sauna, spa, dogs, indoor pool, outdoor pool | lastedit = 2026-04-07 | description = Großes, modernes Hotel mit 130 Zimmern und Suiten.
}}
* {{vCard| type = hotel |name=Hotel L.A. CHICAGO|address=Tonnaerstraße 33, 99947 Bad Langensalza |phone=+49 03603 856836|email=info@lachicago.de|fax=+49 03603 856837|url=http://www.lachicago.de |hours=|price= |lat=51.10675 |long=10.65281
}}
* {{vCard| type = hotel |name=Zur Lohgerberei |address=Löbersgasse 2, 99947 Bad Langensalza |phone=+49 03603 846131 |email=kontakt@pension-zur-lohgerberei.de |fax=+49 03603 894344 |url=http://www.pension-zur-lohgerberei.de/ |hours=|price=EZ ab 37 €, DZ ab 27 € (jeweils inkl. Frühstück). |lat=51.11096 |long=10.64662 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Zöllner |address=Steinweg 1, 99947 Bad Langensalza |phone=+49 03603 815664 |email=info@pension-zoellner-thueringen.de |fax= |url=http://www.pension-zoellner-thueringen.de/ |hours=|price=EZ ab 30 €, DZ ab 50 € (jeweils inkl. Frühstück). |lat=51.10611 |long=10.64204 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Bergstube |address=Bergstraße 7, 99947 Bad Langensalza |phone=+49 03603 846980 |email=j.schroe@tonline.de |fax=+49 03603 814132 |url=http://bergstube.de/ |hours=|price=EZ ab 35 €, DZ als EZ ab 43 €, DZ ab 55 €. |lat=51.13836 |long=10.63443 |lastedit= |description=
}}
* {{vCard| type = hotel |name=Gasthaus zur Weintraube |address=Mühlhäuser Straße 11, 99947 Bad Langensalza |phone=+49 03603 846133 |email=info@zur-weintraube.de |fax=+49 03603 892830 |url=http://zur-weintraube.de/ |hours= Gasthaus: tägl. ab 10:00 |price=EZ ab 35 €, DZ ab 65 € (jeweils inkl. Frühstück. |lat=51.10943 |long=10.64351 |lastedit=|description=
}}
== Sicherheit ==
* {{vCard|name=Polizeistation |wikidata=|type=police |address=Bahnhofstraße 3, 99947 Bad Langensalza |phone=+49 03603 8310 |email=|fax=|url=|hours=|price=|lat=51.10375 |long=10.64196 |lastedit=|description=}}
== Gesundheit ==
=== Krankenhäuser ===
* {{vCard | name = Hufelandklinik | type = hospital | wikidata = Q107295076 | hours = 24/7 (Notaufnahme) | lastedit = 2026-04-06
}}
* {{vCard|name=Rehaklinik |wikidata=|type=hospital |address=Kurpromenade 6-8, 99947 Bad Langensalza |phone=+49 03603 8030 |email=info@rehaklinik-badlangensalza.de |fax=+49 03603 803100 |url=https://www.rehaklinik-badlangensalza.de/ |hours=|price=|lat=51.10941 |long=10.65063 |lastedit=|description=
}}
=== Sonstiges ===
Es gibt im Ort ein Ärztehaus, ein Medizinisches Versorgungszentrum (MVZ), dieserse Arztpraxen, Zahnärzte sowie drei Apotheken und zwei Sanitätshäuser.
* {{vCard | name = Therapie- und Kurbereich mit MTT der Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = '''Therapie+Kurbereich'': Mo—Fr 7:30—19:30 und nach Vereinbarung; ''Medizinische Trainingstherapie'': Mo—Fr 9:00—19:30 und nach Vereinbarung, Sep—Feb zusätzlich Sa 10:00—14:00 (außer an Feiertagen) | lastedit = 2026-04-13 | description = Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT). | copy-marker = Friederiken Therme
}}
== Praktische Hinweise ==
* {{vCard|name=Touristinformation Langensalza|type=tourist information|url=https://badlangensalza.de/kur-tourismus/service-info/touristinfo/|address=Bei der Marktkirche 11, 99947 Bad Langensalza|lat=51.10791|long=10.64866|phone=+49 (0)3603 834424|fax=+49 (0)3603 834421|email=touristinfo@badlangensalza.de|hours=Apr—Okt: Mo—Fr 9:00—18:00, Sa/So 10:00—16:00, Fe 10:00—14:00; Nov—Mär: Mo-Fr 9:00—17:00, Sa/Fe 10:00—14:00, So geschlossen}}
* Die Stadt bietet an diversen Orten '''kostenloses WLAN''' namens [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/w-langensalza/ W-LANgensalza]. Es gibt einen [https://badlangensalza.de/core/webp-express/webp-images/uploads/sites/2/2024/03/csm_Stadtplan-WLAN_65049e16b6.jpg.webp Stadtplan mit den eingezeichneten Hotspots], zur Verfügung steht es hier:
** Kultur- und Kongresszentrum
** An der Alten Post/Jahnplatz
** Wiebeckplatz, Ecke Lange Straße
** Rathaus
** Bei der Marktkirche
** Parkplatz am Ende der Friedrich-Mann-Straße
** Kornmarkt
** Touristeninformation
* Stadtführungen werden angeboten. Die Informationen dazu sind bei der Tourismusinformation zu erfragen.
* Die Filiale der Post befindet sich in der Tonnaer Straße 38.
=== Kurtaxe ===
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [https://badlangensalza.de/kur-tourismus/planen-buchen/gaestekarte/ Kurtaxe]. Sie beträgt für Erwachsene 3,00{{nnbsp}}€/Übernachtung, für Kinder im Alter von 6 bis 15 Jahren 1,50{{nnbsp}}€/Übernachtung. Für Schwerbehinderte und Blinde mit Schwerbehindertenausweis wird der Kurbeitrag um 50{{nnbsp}}% ermäßigt. Erwerbsunfähige Kriegsbeschädigte und Begleitpersonen von Schwerbehinderten sind von der Kurtaxe befreit. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza. Details: [https://badlangensalza.de/storage/sites/2/2025/03/Kurbeitragssatzung.pdf Kurbeitragssatzung der Stadt Bad Langensalza (pdf)]
== Ausflüge ==
* Der [[Nationalpark Hainich]] mit dem [[w:Baumkronenpfad_Hainich|Baumkronenpfad]] ([https://www.nationalpark-hainich.de/de/ausflugsziele/baumkronenpfad.html Webseite des Nationalparks], [https://www.baumkronen-pfad.de/ Webseite Bad Langensalza]) an der [[w:Thiemsburg|Thiemsburg]] liegt nur wenige Kilometer südlich der Stadt.
* [[Eisenach]] mit der [[w:Wartburg|Wartburg]] ist mit dem Auto in weniger als 30 Minuten zu erreichen.
<!--
== Literatur ==
-->
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.10806| long= 10.64667| radius= }}
{{IstInKat|Thüringen||Thüringer Kernland||Kurort in Thüringen}}
1sdblc8ue088c3bxemd5iulrup8plen
1769218
1769217
2026-04-17T11:53:22Z
Ousw
57729
/* Sonstiges */ Geänderte vCard für Therapie- und Kurbereich mit MTT der Friederiken Therme – ein ' zu viel
1769218
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/ Touristinformation]
| TouriInfoTel = +49 (0)3603 834424
}}
Die Kur- und Rosenstadt '''Bad Langensalza''' ist eine ehemalige Kreisstadt am Nordwestrand des [[Thüringer Kernland|Thüringer Beckens]]. Neben einer Therme und zwei Kliniken kennzeichen die Stadt besonders ihre historische Altstadt, zehn Parks und Gärten, die teils ganzjährig zum Besuch einladen, sowie die Blumenpracht im gesamten Ort.
== Hintergrund ==
{{Mapframe|51.10806| long= 10.646|zoom=14|height=300|width=300|type=geoline}}
Bad Langensalza (bis 1956: Langensalza) ist ein Schwefel-Sole-Heilbad und staatlich anerkannter Kurort. Zu Beginn des 9. Jahrhunderts wurde erstmals ein Ort namens Salza – im lateinischen Text Salzaha – urkundlich erwähnt. Bad Langensalza gehört zu den historisch bedeutendsten Städten im Thüringer Becken, wovon die reichhaltige historische Bausubstanz in der Altstadt zeugt. Als eine der Waidstädte war Bad Langensalza sehr wohlhabend, sodass große Kirchen und eine mächtige Stadtmauer aus Langensalzaer Travertin, der direkt im Südwesten der Altstadt abgebaut werden konnte, errichtet wurden. Um 1300 wurde die Stadtmauer mit vier Eingangstoren fertiggestellt. Ein verheerender Stadtbrand legte 1711 Teile der Altstadt in Schutt und Asche. Die im prachtvollen Barockstil an ihrer Stelle entstandenen Bürgerhäuser prägen noch heute das Bild der Stadt. Heute sind von der ältesten Stadtbefestigung noch vier Stadtmauertürme erhalten.
Bekannt ist die Stadt auch für die [[w:Schlacht_bei_Langensalza|Schlacht bei Langensalza]] zwischen Preussen und Hannover 1866, in deren Folge Preussen Hannover annektierte. Im [[#vCard_Arboretum|Arboretum]] steht das daran erinnernde [[w:Langensalza-Denkmal_(Bad_Langensalza)|Denkmal]] der Stadt.
Im Juni 1938 wurde im Reinhardbrunner Hof eine antisemitische Hetzausstellung gezeigt. Ebenso wurden Sinti- und Roma-Familien verfolgt, von denen einige im KZ Langensalza, einem Außenlager des KZ Buchenwald, inhaftiert waren. Dort mussten insgesamt etwa 1300 ausländische Frauen und Männer Zwangsarbeit für ein Projekt der Junkers verrichten. Am 5. April 1945 wurde Langensalza durch amerikanische Truppen besetzt und Anfang Juli an die Rote Armee übergeben. So wurde es Teil der Sowjetischen Besatzungszone (SBZ) und ab 1949 der DDR.
Seit dem 28. Juni 1956 trägt Langensalza den Namenszusatz Bad. Seit 1990 wurde die Altstadt zu einem großen Teil restauriert. Später konnten in der Stadt Heilquellen erschlossen werden, die bis heute dem Kurbetrieb dienen. Damit einher ging die Anlage mehrerer Parks, wie Rosengarten und Japanischer Garten. Seit dem 22. Juni 2002 nennt sich Bad Langensalza „Rosenstadt“. Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [[#Kurtaxe|Kurtaxe]].
== Anreise ==
=== Mit dem Flugzeug ===
* Die nächstgelegenen Verkehrsflughäfen mit Linienverkehr sind der {{marker|type = airport|name = Flughafen Leipzig Halle |wikidata = Q668382}} und der {{marker|type = airport|name = Flughafen Frankfurt am Main|wikidata = Q46033}}.
* Auf dem in ca. 65{{nnbsp}}km entfernten {{marker | type = airport | name = Flughafen Erfurt–Weimar | wikidata = Q703794}} starten und landen mittlerweile nur noch Chartermaschinen. Er ist aber weiterhin für Geschäfts- und Sportflieger offen.
* {{vCard|name=Flugplatz Bad Langensalza|type=landing site|wikidata=Q2900762|directions=ca. 3{{nnbsp}}km nördlich|description=Der als [[w:Sonderlandeplatz|Sonderlandeplatz]] klassifizierte Fluplatz verfügt über eine 800{{nnbsp}}m lange Graslandebahn und kann von Ultraleichtfliegern angeflogen werden. Der Platz wird betrieben vom Flugsportverein „Otto Lilienthal“.}}
=== Mit der Bahn ===
{{vCard | name = Bahnhof Langensalza | type = rail | wikidata = Q62415577 | lastedit = 2026-04-17 | description = Betreuung nur mittels '''Video'''-Reisezentrum (geöffnet Mo–Fr 7:15–18:30, Sa 8:15–13:30), behindertengerechte Toilette nur mit entsprechendem Schlüssel. Am Bahnhof halten Regionalzüge aus Erfurt über Gotha oder über Gräfentonna sowie aus Kassel und Göttingen über Leinefelde und Mühlhausen. Der Bahnhof liegt am südlichen Stadtrand etwa ein Kilometer vom Stadtzentrum. Jeder hier verkehrende Zug bedient auch den Landkreis Gotha. Das nahegelegene [[Gotha]] bietet den nächsten ICE-Bahnhof. Mit der Stadtbuslinie B kann man direkt von der Haltestelle am Bahnhofsvorplatz Mo-Fr tagsüber halbstündlich und Sa vormittags alle zwei Stunden in die Innenstadt und zurück fahren; Aus-/Einstieg an der Endhaltestelle „Treffpunkt Wiebeckplatz“ (Fahrplan siehe [[#Mobilität|Mobilität]]). Das geschlossene Bahnhofsgebäude ist leider nicht einladend, obwohl es auch so noch vom früheren Wohlstand der Stadt zeugt, man wird aber im Ort dafür entschädigt. Zwischen Bahnhof und Busbahnhof gibt es den Imbiss ''Herbigs Grill''. }}
=== Mit dem Bus ===
Der {{Marker | type = bus | name = ZOB | lat=51.10166 | long=10.64270}} befindet sich ein Stück neben dem Bahnhofsvorplatz. Aufgrund der Lage bietet er nicht nur die Möglichkeit, über verschiedene Buslinien die benachbarten Gemeinden zu erreichen, sondern ermöglicht direkt zwischen Schienen-, Buslinien- und Stadtbusverkehr (Linie B, Haltestelle nicht am ZOB, sondern direkt am Bahnhofsvorplatz) zu wechseln. Auch [[Fernbusse in Deutschland|Fernbusse]] halten hier.
=== Auf der Straße ===
* Über die Autobahn {{RSIGN|DE|A|4}}, Anschlussstelle {{Ausfahrt|Eisenach-Ost,|40a,}} und der {{RSIGN|DE|B|84}} gelangt man in die Stadt.
* Die {{RSIGN|DE|B|247}} führt von [[Gotha]] oder von [[Mühlhausen (Thüringen)]] nach Bad Langensalza.
=== Mit dem Fahrrad ===
Der [[Unstrut-Radweg|Unstrut-Radweg]] durchquert den Ortsteil Thamsbrück.
== Mobilität ==
Aufgrund der Größe ist die Stadt gut zu Fuß zu erkunden. Parkplätze stehen auch an vielen Stellen zur Verfügung. Es gibt zwei Stadtbuslinien: [https://www.salzatours.de/fahrplanauskunft/ Fahrplanauskunft] der Salza–Tours König GmbH & Co. KG
* '''Linie A''' Gewerbegebiet Nord '''–''' EKZ Rasenmühlenweg – Treffpunkt Wiebeckplatz – Gutenbergstraße – Gewerbegebiet Ost
* '''Linie B''' Ufhoven Schenke – Bahnhof – Gutenbergstraße – Treffpunkt Wiebeckplatz & zurück
===Thiemsburg===
Buslinie 150 Verkehrsgemeinschaft Wartburgregion im Sommer mindestens 4 mal täglich Bad Langensalza - [[Thiemsburg]] - [[Behringen]] - [[Eisenach]].
== Sehenswürdigkeiten ==
[[Datei:LangensalzaGottesackerkirche.JPG|mini|Gottesackerkirche St. Trinitatis]]
=== Kirchen ===
* {{vCard | name = Marktkirche ''St. Bonifacii'' | comment = ev. Hauptkirche | type = church | wikidata = Q1901085 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/marktkirche-st-bonifacii/ | phone = +49 (0)3603 846402 | hours = Mo-Sa 14:00–16:00 und nach Vereinbarung | description = Die Marktkirche St. Bonifacii ist die evangelische Hauptkirche der Stadt und wurde in mehreren Bauphasen von Mitte des 13. bis Ende des 16. Jahrhunderts im Stil der Gotik erbaut und erweitert. Aus diesem Grund besteht sie aus vielen sich deutlich voneinander abhebenden Teilen. Eine Besonderheit ist die Einzeigeruhr am 74 m hohen Turm, einem der höchsten Kirchtürme in Thüringen. Die Malereien aus dem 16. Jahrhundert wurden erst Anfang des 20. Jahrhunderts wieder freigelegt. Die barocke Kanzel im Mittelschiff stammt aus dem Jahr 1734. Das Altarbild, eine Kreuzigungsszene darstellend, wurde vermutlich zwischen 1486 und 1490 hergestellt. Mai–Sep. Orgelmusik zur Marktzeit um 12 Uhr.
}}
* {{vCard | name = Bergkirche ''St. Stephani'' | type = church | wikidata = Q16857152 | url = https://evangelische-kirche-lsz.de/bergkirche-st-stephani-st-stephan/ | description = Ursprünglich außerhalb der ersten Stadtmauer als dreischiffige Basillika erbaut war sie die Pfarrkirche der Neustadt. Das im Jahr 1196 erstmals urkundlich als Kapelle erwähnte Gotteshaus ist der älteste Sakralbau in Bad Langensalza. Aus einer ursprünglichen Mönchskapelle entwickelte sich die Kirche durch Um- und Anbauten. Die Kanzel wurde 1590 im Renaissancestil aufgebaut. Die Glasfenster sind Stiftungen der Bürger im 19. Jahrhundert. An den Decken sind heute noch die Wappen der Spenderfamilien zu sehen. Die Orgel der Kirche wurde 1884/1985 von dem Bad Langensalzaer Orgelbauer [[w:Friedrich Erdmann Petersilie|Friedrich Petersilie]] erbaut. Der Turm hat eine Höhe von 53,5{{nnbsp}}m.
}}
* {{vCard | name = Gottesackerkirche ''St. Trinitatis'' | type = church | wikidata = Q16857154 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/gottesackerkirche-st-trinitatis/ | address = Tuchmachergasse 5, 99947 Bad Langensalza | directions = Im [[#vCard_Arboretum|Arboretum]], direkt neben dem Eingang. | hours = Nur bei Veranstaltungen zugänglich | lastedit = 2026-04-14 | description = Die Friedhofskirche wird als Konzertkirche mit vielfältigen musikalischen Veranstaltungen und einzigartiger Akustik genutzt. '''Geschichte''': Die Kirche wurde 1734–1739 unter der Schirmherrschaft von Herzog ''Christian von Sachsen–Weißenfels'' mit Travertinsteinen der im 30-jährigen Krieg zerstörten Marienkirche errichtet, woran die Kartusche über dem östlichen Portal erinnert. Über das Spitzbogenportal an der Westseite gelangt man zu den restaurierten Grüften. In Gegensatz zum strengen, symmetrischen Außenbau steht die reiche barocke Innenausstattung der Saalkirche mit zweigeschossigen Holzemporen und dem Kanzelaltar von 1734. Die aufwendige Gestaltung des Deckengewölbes zeigt sich in den barocken Malereien in ovalen Medaillons und Stuckaturen. Zur Ausstattung gehören das Madonnen-Relief aus der Marienkirche, zwei barocke Epitaphien und eine Orgel von ''Friedrich Erdmann Petersilie'' (1869). Umfangreiche Sanierungs- und Restaurierungsarbeiten 2008/2009 führten zu neuem Glanz.
}}
=== Bauwerke ===
* {{vCard|name=Rathaus|type=town hall|wikidata=Q119440667|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/rathaus/|description=Das Glockenspiel mit 32 Glocken und 5 Figuren kann 16 verschiedene Melodien spielen und erklingt täglich um 12 und 18 Uhr. Möglichkeit zu einer [https://badlangensalza.de/kur-tourismus/planen-buchen/gastefuhrungen/gruppenfuehrungen-3/unter-dem-pflaster/ Stadt- und Kellerführung], Dauer: 120 min, Preis 135,00 €, optional: „Herrliches Gesöff“ zum Abschluss zzgl. 2,50 € pro Getränk.
}}
* {{vCard | name = Schloss Dryburg | type = chateau | wikidata = Q2240669 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/schloss-dryburg/ | hours = Galerie: Do–Sa 14:00–17:00 und nach Vereinbarung. An Feiertagen geschlossen | lastedit = 2026-04-12 | description = Das Schloss Dryburg ist das älteste erhaltene, komplett aus Stein gemauerte Profangebäude in der Stadt. Von der mittelalterlichen Kernburg ist noch der Westflügel erhalten. Er beherbergt seit Anfang 2011 unter anderem die Galerie des [https://www.kunstwestthueringer.com/ Kunstwestthüringer e. V.], für Kunstliebhaber ein Muss. Der gemeinnützige Kunstverein sieht seine Aufgabe in Präsentation, Vermittlung und Aktion in Sachen zeitgenössischer bildender Kunst. Pro Jahr sind ca. sechs Ausstellungen zu sehen, eine davon immer im Mai ist die Präsentation von Werken internationaler Künstler.
}}
* {{vCard | name = Friederikenschlösschen | type = chateau | wikidata = Q19279910 | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/friederikenschloesschen/ | address = Mauergasse 2, 99947 Bad Langensalza | hours = „Tag des offenen Schlösschens“ jeweils 14:00–17:00, aktuell: 17.05.26, 28.06.26, 12.07.26, 02.08.26, 16.08.26, 13.09.26 (Tag des offenen Denkmals 10:00–17:00), 18.10.26 | price = frei / auf Spendenbasis | lastedit = 2026-04-08 | description = Die Herzoginwitwe Friederike von Sachsen-Weißenfels ließ 1749 bis 1751 das Rokoko-Lustschloss errichten. Im Festsaal des Friederikenschlösschens werden Kleinkunstprogramme und Kammerkonzerte aufgeführt.
}}
* {{vCard | name = Stadtmauer und Türme | type = monument | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmauer-und-tuerme/ | lat = 51.10934 | long = 10.64943 | description = Bad Langensalza besitzt bis heute einen gut erhaltenen mittelalterlichen Stadtmauerring, von dem noch 16 Wachtürme und ein Eingangstor erhalten geblieben sind. Der 35,40 Meter hohe Klagetorturm an der Kurpromenade ist einer der wenigen noch erhaltenen Tortürme in Thüringen.
}}
* {{vCard | name = Kultur- und Kongresszentrum Bad Langensalza | comment = Jahnplatz als Parkfläche direkt hinter dem Haus | type = conference center | url = https://www.kkz-badlangensalza.de/ | address = Bürgermeister–Schönau–Platz 1, 99947 Bad Langensalza | lat = 51.11050 | long = 10.64223 | phone = +49 (0)3603 859 190 | email = kkz@bad-langensalza.de | lastedit = 2026-04-14 | description = NUTZUNG: Für Veranstaltungen (Tagung, Festlichkeit oder Konzert) von 10 bis zu 500 Personen: Unterschiedliche Räumlichkeiten (Saal, Bühne, Clubraum (Hufelandraum), Probesaal (Wieglebsaal), Saalnebenräume (Kloppstocksaal), kleiner Saal (Hermstedtsaal), Foyer) für jeden Anlass, moderne Tagungs- und Bühnentechnik, erfahrenes Veranstaltungsmanagement und hochwertige Gastronomie. Die Stadt veranstaltet hier (wie in der [[#vCard_Q16857154|Konzertkirche]] und an anderen Orten) diverse Events, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender]. GESCHICHTE: Das heutige Kultur- und Kongresszentrum hat eine lange Geschichte und wurde ehemals als Schützenhaus (erstmalige Erwähnung der „sagittarii“, der „Kappentragenden Pfeilschützen“, im Jahre 1380) erbaut und ersetzte zwei Vorgängerbauten für die Langensalzaer Schützengilde. Von 1717–1733 wurde das erste Schützenhaus errichtet und litt dann unter den deutschen Befreiungskriegen (1813 Pulvermagazin, 1814 Lazarett). Das baufällige Fachwerkgebäude diente nicht mehr seinem Zweck und wurde 1833 abgerissen. Der Neubau wurde dem Mauermeister ''Johann Benjamin Schneider'' und dem Zimmermeister ''Christian Andreas Wenk'' übertragen. Da die Schützen die Kosten nicht tragen konnten, wurden 215 Aktien verkauft. Grundsteinlegung war 1833, die Einweihung selbst fand im Juli 1834 statt. Der umfangreichere Neubau erhielt an der Frontseite einen repräsentativen Balkon sowie einen dreiseitigen Giebel. Bei den Kapitulationsverhandlungen 1866 (Hannover vs. Preußen) gastierte der König Georg V. von Hannover im Juni 1866 im Schützenhaus und der Kriegsrat besiegelte die Kapitulation. Im Nachhinein erfolgte die Benennung als „Königszimmer“ oder „Blaues Zimmer“. im Dezember 1906 wurde das gesamte Gebäude ein Raub der Flammen, glücklicherweise gab es.eine Entschädigungszahlung der ''Provinzial-Feuersozietät''. Das nach Bauplänen des hiesigen Stadtbaumeisters '''Ferdinand Kummer'' im November 1907 fertiggestellte Gebäude wurde mit Festbankett und Festball eingeweiht. Die veralteten Schießstände mussten auf königlichen Befehl erneuert und umzäunt werden. Im 1. Weltkrieg pausierten die Vereinsaktivitäten und das Schützenhaus wurde ab Herbst 1914 bis Anfang 1919 als Reservelazarett genutzt. Nach dem 2. Weltkrieg wurde das Schützenhaus von der Besatzungsmacht beschlagnahmt und 1946 mit dem Ziel der Errichtung eines Kulturzentrums der Sozialistischen Einheitspartei Deutschlands übertragen. Die Umbenennung des Gebäudes in Kulturhaus erfolgte schließlich Abfang Oktober 1952. Ab Januar 1961 wurde das geschlossene Kulturhaus in drei Bauabschnitten umgestaltet, die Gastronomie modernisiert. Mit einer symbolischen Schlüsselübergabe eröffnete das renovierte Kulturhaus Ende April 1962 und der Kulturhaus–Beirat kümmerte sich um die Nutzung. Der Kulturhausgarten wurde erstmals 1967 genutzt, die alte Kegelbahn 1978 abgerissen. Im Juni 1986 erfolgte einen Komplettumbau. Aufgrund von finanziellen und materiellen Engpässen wurden die Handwerker immer wieder unterbrochen, denn in den Wirren der Wendezeit versiegten die Geldquellen. Mit Hilfe von Bundes- und Landesmitteln konnte das Vorhaben eines modernen Kultur- und Kongresszentrums schließlich vollendet werden. Die Wiedereröffnung fand im Rahmen einer feierlichen Veranstaltung am 21. Februar 1992 statt. Der neue Name repräsentierte die kulturellen und künstlerischen Aspekte. In Vorbereitung des Landesprojektes ''Mensch–Natur–Städtebau'' wurde im Jahr 2009 das Kultur- und Kongresszentrum abermals umfangreich restauriert und modernisiert, insbesondere die Rosenlounge, die Außenfassade und der große Saal erstrahlen in neuem Glanz.
}}
=== Aussichtspunkt ===
[[Datei:Langensalza Dreitürmeblick.jpg|mini|Drei-Türme-Blick]]
[[Datei:LangensalzaDreitürmeblick2.JPG|mini|Blick durch die Skulptur]]
* {{vCard|name=Drei-Türme-Blick|type=viewpoint | lat = 51.1092 | long = 10.6417 |directions = vor der Gottesackerkirche neben dem Eingang in das Arboretum |url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/drei-tuerme-blick/ |description= Vom „Argusblick“ (die Skulptur wurde von dem Bad Langensalzaer Künstler [[w:Harald_Stieding|Harald Stieding]] geschaffen), einem aus Stein gehauenen Auge, das auf einer Travertinsäule thront, sind der Turm der einstigen Augustinerkirche, der Turm des Rathauses und schließlich der Turm der Marktkirche St. Bonifacii zu sehen. Diese drei Türme prägen die Ansicht der Kurstadt und sind immer wieder ein beliebtes Fotomotiv.
}}
=== Museen ===
[[Datei:Schild Wassermuseum vor Klagetor Bad Langensalza.jpg|mini|upright|Schild Wassermuseum mit dem Klagetor im Hintergrund]]
* {{vCard|name=Stadtmuseum im Augustinerkloster|type=museum|wikidata=Q76639038|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/stadtmuseum-im-augustinerkloster/|address=Augustinerplatz 1-2, 99947 Bad Langensalza|phone=+49 03603 813002|email=stadtmuseum@bad-langensalza.de|hours=Fr–So 13:00–17:00, Feiertagsregelungen beachten|price=Normal 5,00{{nnbsp}}€/Tag, erm. 4,00{{nnbsp}}€/Tag, Kinder und Schüler frei; Kombiticket Apotheken- und Stadtmuseum Erw. 8,00{{nnbsp}}€, erm. 6,00{{nnbsp}}€|lastedit=2026-04-01
}}
* {{vCard | name = Thüringer Apothekenmuseum | comment = im „Haus Rosenthal“ | type = museum | wikidata = Q20479980 | hours = Derzeit wie [[#vCard_Q76639038|Stadtmuseum]] | price = Wie [[#vCard_Q76639038|Stadtmuseum]] | lastedit = 2026-04-05 | description = Das historische Gebäude „Haus Rosenthal“ beherbergt seit Mai 2014 das Thüringer Apothekenmuseum. Die Besucher können im restaurierten Baudenkmal aus dem Jahr 1515, dessen Renovierung in einem FIlm gezeigt wird, u.{{nnbsp}}a. die historischen Wandvertäfelungen und zwei Holzstuben auf sich wirken lassen. Für die gelungene Sanierung erhielt die Stadt im Wettbewerb um den''Thüringer Holzbaupreis 2013'' eine Anerkennung sowie im Jahr 2015 den Thüringer Denkmalschutzpreis. Im Obergeschoss des Baudenkmals wird auf 276{{nnbsp}}m² eine Ausstellung zur Pharmaziegeschichte des 18. bis 20. Jahrhunderts präsentiert. In acht Räumen sind die verschiedenen Arbeitsbereiche einer alten Apotheke abgebildet. Neben einer Darstellung des Lebens und Wirkens des Langensalzaer Apothekers und Chemikers ''Johann Christian Wiegleb'' (1732–1800) werden Standgefäße aus Glas, Porzellan und Holz sowie eine Vielzahl an pharmazeutischen Arbeitsgeräten zur Herstellung von Arzneimitteln gezeigt. Das Museum ergänzt der angrenzende [[#vCard_Apothekergarten|Apothekergarten]], in dem mehr als 80 verschiedene, überwiegend heimische, Heilkräuter wachsen. Hinweis: Im Gebäude sind nur die Ausstellungen im Erdgeschoß sowie der Apothekergarten barrierefrei zu erreichen.
}}
* {{vCard | name = Rosenmuseum | comment = beim [[#vCard_Q112079448|Rosengarten]] | type = museum | address = Vor dem Klagetor 3, 99947 Bad Langensalza | directions = Zugang beim Kassenhäuschen des Rosengartens | lat = 51.11081 | long = 10.65237 | phone = +49 03603 834424 | hours = Wie [[#vCard_Q112079448|Rosengarten]] | lastedit = 2026-04-08 | description = Das Museum hat sich seit seiner Einrichtung kaum verändert und strahlt daher ein entsprechendes Flair aus, ist aber auch sehr informativ. Beispielsweise lernt man die In-vitro-Vermehrung von Rosen, bei der dünnste Scheiben von Rosenknospen steril in Nährmedien kultiviert werden, kennen, die die schnelle Produktion großer Mengen von Klonen ermöglicht. Das Museum soll beginnend mit der Saison 2026 sukzessive erneuert und mit modernen Medien ausgestattet werden.
}}
* {{vCard|name=Historische Druckerei|id=Historische_Druckerei|type=museum|lat=51.1092|long=10.6512|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/museen_kultur/historische-druckerei/|hours=ganzjährig Di,Mi, Fr 9:00–12:00, sowie nach Vereinbarung|price=frei|description=Im Park des Friederikenschlösschens in der ehemaligen Kutscherremise befindet sich seit März 2008 die „Historische Druckerei“. Sie beherbergt heute u.{{nnbsp}}a. eine beeindruckende Handtiegelpresse aus dem Jahr 1854 sowie diverse Utensilien für den Handsatz und wird in kleinem Rahmen nach wie vor für Sonderdrucke genutzt. Die Druckerei kann an drei Tagen in der Woche vormittags ganzjährig besichtigt werden und die Besucher erhalten auf Wunsch von einem der sie betreuenden ehemaligen Setzer eine Führung mit der Möglichkeit, selbst ein Andenken zu drucken.}}
* {{vCard | name = Wassermuseum | type = museum | address = Hüngelsgasse 13, 99947 Bad Langensalza | lat = 51.11079 | long = 10.64951 | phone = +49 (0)3603 84070 | hours = Di 8:00–12:00, 13:30–17:30; Do 8:00–12:00, 13:30–15:30 | image = Wassermuseum Bad Langensalza.JPG | lastedit = 2026-04-07 | description = Betreiber: Verbandswasserwerk Bad Langensalza / Abwasserzweckverband (WAZV) "Mittlere Unstrut". Die beiden Google-Rezensionen des winzigen Museums im Eingangsbereich des Amtes innerhalb des letzten Jahres sind 5/5.
}}
=== Parks und Gärten ===
[[Datei:Bad Langensalza Arboretum Lageplan.jpg|mini|Lageplan Arboretum]]
[[Datei:Bad Langensalza Arboretum Pflanzensystematik.jpg|mini|Pflanzensystematik Arboretum]]
[[Datei:Bad Langensalza, japanischer Garten, Bild 8.jpg|mini|Japanischer Garten]]
[[Datei:Bad Langensalza 2022 - Rosengarten.jpg|mini|Rosengarten]]
[[Datei:Erblühende Magnolien am Wasserlauf vor Magnoliengarten Bad Langensalza.jpg|mini|Erblühende Magnolien am Wasserlauf vor dem Magnoliengarten]]
[[Datei:Ulmus parvifolia "Chinesische Kiefer" frei aufrechte Form Alter ca. 130 Jahre Japanischer Garten Bad Langensalza 02.jpg|mini|upright|Austreibender Bonsai Ulmus parvifolia „Chinesische Kiefer“, frei aufrechte Form, Alter ca. 130 Jahre, vor blühendem Baum im Japanischen Garten]]
Die Stadt besticht durch eine Vielzahl von [https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/ Parks und Gärten]:
* {{vCard | name = Arboretum | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/arboretum/ | lat = 51.10834 | long = 10.63949 | hours = Mär,Okt: täglich 10:00–18:00, Apr–Sep: täglich 10:00–19:00, Nov–Feb: geschlossen | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Das Arboretum (Baumgarten) ist eine geschichtsträchtige Parkanlage. Es lädt neben Entspannung und Erholung zum bummeln durch die Vielfalt an Bäumen und Sträuchern ein. Hier ist der Jahrezeitenwechsel am deutlichsten von allen Gärten der Stadt zu erleben. So zeigt sich das Arboretum von von Mitte März bis Oktober im bunten Blüten- und Blätterkleid. Auch bevor die Bäume ausschlagen bereichern den Garten zur Frühjahrsblüte durch früh blühende [[w:Magnolien|Magnolien]] und [[w:Frühjahrsblüher|Frühjahrsblüher]] mehr als nur einzelne Farbtupfer. Im Arboretum wachsen über 200 verschiedene Arten von [[w:Gehölz|Gehölz]]en, die zu mehr als 20 Pflanzenfamilien gehören. Eine umfangreiche Erweiterung der Gehölzsammlung konnte fast ausschließlich durch Spenden von Bürgern, Unternehmen und Institutionen realisiert werden. Ergänzt wird der Eindruck durch die zwölf Skulpturen aus Holz und Muschelkalk von neun Künstlern aus vier Ländern sowie einem Zeugnis der Stadtgeschichte, dem ''Hannoveraner Denkmal'', das an die Schlacht bei Langensalza 1866 erinnert. Die ebenfalls dort befindliche [[#vCard_Q16857154|Gottesackerkirche]] aus dem Jahr 1734 (von 2008–2009 saniert) wird als Konzertkirche ''St. Trinitatis'' genutzt. Das Arboretum ist zusätzlich zu einem Lageplan reichlich mit Text und Systematiken auf Schautafeln beschildert, so dass man viel über die [[w:Systematik des Pflanzenreichs|Systematik des Pflanzenreichs]] erfährt und die Gehölze entsprechend leicht finden und zuordnen kann. | id = Arboretum
}}
* {{vCard | name = Botanischer Garten ''Garten der Vielfalt'' | type = botanical garden | wikidata = Q4948492 | hours = Mai–Okt täglich 10:00–18:00 | price = frei | subtype = nodogs | lastedit = 2026-04-11 | description = Der Garten mit einem Sukkulentenhaus im Zentrum ist nach dem Umbau der ''[[#vCard_Friederiken Therme|Friederiken Therme]]'' seit 2025 erneut geöffnet und beinhaltet auch ein Kneippsches Tretbecken; insbesondere der Alpingarten (Alpinum) und die Gräserlandschaft werden zurzeit wieder neu angelegt. Besonders beeindrucken die teils sehr großen Goldkugelkakteen („Schwiegermuttersitz“ bzw. „-stuhl“).
}}
* {{vCard | name = Japanischer Garten ''Garten der Glückseligkeit'' | name-local = (jap. 幸福の庭, Kōfuku no niwa | alt = genauer ein [[w:Japanischer Wandelgarten|Japanischer Wandelgarten]] | type = garden | wikidata = Q26821540 | hours = Mär, Okt: täglich 10:00–18:00; Apr-Sep: täglich 10:00–19:00 | price = ab 12 J. 6,00 €/Tag, erm. 5,00 €/Tag; Feierabendticket (ab 17:00) 4,00 €/Tag; Kombiticket (alle Gärten, Stadt- und Apothekenmuseum) 20,00 €/Tag, erm. 16,00 €/Tag; bei Sonderveranstaltungen teils andere Preise | subtype = nodogs | lastedit = 2026-04-05 | description = Besucher tauchen ein in die Harmonie der Stille der verschiedenen Landschaften. Das Wasser hat eine wichtige symbolische Bedeutung: Wellenbewegungen fließen vom Wasserfall über den Teich in den Trockenbach, Pflanzen und Steine führen die Bewegung weiter. Im Kontrast zur Teichlandschaft steht die Trockenlandschaft. Ein Pflanzenpavillon mit Teehaus und der „Pavillon des Teetrinkens“, in dem ohne Zeremonie grüner Tee gereicht wird, ergänzen das Ensemble. Im April beginnen die Kirsch- und Magnoilienblüte, im Mai blüht die Azaleenlandschaft, Iris und Seerosen folgen im Juni. Es finden diverse Veranstaltungen (mit Vorführung japanischer Kampf- und Trommelkünste, Origami, Sushi uvm.) statt: Hanami Kirschblütenfest (April, aktuell 25. April 2026), Kodomo NoHi Kinderfest (Mai), Märchenfest (Juni), Tanabata Sternenfest (Juli). Im Dezember 2025 wurde zudem erstmalig (innerhalb der eigentlich üblichen Schließzeit November bis Februar) eine ''Fernöstliche Lichter-Poesie'' veranstaltet. Bei dieser wurde der Garten mit wechselnden Lichtfarben beleuchtet, es gab zwei Videoprojektionen u.{{nnbsp}}a. mit Videos und Bildern über den Garten sowie Musikuntermalung. Nach Aussage der Mitarbeiter war die Veranstaltung so gut besucht, dass sie vsl. in den kommenden Jahren wiederholt wird.
}}
* {{vCard|name=Kurpark|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/kurpark/|lat=51.10881|long=10.65008|hours=24/7|price=frei|lastedit=2026-03-05|description=Der Park liegt teilweise entlang der Stadtmauer und ist zur Hälfte von einem kleinen Wasserlauf durchzogen. Am einen Ende befindet sich ein künstlicher Wasserfall, und der Weg führt dann vorbei am Friederikenschlösschen, einem Kinderspielplatz, dem Abzweig zum Rosengarten, weiter zwischen dem Japanischen Garten und dem Natur!Gärten und geht dann in den Weg zum Magnoliengarten und den Botanischen Garten über. Blumenbeete, zugeschnittene Bäume und Bögen aus Büschen, unter denen man durchgehen kann, bereichern das Ambiente.}}
* {{vCard | name = Rosengarten ''Garten der Liebe'' | comment = Zugang zum [[#vCard_Rosencafé|Rosencafé]] direkt vom Garten aus | type = garden | wikidata = Q112079448 | hours = Mai-Sep: täglich 10:00–19:00; Okt: täglich 10:00-–8:00 | price = Wie [[#vCard_Q26821540|Japanischer Garten]] | subtype = parking, nodogs | lastedit = 2026-04-17 | description = Auf 18.000 qm erblühen und duften fast 450 Rosenarten wie historische und Englische Rosen, Wildrosen und Edelrosen, Rosenhochstämme und Kleinstrauchrosen; besonders sehenswert ist die Sammlung der Bad Langensalzaer Rosen (1950–990 wurden hier allein 91 Rosensorten gezüchtet. Anni Berger, die einzige Rosenzüchterin Deutschlands, war in Bad Langensalza tätig. Sie ist Namensgeberin einer Stiftung, die die Rosentradition, Denkmalpflege und Umweltschutz fördert – vgl. Anni-Berger-Stiftung.de), Skulpturen der Künstler Gert van Acker und Harald Stieding ergänzen das Gartenbild. Da auch die Vorgärten und die Stadtplätze vielfältige Rosen zieren, verwundert es nicht, dass 2002 der Stadt das Prädikat „Rosenstadt“ verliehen wurde.
}}
* {{vCard | name = Magnoliengarten | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/magnoliengarten/ | lat = 51.11366 | long = 10.64912 | hours = 24/7 | price = frei | subtype = nodogs | lastedit = 2026-04-07 | description = Der 2006 eröffnete Magnoliengarten zeigt auf 1.500 qm mehr als 30 Magnolienarten, die von März bis Juli blühen – eine Zaubernuss beginnt den Blütenreigen. Magnolien gehören mit zu den ältesten Blütenpflanzen der Erde (vor der Eiszeit auch in Europa heimisch!), die heute in Ostasien und Amerika zu finden sind. Ergänzt werden sie durch Hortensien, Waldreben, Ginkgobäume sowie Blumen und Sträucher, teils auf einem kleinen Hügel als weiteres gestalterisches Element.
}}
* {{vCard | name = Schlösschenpark | comment = des [[#vCard_Q19279910|Friederikenschlösschens]] | type = park | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/schloesschenpark/ | lat = 51.10892 | long = 10.65177 | price = frei | lastedit = 2026-04-05 | description = Der von der der Herzogin Friederike von Sachsen-Weißenfels terrassenartig angelegte kleine Park aus der Mitte des 18. Jahrhunderts mit Blick auf das Schlösschen lädt zum Verweilen ein. Im hinteren Teil des Gartens ist ein historischer Gartenpavillon aus dem Jahr 1878 erhalten. Dort sprudelt aus einem Bronzebecken Schwefelwasser, das seit 1812 in der Kurstadt Bad Langensalza als Heilwasser verwendet wird. In der ehemaligen Remise befindet sich eine [[#vCard_Historische_Druckerei|historische Druckerei]].
}}
* {{vCard | name = Apothekergarten | alt = ''Garten der Heilkräuter'' | comment = beim [[#vCard_Q20479980|Apothekenmuseum]] | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/apothekergarten/ | lat = 51.11016 | long = 10.64459 | hours = Wie Apothekenmuseum, in der Wintersaison geschlossen | lastedit = 2026-04-05 | description = Der Apothekergarten hinter dem „Haus Rosenthal“ (daher nur über das Apothekenmuseum zugänglich) zeigt eine Auswahl an in Mitteldeutschland heimischer Pflanzen, die immer noch zur Herstellung von Arzneidrogen verwendet werden. Die Heilpflanzen sind in neun Beeten nach ihren Anwendungen bzw. medizinischer Indikation geordnet und beschildert. Umsäumt werden die Kräuterbeete von Blumen (Rosen brauchen in Bad Langensalza gar nicht extra erwähnt werden) sowie einigen Obstbäumen und Sträuchern. | id = Apothekergarten
}}
* {{vCard | name = Natur!Garten | comment = betrieben vom [[w:Bund_für_Umwelt_und_Naturschutz_Deutschland|BUND]] Ortsverband Bad Langensalza[https://badlangensalza.bund.net/]. Das '''Café'''[https://baeckerei-esche.de/bund-naturgarten-cafe/] im Garten hat '''kürzere''' Öffnungszeiten: Apr–Okt Mi–Fr 13:00–17:00, Sa/So/Fe bis 18:00 | type = garden | url = https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/naturgarten/ | lat = 51.1121 | long = 10.6489 | hours = Mär–Okt: täglich 8:00–18:00 | price = frei | lastedit = 2026-04-05 | description = Der 1.600 m² große Garten ermöglicht es, die Natur anzufassen (-> einheimische Pflanzen und Insekten). Er besteht seit 1994 auf und wurde 2019/20 neu gestaltet, dazu gehörten ein Pflanzenbestand mit über 1.000 neuen einheimischen bzw. für einen Bauerngarten typische Blumenzwiebeln, Stauden und Gehölze. Der Garten dient auch der Umweltbildung und verbindet einen nachhaltigen Bauerngarten (zentrales Brunnenhäuschen, Obst- und Gemüsebeete, Kräuterbank, klassische Bauerngarten-Blumenbeete, Färberpflanzen, Kompost) mit einem reinen Naturgarten (Blumenrasen, Wild-Stauden-Wall, „Beet der Flatterlinge“, Teich mit Sumpfwiese, Benjes-Hecke, größter Mirabellen-Baum und höchster Holunder-Strauch von Bad Langensalza). Kinder dürfen spielen und die Natur erforschen, Erwachsene erhalten Anregungen für eine naturnahe Gartengestaltung. Nätürlich ist auch für Verweilplätze gesorgt. Last but not least erreicht man durch den Garten das '''einzige begehbare Stück Stadtmauer-Wehrgang''' und zwei Stadtmauertürme. Zur nach ökologischen Gesichtspunkten sanierten Stadtmauer gehören im Stadtmauer-Rundturm ein „Raum der Stille“ und im Eckturm die Lese-Ecken.
}}
* {{vCard|name=TRACO Park|alt=Garten des Travertins|comment=betrieben von der Firma [https://traco.de/ TRACO]|type=park|url=https://badlangensalza.de/kur-tourismus/entdecken-erleben/sehenswertes/parks-themengaerten/traco-park/|address=Poststraße 17, 99947 Bad Langensalza|lat=51.1039|long=10.6377|phone=+49 (0)3603 8520|hours=Mo–Fr 9:00–18:00, Sa 10:00–13:00, in den Wintermonaten verkürzt|price=frei|subtype=wheelchair, free parking|lastedit=2026-04-10|description=Ausstellungsgarten zeigt breites Spektrum der natürlichen und ästhetischen Garten- und Landschaftsgestaltung mit Sandstein, Muschelkalk und Travertin aus firmeneigenen Steinbrüchen bei Weimar, Gotha und Bad Langensalza: Mauern, Treppen, Wege, Wasserkunst….}}
== Aktivitäten ==
* {{vCard | name = Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | lat = 51.11442 | long = 10.64683 | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = ''Thermalbad+Sauna'': So–Mi 10:00–21:00, Do–Sa 10:00–22:00 | price = ab 5{{nnbsp}}J komplexes Preissystem: Bad, Sauna, Kombitarife, Spättarife, Rabatte, s. Webseite | lastedit = 2026-04-13 | description = (Kinder bis zur Vollendung des 12.{{nnbsp}}Lebensjahres nur in Begleitung Erwachsener.) Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT).
}}
* {{vCard | name = Kino ''Burgtheater'' | type = cinema | url = https://burg-theater.de/ | address = Vor dem Schlosse 5e, 99947 Bad Langensalza | lat = 51.10903 | long = 10.64725 | phone = +49 (0)3603 846206 | fax = +49 (0)3212 1080916 | email = kino@burg-theater.de | hours = Tageweise Mo-So, teils ab 12:15, letzte Vorstellung 20:00 | price = 6,50–10 €; Aufschläge: ab 120 min +0,50 €, ab 140 min +1 €, 3D–Filme +2,50 €, teils Kinderermäßigungen vor 19:00; Di. Kinotag (nicht feiertags) | lastedit = 2026-04-08
}}
* {{vCard | name = Kindererlebniswelt ''Rumpelburg'' | type = children | url = https://kindererlebniswelt-rumpelburg.de/ | address = Sperlingsgasse 4, 99947 Bad Langensalza | lat = 51.10664 | long = 10.64754 | phone = +49 (0)3603 398-4604 | email = info@kindererlebniswelt-rumpelburg.de | hours = Di–Fr 14:00–18:00, Sa 10:00–18:00, So 10:00–17:00, auf Vorbestellung für Gruppen Di–Fr 10:00–13:00, Schließzeiten beachten (ges. Feiertage, Sommer-Betriebsferien, Weihnachtsferien) | price = 0–1J frei, 1–2J 3,50{{nnbsp}}€/1{{nnbsp}}Std, ab 2J/Erw. 4,00{{nnbsp}}€/1{{nnbsp}}Std, Rabatte/Sonderaktionen s. Webseite | lastedit = 2026-04-10 | description = Klettern, rutschen und toben in einer fantastischen Welt mit Spiel, Spaß und Entdeckungen. Netzbrücken, geheimnisvolle Baumhäuser, riesige Puppenstube und wilde Rutschpartien – Abwechslung bei jedem Wetter für Groß und Klein. Ereignisreiche Stunden durch verschiedene Rollen spielerisch erleben in: Spielhaus, Schiff, Tiergehege mit Holztieren oder Spielstadt. Aufmerksame Kinder entdecken vielleicht die geheimnisvollen Rumpelburgbewohner: Rosentroll Puck, Wasserelfe Tine oder Rumpel, das Gespenst.
}}
* Die Stadt veranstaltet insbesondere in der [[Bad Langensalza#vCard Q16857154|Konzertkirche]], dem [[Bad Langensalza#vCard Kongress- und Kulturzentrum Bad Langensalza|Kongress- und Kulturzentrum Bad Langensalza]] sowie an anderen Orten diverse '''Events''' wie beispielsweise Konzerte, siehe den [https://citymanagement-badlangensalza.de/events/ Eventkalender Eventkalender].
* '''[https://badlangensalza.de/kur-tourismus/planen-buchen/veranstaltungen/veranstaltungshighlights/mittelalterstadtfest/ Mittelalterstadtfest]''' mit Handwerker- und Händlerständen, Musik- und Kleinkunstprogramm sowie Schaukämpfen am letzten Augustwochenende (aktuell 29./30. August 2026)
* Im ''Japanischen Garten'' finden diverse Veranstaltungen statt (Details finden sich beim [[#vCard_Q26821540|Japanischen Garten]]):
** '''Hanami Kirschblütenfest''' (April)
** '''Kodomo NoHi Kinderfest''' (Mai)
** '''Märchenfest''' (Juni)
** '''Tanabata Sternenfest''' (Juli)
** '''Fernöstliche Lichter-Poesie''': Sie wurde im Dezember 2025 (innerhalb der eigentlich üblichen Schließzeit November bis Februar) erstmalig veranstaltet und wird vsl. in den kommenden Jahren wiederholt.
* {{vCard | name = Flugplatz Bad Langensalza | type = landing site | wikidata = Q2900762 | directions = 3{{nnbsp}}km nordwestlich von Bad Langensalza | show = copy| price = Schnupperflug ab 30 €; ''Pilot für einen Tag'' (ca. 3 Std.) 199 € | lastedit = 2026-04-04 | description = Er wurde 1927 errichtet und von der [[w:Wehrmacht|Wehrmacht]] genutzt. Aktuell wird der [[w:Sonderlandeplatz|Sonderlandeplatz]] vom Flugsportverein ''„Otto Lilienthal“ Bad Langensalza e.{{nnbsp}}V.'' betrieben. Er verfügt über eine Gras-Start- und Landebahn mit der Größe 800{{nnbsp}}m × 40{{nnbsp}}m. Angebote: Segelflug, Ultraleichtflug (UL-Flug), Rundflüge und Gastflüge.
}}
== Einkaufen ==
Es gibt Bad in Langensalza das typische Angebot einer Kleinstadt. Spezielle lokale Reisesouvenirs sind hier zu erwerben.
* {{vCard|name=Wochenmarkt|type=market|url=https://citymanagement-badlangensalza.de/events/wochenmarkt/|address=Fußgängerzone|lat=51.1086|long=10.6454|hours=Mi 8:00–14:00|lastedit=2026-04-06|description=Auf dem Wochenmarkt gibt es nicht nur frisches Obst und Gemüse, Geflügel und Fisch, Backwaren, Eier und Teigwaren, Wurst- und Käsesorten, Pasti und Antipasti, Gewürze, Kräuter, Honig und Marmeladen sowie Blumen und Pflanzen zu kaufen, man kann dort auch diverse warme Gerichte gleich essen oder mitnehmen. Viele der Angebote stammen dabei aus der Region. Für eine thüringer Stadt eher ungewöhnlich erhält man als eine der beiden je eintägigen Möglichkeiten im Ort ''[[w:Thüringer Rostbratwürste|Thüringer Rostbratwürste]]'' in einer Semmel (gute Wurst, sehr gutes Brötchen, 3{{nnbsp}}€).}}
* {{vCard | name = Buchhandlung ''Buchgeschwister'' | type = book seller | url = https://www.genialokal.de/buchhandlung/bad-langensalza/buchgeschwister/ | address = Mühlhäuser Str. 39, 99947 Bad Langensalza | lat = 51.10895 | long = 10.64475 | phone = +49 (0)3603 842449 | email = kontakt@buchgeschwister.com | instagram = buchgeschwister.lsz | hours = Di–Fr 10:00–13:00, 14:00–17:00, Sa 10:00–13:00 | image = Buchhandlung "Buchgeschwister" Bad Langensalza.jpg | lastedit = 2026-04-09 | description = sehr persönliche Beratung.
}}
== Küche ==
Bei vielen Cafés und Restaurants kann man auch draußen sitzen. Letztere haben oft werktags ein Mittagsangebot.
* {{vCard | name = Café Schwesterherz | comment = Gegründet von den Schwestern Anni und Ulrike | type = cafe | url = https://cafe-schwesterherz.jimdofree.com/ | address = Mühlhäuser Str. 2, 99947 Bad Langensalza | lat = 51.10878 | long = 10.64463 | phone = +49 (0)3603 3989345 | email = Cafe-Schwesterherz@freenet.de | hours = Di–Fr 9:00–17:30, 2.+4. Sa im Monat 9:30–17:00, 1.+3. Sa im Monat 9:30–12:30 | image = Cafe Schwesterherz Bad Langensalza.jpg | lastedit = 2026-04-17 | description = Uriges Ambiente mit der Möglichkeit, schöne Dinge zu erwerben und auch draußen zu sitzen. Eine der Spezialitäten sind nach dem Motto ''Kuchen wie bei Omi'' selbstgebackene Kuchen. Die ausführlichen Rezensionen des Cafés (Google 4,8/5) sprechen oft von begeisterten Besuchern. Um sicher einen Platz zu bekommen ist eine Reservierung empfehlenswert.
}}
* {{vCard | name = Rosencafé | type = restaurant | url = https://www.rosencafe-bad-langensalza.de/ | address = Am Rosengarten 11, 99947 Bad Langensalza | directions = Direkt am [[#vCard_Q112079448|Rosengarten]], Zugangsmöglichkeit von dort aus, zurück benötigt man die Eintrittskarte für das Drehkreuz. Eingang auch vom neuen Wohngebiet aus. | lat = 51.11224 | long = 10.65247 | phone = +49 (0)3603 891601 | email = info@rosencafe-bad-langensalza.de | hours = Do–So 10:00–17:00, bis 15:00 warme Küche | subtype = accessible, parking | lastedit = 2026-04-17
}}
* {{vCard | name = Ristorante Venezia | type = restaurant | url = https://www.venezia-restaurant.de/ | address = Marktstraße 31, 99947 Bad Langensalza | lat = 51.10820 | long = 10.64577 | phone = +49 03603 895469 | fax = +49 03603 8969308 | hours = tägl. 10:00–0:00, warme Küche durchgehend 11:00–23:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Villa Italia | type = restaurant | url = https://www.villa-italia.de/ | address = Kurpromenade 5a, 99947 Bad Langensalza | lat = 51.10838 | long = 10.65071 | phone = +49 03603 892861 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Punjabi Bad'sha | alt = Indisches Restaurant & Eiscafe | type = restaurant | url = https://www.punjabi-badshah.de/ | address = Kornmarkt 2, 99947 Bad Langensalza | lat = 51.10761 | long = 10.64739 | phone = +49 (0)36031 279246 | hours = Di–So 11:00–0:00 | lastedit = 2026-04-06
}}
* {{vCard | name = Herkules | type = restaurant | address = Steinweg 11, 99947 Bad Langensalza | lat = 51.10547 | long = 10.64209 | phone = +49 03603 1277321 | facebook = Restaurant.Herkules | hours = Di–Fr 17:00—23:00; Sa,So 11:30—14:30 und 17:00—23:00 | subtype = greek | lastedit = 2026-04-06 | description = Beliebter Grieche in passendem Ambiente.
}}
* {{vCard | name = Pizzeria Flamingo | type = restaurant | address = Steingrubenstraße 7, 99947 Bad Langensalza | lat = 51.10656 | long = 10.64428 | phone = +49 03603 1277589 | instagram = pizzeriaflamingoo | hours = Mo–Sa 10:30–21:30, So 13:00–21:30 | lastedit = 2026-04-06
}}
* {{vCard | name = PHANtastic | alt = Asian Fusion | comment = Gästeparkplatz hinten im Schlosshof 3, 99947 Bad Langensalza | type = restaurant | address = Marktstraße 3, 99947 Bad Langensalza | lat = 51.10866 | long = 10.64578 | phone = +49 (0)3603 8955218 | hours = Di–Sa 10:30–22:00, So 11:30–22:00, Mo nur feiertags geöffnet | lastedit = 2026-04-17 | description = Neueröffnung 11.4.2026, Aktionsangebot 11.4.–19.4.2026 15% Rabatt.
}}
* {{vCard | name = Ratswaage | alt = Restaurant, Bier– und Weinkeller | type = restaurant | url = https://ratswaage-lsz.de/ | address = Mühlhäuser Straße 40, 99947 Bad Langensalza | directions = Der Ratskeller liegt im historischen Stadtzentrum. | lat = 51.10893 | long = 10.64494 | phone = +49 (0)3603 8955310 | email = info@ratswaage-lsz.de | hours = tägl. 11:00–14:30, 17:00–23:00 | image = Restaurant Ratswaage Bad Langensalza.jpg | lastedit = 2026-04-17
}}
* {{vCard|name=Asia Food & Salza Grill|type=restaurant|address=Rathausstraße 9, 99947 Bad Langensalza|lat=51.10818|long=10.64437|phone=+49 (0)3603 84 86 16|hours=Mo–Fr 11:00–21:00, So/Fe 11:00–21:00|price=günstig|payment=derzeit nur Barzahlung|subtype=asian, grill, takeaway|lastedit=2026-04-09|description=alle Speisen auch zum Mitnehmen, ein paar Tische innen und ein paar draußen, Personal freundlich, Essen gut, „große Portion“ heißt zu Recht so!
}}
* {{vCard | name = Schnitzel-Steak-Haus | type = restaurant | url = https://schnitzel-steak-haus.metro.rest/?lang=de | address = Marktstraße 19, 99947 Bad Langensalza | lat = 51.10830 | long = 10.64739 | phone = +49 (0)3603 896970 | email = dido2004@abv.bg | hours = Mo–So 10:00–22:00 | lastedit = 2026-04-10 | description = Jede Woche ein Mittagsmenü: typischerweise Suppe, zwei verschiedene Hauptgerichte, Eis.
}}
== Nachtleben ==
== Unterkunft ==
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig für Übernachtungsgäste eine [[#Kurtaxe|Kurtaxe]]. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza.
* {{vCard | name = Hotel Sante Royale | type = hotel, restaurant | url = https://www.sante-royale.de/hotels/bad-langensalza | address = Parkstraße 1, 99947 Bad Langensalza | lat = 51.11412 | long = 10.64527 | tollfree = +49 0800 9022090 | email = info.badlangensalza@sante-royale.com | subtype = 4, free wlan, restaurant, sauna, spa, dogs, indoor pool, outdoor pool | lastedit = 2026-04-07 | description = Großes, modernes Hotel mit 130 Zimmern und Suiten.
}}
* {{vCard| type = hotel |name=Hotel L.A. CHICAGO|address=Tonnaerstraße 33, 99947 Bad Langensalza |phone=+49 03603 856836|email=info@lachicago.de|fax=+49 03603 856837|url=http://www.lachicago.de |hours=|price= |lat=51.10675 |long=10.65281
}}
* {{vCard| type = hotel |name=Zur Lohgerberei |address=Löbersgasse 2, 99947 Bad Langensalza |phone=+49 03603 846131 |email=kontakt@pension-zur-lohgerberei.de |fax=+49 03603 894344 |url=http://www.pension-zur-lohgerberei.de/ |hours=|price=EZ ab 37 €, DZ ab 27 € (jeweils inkl. Frühstück). |lat=51.11096 |long=10.64662 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Zöllner |address=Steinweg 1, 99947 Bad Langensalza |phone=+49 03603 815664 |email=info@pension-zoellner-thueringen.de |fax= |url=http://www.pension-zoellner-thueringen.de/ |hours=|price=EZ ab 30 €, DZ ab 50 € (jeweils inkl. Frühstück). |lat=51.10611 |long=10.64204 |lastedit=|description=
}}
* {{vCard| type = hotel |name=Pension Bergstube |address=Bergstraße 7, 99947 Bad Langensalza |phone=+49 03603 846980 |email=j.schroe@tonline.de |fax=+49 03603 814132 |url=http://bergstube.de/ |hours=|price=EZ ab 35 €, DZ als EZ ab 43 €, DZ ab 55 €. |lat=51.13836 |long=10.63443 |lastedit= |description=
}}
* {{vCard| type = hotel |name=Gasthaus zur Weintraube |address=Mühlhäuser Straße 11, 99947 Bad Langensalza |phone=+49 03603 846133 |email=info@zur-weintraube.de |fax=+49 03603 892830 |url=http://zur-weintraube.de/ |hours= Gasthaus: tägl. ab 10:00 |price=EZ ab 35 €, DZ ab 65 € (jeweils inkl. Frühstück. |lat=51.10943 |long=10.64351 |lastedit=|description=
}}
== Sicherheit ==
* {{vCard|name=Polizeistation |wikidata=|type=police |address=Bahnhofstraße 3, 99947 Bad Langensalza |phone=+49 03603 8310 |email=|fax=|url=|hours=|price=|lat=51.10375 |long=10.64196 |lastedit=|description=}}
== Gesundheit ==
=== Krankenhäuser ===
* {{vCard | name = Hufelandklinik | type = hospital | wikidata = Q107295076 | hours = 24/7 (Notaufnahme) | lastedit = 2026-04-06
}}
* {{vCard|name=Rehaklinik |wikidata=|type=hospital |address=Kurpromenade 6-8, 99947 Bad Langensalza |phone=+49 03603 8030 |email=info@rehaklinik-badlangensalza.de |fax=+49 03603 803100 |url=https://www.rehaklinik-badlangensalza.de/ |hours=|price=|lat=51.10941 |long=10.65063 |lastedit=|description=
}}
=== Sonstiges ===
Es gibt im Ort ein Ärztehaus, ein Medizinisches Versorgungszentrum (MVZ), dieserse Arztpraxen, Zahnärzte sowie drei Apotheken und zwei Sanitätshäuser.
* {{vCard | name = Therapie- und Kurbereich mit MTT der Friederiken Therme | comment = Den kostenpflichtigen Parkplatz (P4) der Friederiken Therme erreichen Sie über die Goethestraße. Folgen Sie bitte der Ausschilderung P4 | type = thermal bath, rehabilitation, sauna | url = https://www.friederikentherme.de/ | address = Böhmenstraße 5, 99947 Bad Langensalza | phone = +49 (0)3603 39760 | fax = +49 (0)3603 397641 | email = info@friederikentherme.de | hours = ''Therapie+Kurbereich'': Mo–Fr 7:30–19:30 und nach Vereinbarung; ''Medizinische Trainingstherapie'': Mo—Fr 9:00—19:30 und nach Vereinbarung, Sep—Feb zusätzlich Sa 10:00—14:00 (außer an Feiertagen) | lastedit = 2026-04-17 | description = Die Therme mit Sauna dient nicht nur dem Vergnügen, sondern es finden sich auch ein Therapie- und Kurbereich sowie die Möglichkeit zur „Medizinischen Trainingstherapie“ (MTT). | copy-marker = Friederiken Therme
}}
== Praktische Hinweise ==
* {{vCard|name=Touristinformation Langensalza|type=tourist information|url=https://badlangensalza.de/kur-tourismus/service-info/touristinfo/|address=Bei der Marktkirche 11, 99947 Bad Langensalza|lat=51.10791|long=10.64866|phone=+49 (0)3603 834424|fax=+49 (0)3603 834421|email=touristinfo@badlangensalza.de|hours=Apr—Okt: Mo—Fr 9:00—18:00, Sa/So 10:00—16:00, Fe 10:00—14:00; Nov—Mär: Mo-Fr 9:00—17:00, Sa/Fe 10:00—14:00, So geschlossen}}
* Die Stadt bietet an diversen Orten '''kostenloses WLAN''' namens [https://badlangensalza.de/kur-tourismus/service-info/touristinfo/w-langensalza/ W-LANgensalza]. Es gibt einen [https://badlangensalza.de/core/webp-express/webp-images/uploads/sites/2/2024/03/csm_Stadtplan-WLAN_65049e16b6.jpg.webp Stadtplan mit den eingezeichneten Hotspots], zur Verfügung steht es hier:
** Kultur- und Kongresszentrum
** An der Alten Post/Jahnplatz
** Wiebeckplatz, Ecke Lange Straße
** Rathaus
** Bei der Marktkirche
** Parkplatz am Ende der Friedrich-Mann-Straße
** Kornmarkt
** Touristeninformation
* Stadtführungen werden angeboten. Die Informationen dazu sind bei der Tourismusinformation zu erfragen.
* Die Filiale der Post befindet sich in der Tonnaer Straße 38.
=== Kurtaxe ===
Am 21. März 2005 erhielt Bad Langensalza die Urkunde als staatlich anerkannter Kurort mit der Artbezeichnung Schwefel-Sole-Heilbad und berechnet ganzjährig eine [https://badlangensalza.de/kur-tourismus/planen-buchen/gaestekarte/ Kurtaxe]. Sie beträgt für Erwachsene 3,00{{nnbsp}}€/Übernachtung, für Kinder im Alter von 6 bis 15 Jahren 1,50{{nnbsp}}€/Übernachtung. Für Schwerbehinderte und Blinde mit Schwerbehindertenausweis wird der Kurbeitrag um 50{{nnbsp}}% ermäßigt. Erwerbsunfähige Kriegsbeschädigte und Begleitpersonen von Schwerbehinderten sind von der Kurtaxe befreit. Die Kurkarte erhalten Gäste bei Ihrem jeweiligen Gastgeber in der Kernstadt von Bad Langensalza. Details: [https://badlangensalza.de/storage/sites/2/2025/03/Kurbeitragssatzung.pdf Kurbeitragssatzung der Stadt Bad Langensalza (pdf)]
== Ausflüge ==
* Der [[Nationalpark Hainich]] mit dem [[w:Baumkronenpfad_Hainich|Baumkronenpfad]] ([https://www.nationalpark-hainich.de/de/ausflugsziele/baumkronenpfad.html Webseite des Nationalparks], [https://www.baumkronen-pfad.de/ Webseite Bad Langensalza]) an der [[w:Thiemsburg|Thiemsburg]] liegt nur wenige Kilometer südlich der Stadt.
* [[Eisenach]] mit der [[w:Wartburg|Wartburg]] ist mit dem Auto in weniger als 30 Minuten zu erreichen.
<!--
== Literatur ==
-->
== Weblinks ==
* {{Offizielle Webseite}}
{{class-3}}
{{GeoData| lat= 51.10806| long= 10.64667| radius= }}
{{IstInKat|Thüringen||Thüringer Kernland||Kurort in Thüringen}}
73kgnis261aqjmtyltf9yx4wrdx6b0q
Betancuria
0
37229
1769096
1730284
2026-04-16T21:04:40Z
Scholless
15050
/* Küche */ gestrafft
1769096
wikitext
text/x-wiki
{{quickbar Ort
| Karte =es-cn
| Länge = -14.055
| Breite = 28.416667
| Namen=
| Bild= [[Datei:ES-fuerte-betanc-santa-maria-1.jpg|300px|thumb|Iglesia de Santa Maria]]
| Lage=
| Provinz=
| ProvinzLabel=
| Einwohner=
| TouriInfoWeb=
| TouriInfoTel=
}}
'''Betancuria''' ist eine malerische Kleinstadt im Westen der Insel [[Fuerteventura]]. Sie wurde gegründet von dem normannischen Adligen [[:wikipedia:de:Jean de Béthencourt|Jean de Béthencourt]] und war die erste Hauptstadt der Insel. Wegen seiner historischen Gebäude ist er ein beliebtes Ausflugsziel zahlreicher Touristen.
{{Mapframe|28.416|-14.055|zoom=14|height=300|width=300}}
== Hintergrund ==
Im Jahr 1404 eroberte Jean de Béthencourt die Insel Fuerteventura. Sie bestand damals aus dem Königreich ''Maxorata'' im Norden, ihr Herrscher war der Guanchenkönig ''Guize'', im südlichen Teil der Insel regierte ''Ayoze'' im Königreich ''Gandia''. Bei der Eroberung erlitten die militärisch unterlegenen Guanchen schwere Verluste. Béthencourt gründete seine neue Hauptstadt fernab von der Küste, um sie vor Piraten zu schützen. Dies war jedoch nicht besonders erfolgreich, Betancuria wurde wiederholt überfallen und 1593 schwer zerstört. Die küstenferne Lage in den Bergen der Insel führte schließlich dazu, dass Betancuria im Jahr 1834 den Status als Hauptstadt abgeben musste.
Zur Gemeinde Betancuria gehören zwei weitere Orte, das südlich gelegene '''Vega de Río de las Palmas''' und der Ort '''Valle de Santa Inés'''.
== Anreise ==
[[Datei:ES-fuerte-betanc-guanch-2.jpg|thumb|200px|Statuen der Guanchenkönige Guize und Ayoze auf einem Mirador nördlich von Betancuria]]
Betancuria liegt im bergigen Westen der Insel auf eine Höhe von rund 400{{nnbsp}}m. Der Ort liegt an der '''FV 30''', sie kommt von '''[[Pájara]]''' im Süden über fast nicht enden wollende enge Kurven durch ein landschaftlich sehr reizvolles Gebiet. Die FV 30 geht weiter Richtung Norden nach '''Casillas del Angel''', hier ist die Landschaft weniger reizvoll, dafür ist die Straße besser. Von '''[[Antigua (Fuerteventura)|Antigua]]''' führt die Straße FV 416 zur FV 30 zwischen Valle de Santa Inés und Betancuria. Für alle diese Straßen gilt: es gibt einige sehr schöne Aussichtspunkte mit Parkplätzen, ansonsten wenig Möglichkeiten, am Straßenrand Rast zu machen.
Die Buslinie '''02''' geht von [[Puerto del Rosario]] nach Betancuria, die Fahrzeiten richten sich jedoch nach den Bedürfnissen der örtlichen Bevölkerung.
<!--=== Mit dem Flugzeug ===
=== Mit der Bahn ===
=== Mit dem Bus ===
=== Auf der Straße ===
=== Mit dem Schiff ===
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
Der Ort Betancuria ist recht überschaubar. Wenn man mit einem Mietfahrzeug anreist, empfiehlt es sich, den Parkplatz am südlichen Ortseingang zu benutzen. Bis zum Ortskern ist es ein recht kurzer Fußweg. Für gehbehinderte Personen können die Steigungen zum Problem werden.
== Sehenswürdigkeiten ==
=== Betancuria ===
Betancuria wurde nach der Zerstörung im Jahr 1593 wieder aufgebaut, der Ortskern entstand im Verlauf des 17. Jahrunderts und wurde 1988 unter Denkmalschutz gestellt. Auffälligstes Gebäude ist die '''Iglesia de Santa Maria''', das dreischiffige Gotteshaus wird auch als ''Kathedrale'' bezeichnet, allerdings war in Betancuria nur bis zum Jahr 1430 ein Bischofssitz. Sehenswert in der Kirche ist insbesondere die Sakristei mit ihrer Holzdecke und zahlreichen Kultgegenständen, auch der Hochaltar und die Holzdecke des Kirchenschiffs verdienen Beachtung. Die Kirche ist für Besucher geöffnet Mo-Fr 10.45 - 16.20 Uhr, Sa 11-15.20 Uhr, Eintritt 1,50 €, fotografieren ist leider untersagt.
Gegenüber der Kirche ist das '''Casa Santa Maria''', ein aufwändig restauriertes Herrenhaus aus dem 16. Jahrhundert
Am nördlichen Ortsrand stehen die Überreste des '''Convento de San Buonaventura''', das ehemalige Franziskanerkloster spielte bei der Missionierung der Guanchen eine entscheidende Rolle.
=== Vega de Río de las Palmas ===
{{Scroll Gallery |title =Ermita de Nuestra Señora de la Peña
|Datei:ES-fuerte-vega-de-rio-palmas-kirche.jpg|Außenansicht vom Vorplatz gesehen
|Datei:ES-fuerte-vega-de-rio-palmas-kirche-inne.jpg|Innenraum der Kirche}}
In der "Ermita de Nuestra Señora de la Peña" in dem kleinen Ort südwestlich von Betancuria befindet sich eine Alabasterfigur der "Virgen de la Peña", sie gilt als Schutzpatronin der Insel. Die Kirche ist geöffnet Di-So 11-13 Uhr und 17-19 Uhr.
Der Ort liegt im "Barranco de las Peñitas", in dem zur Zeit von Jean de Béthencourt noch ein Wildbach floss, der später landwirtschaftlich genutzt wurde. Nachdem das Wasser versiegte, erbaute man einen Stausee. Dieser ist jedoch zwischenzeitlich durch Sedimente vollständig verlandet. An einem Aussichtspunkt an der Gemeindegrenze zwischen Betancuria und [[Pájara]] kann man noch die Reste des Stausees und der Bewässerungskanäle erkennen.
=== Valle de Santa Ines ===
Wer noch das ursprüngliche Leben auf Fuerteventura kennen lernen möchte, hat in diesem kleinen Ort die Gelegenheit dazu.
Der Weg führt von Betancuria nach Norden, vorbei an einem Mirador mit den Statuen der Guanchenkönige Guize und Ayoze, nicht weit davon ist der Mirador "Morro Velosa", der mit Mitteln der EU aufwändig gestaltet wurde und eine gute Aussicht über den Norden der Insel bietet.
== Aktivitäten ==
== Einkaufen ==
== Küche ==
== Nachtleben ==
== Unterkunft ==
<!--evtl. unterteilen in günstig, mittel und gehoben-->
== Sicherheit ==
== Gesundheit ==
== Praktische Hinweise ==
== Ausflüge ==
== Literatur ==
== Weblinks ==
{{Offizielle_Webseite}}
{{IstInKat|Fuerteventura}}
{{Navigation Fuerteventura}}
{{GeoData| lat=28.424721 | long=-14.057219 | radius= }}
{{class-2}}
q35wbebin9eh4dylf0mz6cml8ygkge4
1769097
1769096
2026-04-16T21:04:57Z
Scholless
15050
/* Unterkunft */ gestrafft
1769097
wikitext
text/x-wiki
{{quickbar Ort
| Karte =es-cn
| Länge = -14.055
| Breite = 28.416667
| Namen=
| Bild= [[Datei:ES-fuerte-betanc-santa-maria-1.jpg|300px|thumb|Iglesia de Santa Maria]]
| Lage=
| Provinz=
| ProvinzLabel=
| Einwohner=
| TouriInfoWeb=
| TouriInfoTel=
}}
'''Betancuria''' ist eine malerische Kleinstadt im Westen der Insel [[Fuerteventura]]. Sie wurde gegründet von dem normannischen Adligen [[:wikipedia:de:Jean de Béthencourt|Jean de Béthencourt]] und war die erste Hauptstadt der Insel. Wegen seiner historischen Gebäude ist er ein beliebtes Ausflugsziel zahlreicher Touristen.
{{Mapframe|28.416|-14.055|zoom=14|height=300|width=300}}
== Hintergrund ==
Im Jahr 1404 eroberte Jean de Béthencourt die Insel Fuerteventura. Sie bestand damals aus dem Königreich ''Maxorata'' im Norden, ihr Herrscher war der Guanchenkönig ''Guize'', im südlichen Teil der Insel regierte ''Ayoze'' im Königreich ''Gandia''. Bei der Eroberung erlitten die militärisch unterlegenen Guanchen schwere Verluste. Béthencourt gründete seine neue Hauptstadt fernab von der Küste, um sie vor Piraten zu schützen. Dies war jedoch nicht besonders erfolgreich, Betancuria wurde wiederholt überfallen und 1593 schwer zerstört. Die küstenferne Lage in den Bergen der Insel führte schließlich dazu, dass Betancuria im Jahr 1834 den Status als Hauptstadt abgeben musste.
Zur Gemeinde Betancuria gehören zwei weitere Orte, das südlich gelegene '''Vega de Río de las Palmas''' und der Ort '''Valle de Santa Inés'''.
== Anreise ==
[[Datei:ES-fuerte-betanc-guanch-2.jpg|thumb|200px|Statuen der Guanchenkönige Guize und Ayoze auf einem Mirador nördlich von Betancuria]]
Betancuria liegt im bergigen Westen der Insel auf eine Höhe von rund 400{{nnbsp}}m. Der Ort liegt an der '''FV 30''', sie kommt von '''[[Pájara]]''' im Süden über fast nicht enden wollende enge Kurven durch ein landschaftlich sehr reizvolles Gebiet. Die FV 30 geht weiter Richtung Norden nach '''Casillas del Angel''', hier ist die Landschaft weniger reizvoll, dafür ist die Straße besser. Von '''[[Antigua (Fuerteventura)|Antigua]]''' führt die Straße FV 416 zur FV 30 zwischen Valle de Santa Inés und Betancuria. Für alle diese Straßen gilt: es gibt einige sehr schöne Aussichtspunkte mit Parkplätzen, ansonsten wenig Möglichkeiten, am Straßenrand Rast zu machen.
Die Buslinie '''02''' geht von [[Puerto del Rosario]] nach Betancuria, die Fahrzeiten richten sich jedoch nach den Bedürfnissen der örtlichen Bevölkerung.
<!--=== Mit dem Flugzeug ===
=== Mit der Bahn ===
=== Mit dem Bus ===
=== Auf der Straße ===
=== Mit dem Schiff ===
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
Der Ort Betancuria ist recht überschaubar. Wenn man mit einem Mietfahrzeug anreist, empfiehlt es sich, den Parkplatz am südlichen Ortseingang zu benutzen. Bis zum Ortskern ist es ein recht kurzer Fußweg. Für gehbehinderte Personen können die Steigungen zum Problem werden.
== Sehenswürdigkeiten ==
=== Betancuria ===
Betancuria wurde nach der Zerstörung im Jahr 1593 wieder aufgebaut, der Ortskern entstand im Verlauf des 17. Jahrunderts und wurde 1988 unter Denkmalschutz gestellt. Auffälligstes Gebäude ist die '''Iglesia de Santa Maria''', das dreischiffige Gotteshaus wird auch als ''Kathedrale'' bezeichnet, allerdings war in Betancuria nur bis zum Jahr 1430 ein Bischofssitz. Sehenswert in der Kirche ist insbesondere die Sakristei mit ihrer Holzdecke und zahlreichen Kultgegenständen, auch der Hochaltar und die Holzdecke des Kirchenschiffs verdienen Beachtung. Die Kirche ist für Besucher geöffnet Mo-Fr 10.45 - 16.20 Uhr, Sa 11-15.20 Uhr, Eintritt 1,50 €, fotografieren ist leider untersagt.
Gegenüber der Kirche ist das '''Casa Santa Maria''', ein aufwändig restauriertes Herrenhaus aus dem 16. Jahrhundert
Am nördlichen Ortsrand stehen die Überreste des '''Convento de San Buonaventura''', das ehemalige Franziskanerkloster spielte bei der Missionierung der Guanchen eine entscheidende Rolle.
=== Vega de Río de las Palmas ===
{{Scroll Gallery |title =Ermita de Nuestra Señora de la Peña
|Datei:ES-fuerte-vega-de-rio-palmas-kirche.jpg|Außenansicht vom Vorplatz gesehen
|Datei:ES-fuerte-vega-de-rio-palmas-kirche-inne.jpg|Innenraum der Kirche}}
In der "Ermita de Nuestra Señora de la Peña" in dem kleinen Ort südwestlich von Betancuria befindet sich eine Alabasterfigur der "Virgen de la Peña", sie gilt als Schutzpatronin der Insel. Die Kirche ist geöffnet Di-So 11-13 Uhr und 17-19 Uhr.
Der Ort liegt im "Barranco de las Peñitas", in dem zur Zeit von Jean de Béthencourt noch ein Wildbach floss, der später landwirtschaftlich genutzt wurde. Nachdem das Wasser versiegte, erbaute man einen Stausee. Dieser ist jedoch zwischenzeitlich durch Sedimente vollständig verlandet. An einem Aussichtspunkt an der Gemeindegrenze zwischen Betancuria und [[Pájara]] kann man noch die Reste des Stausees und der Bewässerungskanäle erkennen.
=== Valle de Santa Ines ===
Wer noch das ursprüngliche Leben auf Fuerteventura kennen lernen möchte, hat in diesem kleinen Ort die Gelegenheit dazu.
Der Weg führt von Betancuria nach Norden, vorbei an einem Mirador mit den Statuen der Guanchenkönige Guize und Ayoze, nicht weit davon ist der Mirador "Morro Velosa", der mit Mitteln der EU aufwändig gestaltet wurde und eine gute Aussicht über den Norden der Insel bietet.
== Aktivitäten ==
== Einkaufen ==
== Küche ==
== Nachtleben ==
== Unterkunft ==
== Sicherheit ==
== Gesundheit ==
== Praktische Hinweise ==
== Ausflüge ==
== Literatur ==
== Weblinks ==
{{Offizielle_Webseite}}
{{IstInKat|Fuerteventura}}
{{Navigation Fuerteventura}}
{{GeoData| lat=28.424721 | long=-14.057219 | radius= }}
{{class-2}}
40nwwgwqvvjppklatds84szise1090d
Schwabach
0
40402
1768989
1768968
2026-04-16T12:27:36Z
Eduard47
17518
/* Mit dem Flugzeug */ Geänderte vCard für Flugplatz Schwabach-Büchenbach
1768989
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | google-maps = 2187619307114252159 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Beny‘s |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22 |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=|email=|url=https://hotelcentroschwabach.de/cm/de/ |hours=|price= |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=|email=|url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=|email=|url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
pgi114odqr0e83c710gp4xbdirdqbek
1768990
1768989
2026-04-16T12:28:41Z
RolandUnger
3
/* Mit dem Flugzeug */
1768990
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Beny‘s |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22 |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=|email=|url=https://hotelcentroschwabach.de/cm/de/ |hours=|price= |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=|email=|url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=|email=|url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
1wa8fz7snslhz3yxc5ry02x9vrpoeee
1769008
1768990
2026-04-16T13:36:59Z
Scholless
15050
/* Unterkunft */ Ergänzung
1769008
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Beny‘s |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22 |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=|email=|url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=|email=|url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=|email=|url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
rz9skmb2lkqwusno6vkko6kfzpmdvm1
1769009
1769008
2026-04-16T13:37:18Z
Scholless
15050
/* Unterkunft */ Einheiten/Währungen mit schmalem Leerzeichen;
1769009
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Beny‘s |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22 |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=|email=|url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=|email=|url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=|email=|url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
mrtxll3c9qdt6byi9pvfh8w20moss8a
1769048
1769009
2026-04-16T19:41:54Z
Scholless
15050
/* Unterkunft */ Ergänzungen
1769048
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Beny‘s |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22 |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=|email=|url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=|email=|url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
oprpdpcn580yf13srtlaqcxhpx2ku84
1769049
1769048
2026-04-16T19:42:51Z
Scholless
15050
/* Unterkunft */ Ergänzungen
1769049
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Beny‘s |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22 |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=|email=|url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
nkmzoxt9x7ilemm3x5choj1e30cc4tj
1769050
1769049
2026-04-16T19:44:48Z
Scholless
15050
/* Unterkunft */ Ergänzungen
1769050
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Beny‘s |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22 |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
b0wbm54a89i6mg6y41cm95bun9uwi6g
1769052
1769050
2026-04-16T19:45:36Z
Scholless
15050
/* Kinos */ Ergänzung
1769052
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Beny‘s |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
o68dl4g2vj6of1o1xlp653o2dn53yqc
1769053
1769052
2026-04-16T19:46:06Z
Scholless
15050
/* Nachtleben */ unter Kinos aufgeführt
1769053
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Beny‘s |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
ojcwn63icyzi2o9h1n76ngm6p3s8wvd
1769054
1769053
2026-04-16T19:46:51Z
Scholless
15050
/* Nachtleben */ dauerhaft geschlossen, also raus
1769054
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
j6c061vwn1ipdv982rcooatkmnnjo8r
1769056
1769054
2026-04-16T19:48:10Z
Scholless
15050
/* Nachtleben */ + Koordinaten
1769056
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
7l294jxxlssh9zot69dtkvtclvjaq1f
1769057
1769056
2026-04-16T19:49:03Z
Scholless
15050
/* Nachtleben */ Ergänzungen
1769057
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
6ob124ez8yv648vvlw1tajb9meze7am
1769061
1769057
2026-04-16T20:01:53Z
Scholless
15050
/* Nachtleben */ + Koordinaten
1769061
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
hrcv0383rsllmo9p0odu37wbw3gfdg5
1769062
1769061
2026-04-16T20:02:20Z
Scholless
15050
/* Nachtleben */ url
1769062
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=|email=|url=https://www.cafe-prinz.de/ |hours=|price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
795ts2bg1l5xo89md5hqj4xs00z97wl
1769063
1769062
2026-04-16T20:04:25Z
Scholless
15050
/* Nachtleben */ Ergänzungen
1769063
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
82wc8jidm2mp4qpw8axaqyy1ns0lhbt
1769064
1769063
2026-04-16T20:07:44Z
Scholless
15050
/* Nachtleben */ + Koordinaten
1769064
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
euow85aefm19n8rmugfy1csb8235t2i
1769065
1769064
2026-04-16T20:07:59Z
Scholless
15050
/* Nachtleben */ url
1769065
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=|email=|url=https://www.konstantin-schwabach.de/ |hours=|price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
1pqy93t7jsx34s0gcr8xkhetj73uvw3
1769066
1769065
2026-04-16T20:10:12Z
Scholless
15050
/* Nachtleben */ Ergänzungen
1769066
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
h5bivdpn9juwlkliaqxqx1vlgy1wsit
1769067
1769066
2026-04-16T20:13:40Z
Scholless
15050
/* Nachtleben */ Ausbau
1769067
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
cje3vri3hrnu06y2rm4wg2s6cdpcr3w
1769068
1769067
2026-04-16T20:14:17Z
Scholless
15050
/* Nachtleben */ + Koordinaten
1769068
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
h6zv7lmn0ktgwdhezxda4u8ksc4hud4
1769069
1769068
2026-04-16T20:14:35Z
Scholless
15050
/* Nachtleben */ url
1769069
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=|email=|url=https://www.annabar-schwabach.de/ |hours=|price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
e1d6gjnskr3yc5sfn6e1lmwpskmmo4w
1769070
1769069
2026-04-16T20:16:06Z
Scholless
15050
/* Nachtleben */ Ergänzungen
1769070
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |wikidata=|type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |hours=|price=EZ ab 98 €, DZ ab 135 € |lat=49.32919 |long=11.01666 |lastedit= |description=}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
rn9k6qa0j1vb5hjo8nvzindz823idyy
1769071
1769070
2026-04-16T20:16:26Z
Eduard47
17518
/* Unterkunft */Preis komplettiert
1769071
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
ge5q601ro04a2c1fewghqvco4szgjrt
1769072
1769071
2026-04-16T20:17:29Z
Scholless
15050
/* Nachtleben */ Ausbau
1769072
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
rdr507dx7vq0gt5reaa7mw2hthbjg3c
1769073
1769072
2026-04-16T20:18:18Z
Scholless
15050
/* Nachtleben */ + Koordinaten
1769073
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33168 |long=11.02294 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
5h5g1ppiw3qvskscglh5pi9code3bvl
1769074
1769073
2026-04-16T20:18:34Z
Scholless
15050
/* Nachtleben */ url
1769074
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=|url=https://www.dieschmiede-schwabach.de/ |hours=|price=|lat=49.33168 |long=11.02294 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
hbm3evv7ynfht372o39umuffs56266l
1769075
1769074
2026-04-16T20:20:07Z
Scholless
15050
/* Nachtleben */ Ergänzungen
1769075
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=schmiedeschwabach@gmail.com |url=https://www.dieschmiede-schwabach.de/ |hours=Fr 19:00-0:00 |price=|lat=49.33168 |long=11.02294 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
kvrt0cvekq3tegz87abhbuhbecy2q27
1769076
1769075
2026-04-16T20:21:13Z
Scholless
15050
/* Nachtleben */ Vorbereitung
1769076
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=schmiedeschwabach@gmail.com |url=https://www.dieschmiede-schwabach.de/ |hours=Fr 19:00-0:00 |price=|lat=49.33168 |long=11.02294 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
=== Theater ===
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
liaxo9nprvn16ldf13754gawtsly3kz
1769077
1769076
2026-04-16T20:22:25Z
Scholless
15050
/* Theater */ Ausbau
1769077
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=schmiedeschwabach@gmail.com |url=https://www.dieschmiede-schwabach.de/ |hours=Fr 19:00-0:00 |price=|lat=49.33168 |long=11.02294 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
=== Theater ===
* {{vCard|name=Galerie Gaswerk |wikidata=|type=theater |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-16 |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
qojw71yt7ah9tpnfx3oevtj4853qn6h
1769078
1769077
2026-04-16T20:23:05Z
Scholless
15050
/* Theater */ + Koordinaten
1769078
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=schmiedeschwabach@gmail.com |url=https://www.dieschmiede-schwabach.de/ |hours=Fr 19:00-0:00 |price=|lat=49.33168 |long=11.02294 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
=== Theater ===
* {{vCard|name=Galerie Gaswerk |wikidata=|type=theater |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33153 |long=11.02351 |lastedit=2026-04-16 |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
b215eqv4ua8vki8w65vbj0evaxewmno
1769079
1769078
2026-04-16T20:23:27Z
Scholless
15050
/* Theater */ url
1769079
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=schmiedeschwabach@gmail.com |url=https://www.dieschmiede-schwabach.de/ |hours=Fr 19:00-0:00 |price=|lat=49.33168 |long=11.02294 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
=== Theater ===
* {{vCard|name=Galerie Gaswerk |wikidata=|type=theater |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=|url=https://www.galerie-gaswerk.de/ |hours=|price=|lat=49.33153 |long=11.02351 |lastedit=2026-04-16 |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
6zixx9m1msg0x0ldrbotky6wn7xp7jh
1769080
1769079
2026-04-16T20:25:14Z
Scholless
15050
/* Theater */ Ergänzungen
1769080
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=schmiedeschwabach@gmail.com |url=https://www.dieschmiede-schwabach.de/ |hours=Fr 19:00-0:00 |price=|lat=49.33168 |long=11.02294 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
=== Theater ===
* {{vCard|name=Galerie Gaswerk |wikidata=|type=theater |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=+49 09122 937882 |email=h.kehrbach@kehrbach.de |fax=+49 09122 937881 |url=https://www.galerie-gaswerk.de/ |hours=|price=|lat=49.33153 |long=11.02351 |lastedit=2026-04-16 |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
18f1dl4hjdn1oiek5maksac22wj4noh
1769087
1769080
2026-04-16T20:50:30Z
Scholless
15050
/* Küche */ Ausbau
1769087
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Hosa-Gärtla |wikidata=|type=restaurant |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=schmiedeschwabach@gmail.com |url=https://www.dieschmiede-schwabach.de/ |hours=Fr 19:00-0:00 |price=|lat=49.33168 |long=11.02294 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
=== Theater ===
* {{vCard|name=Galerie Gaswerk |wikidata=|type=theater |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=+49 09122 937882 |email=h.kehrbach@kehrbach.de |fax=+49 09122 937881 |url=https://www.galerie-gaswerk.de/ |hours=|price=|lat=49.33153 |long=11.02351 |lastedit=2026-04-16 |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
3wgg3e6fx5ao08dn6k7smnlcor7kv1h
1769088
1769087
2026-04-16T20:51:06Z
Scholless
15050
/* Küche */ + Koordinaten
1769088
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Hosa-Gärtla |wikidata=|type=restaurant |address=Auf der Reit 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33936 |long=11.01157 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=schmiedeschwabach@gmail.com |url=https://www.dieschmiede-schwabach.de/ |hours=Fr 19:00-0:00 |price=|lat=49.33168 |long=11.02294 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
=== Theater ===
* {{vCard|name=Galerie Gaswerk |wikidata=|type=theater |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=+49 09122 937882 |email=h.kehrbach@kehrbach.de |fax=+49 09122 937881 |url=https://www.galerie-gaswerk.de/ |hours=|price=|lat=49.33153 |long=11.02351 |lastedit=2026-04-16 |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
394wr05udo1fyc5zuya5vecn1eujz4k
1769089
1769088
2026-04-16T20:51:43Z
Scholless
15050
/* Küche */ url
1769089
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Hosa-Gärtla |wikidata=|type=restaurant |address=Auf der Reit 3, 91126 Schwabach |phone=|email=|url=https://hosa-gaertla.de/ |hours=|price=|lat=49.33936 |long=11.01157 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=schmiedeschwabach@gmail.com |url=https://www.dieschmiede-schwabach.de/ |hours=Fr 19:00-0:00 |price=|lat=49.33168 |long=11.02294 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
=== Theater ===
* {{vCard|name=Galerie Gaswerk |wikidata=|type=theater |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=+49 09122 937882 |email=h.kehrbach@kehrbach.de |fax=+49 09122 937881 |url=https://www.galerie-gaswerk.de/ |hours=|price=|lat=49.33153 |long=11.02351 |lastedit=2026-04-16 |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
i1riylwxhd3du7zskjyxpsy3lf7y1sc
1769090
1769089
2026-04-16T20:53:12Z
Scholless
15050
/* Küche */ Ergänzungen
1769090
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Hosa-Gärtla |wikidata=|type=restaurant |address=Auf der Reit 3, 91126 Schwabach |phone=+49 09122 13735 |email=|url=https://hosa-gaertla.de/ |hours=Di-So 11:30-14:00 + 17:00-22:00 |price=|lat=49.33936 |long=11.01157 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=schmiedeschwabach@gmail.com |url=https://www.dieschmiede-schwabach.de/ |hours=Fr 19:00-0:00 |price=|lat=49.33168 |long=11.02294 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
=== Theater ===
* {{vCard|name=Galerie Gaswerk |wikidata=|type=theater |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=+49 09122 937882 |email=h.kehrbach@kehrbach.de |fax=+49 09122 937881 |url=https://www.galerie-gaswerk.de/ |hours=|price=|lat=49.33153 |long=11.02351 |lastedit=2026-04-16 |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=|url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=|description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
41wlkia00alp82itvjz69f5sty5n2l6
1769110
1769090
2026-04-16T21:21:53Z
Scholless
15050
/* Gesundheit */ Ergänzungen
1769110
wikitext
text/x-wiki
{{Quickbar Ort
| Bild =
| TouriInfoWeb = [https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html Tourist-Information]
| TouriInfoTel = +49 09122 860241
}}
'''Schwabach''' liegt in [[Mittelfranken]] und ist eine der kleinsten kreisfreien Städte in [[Bayern]]. Sie liegt in der Städteachse Nürnberg-Fürth-Erlangen-Schwabach und gehört zum [[Großraum Nürnberg]].
== Hintergrund ==
{{Mapframe|49.329167 | 11.02083|zoom=14|height=300|width=300|type=geoline}}
Berühmt ist Schwabach für seine Goldschläger und das von ihnen produzierte und weltweit exportierte Blattgold. Die mittelfränkische Stadt Schwabach entwickelte sich zum Weltzentrum dieses Handwerks, jeder sechste Einwohner hatte damit zu tun. Der Buckingham Palace in London, Türme von orthodoxen Kirchen in der Ukraine, Palastkuppeln in den Emiraten und viele andere sehenswerte Gebäude in aller Welt wurden mit Schwabacher Blattgold versehen.
Die Bedeutung des Goldschlagens ging im Laufe der Zeit zurück. Im Jahre 2006 nennt die Stadt noch neun Betriebe.
Der mit 14.000 Blatt Schwabacher Blattgold verzierte Goldene Saal im Rathaus wurde von Kurt Severin und Max Friese gestaltet. Im Jahr 2004 feierte Schwabach das Jubiläum "500 Jahre Blattgold in Schwabach". Blattgold ist noch heute Bestandteil des dem Danziger Goldwasser nachempfundenen Schwabacher Goldwassers, ein Gewürzlikör mit feinsten Blattgoldstückchen.
Als einzige deutsche Stadt wurde Schwabach bereits 1979 mit der Europa-Nostra-Medaille für den Schutz des architektonischen und landschaftlichen Erbes in Europa prämiert.
== Anreise ==
=== Mit dem Flugzeug ===
* {{vCard|type = airport|name = Flughafen Nürnberg |wikidata = Q265994 | description = Der Flughafen befindet sich 20 km nördlich von Schwabach.
}}
* {{vCard | name = Flugplatz Schwabach-Büchenbach | type = airport | wikidata = Q1433841 | description = Der Flugplatz liegt 10 km südlich von Schwabach. Er ist als {{Wikipedia|Sonderlandeplatz|Q2301048}} ausgewiesen, verfügt über eine 480{{nnbsp}}m lange Asphalt-Landebahn und kann von Motorflugzeugen bis 2000{{nnbsp}}kg und Hubschraubern bis 5700{{nnbsp}}kg angeflogen werden.
}}
=== Mit der Bahn ===
[[File:Bahnhof Schwabach vom Bahnsteig.jpg|thumb|Bahnhof Schwabach]]
* {{vCard|type=train|name=Bahnhof Schwabach|wikidata=Q9334499 | description = Am Bahnhof hält die Linie {{rint|nuremberg|s|2}} der Nürnberger S-Bahn. Die Fahrzeit zum Hauptbahnhof [[Nürnberg]] beträgt mit der S-Bahn etwa 20{{nnbsp}}Minuten, mit den Regional-Express-Zügen etwa 10{{nnbsp}}Minuten. Jede Stunde verkehrt ein Regional-Express nach [[München]], abwechselnd über [[Augsburg]] oder [[Ingolstadt]].
}}
=== Mit dem Bus ===
Von Nürnberg Hauptbahnhof nach Schwabach fährt am Wochenende stündlich ein Nachtbus (VGN NightLiner). Tagsüber fahren natürlich mehr Busse.
Der öffentliche Nahverkehr der Metropolregion Nürnberg wird vom Verkehrsverbund Großraum Nürnberg '''[http://www.vgn.de/ VGN]''' betrieben. Es ist möglich, mit einem Ticket verschiedene Verkehrsmittel, wie Bus, Zug, S-Bahn oder U-Bahn zu nutzen. Die Tickets können online oder über eine App erworben werden.
=== Auf der Straße ===
Die Autobahn {{RSIGN|DE|A|6}} durchquert das Stadtgebiet im Süden, hier gibt es die zwei Anschlussstellen Schwabach-West und Schwabach-Süd. Somit ist Schwabach direkt an die weiteren überregionalen Fernstraßenverbindungen der Autobahn {{RSIGN|DE|A|9}} (München – Berlin) und Autobahn {{RSIGN|DE|A|3}} (Passau – Frankfurt a. M.) angebunden.
Die Bundesstraße 2 durchquert Schwabach.
Die Bundesstraße 466 beginnt/endet in Schwabach.
=== Mit dem Schiff ===
Der [[Main-Donau-Kanal]] mit seinem Hafen Nürnberg (10 km) eröffnet den Wasserweg in den südosteuropäischen Raum und nach Nord- und Westeuropa.
<!--
=== Mit dem Fahrrad (optional) ===-->
<!--=== Zu Fuß (optional) ===-->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard|name=Stadtkirche St. Johannes und St. Martin |wikidata=|type=church |address=Martin-Luther-Platz 2, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32909 |long=11.02199 |lastedit=2026-04-15 |description=Mit dem Schwabacher Altar, einem Hochaltar aus der Werkstatt von Michael Wolgemut, dem Lehrer von Albrecht Dürer. Der spätgotische Wandelaltar (fertiggestellt 1508) mit seinen Schnitzereien ist ein klassisches Beispiel für die Verwendung von Blattgold.}}
* {{vCard|name=Unterreichenbacher Kirche |wikidata=|type=church |address=Stromerstraße 18, 91126 Schwabach OT Unterreichenbach |phone=|email=|url=|hours=|price=|lat=49.32798 |long=10.99191 |lastedit=2026-04-15 |description=Die heutige Kirche wurde 1496 im gotischen Stil neu erbaut und ist eine Jakobskirche. Eine romanische Vorgängerkirche entstand bereits im 13. oder 14. Jahrhundert.}}
* {{vCard|name=Spitalkirche |wikidata=|type=church |address=Spitalberg, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.33011 |long=11.01909 |lastedit=2026-04-15 |description=}}
* Durch die Altstadt führte der Kunstwanderweg Goldene Meile
* {{vCard|name=Ehemalige Synagoge und Laubhütte|wikidata=|type=synagogue |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-15 |description=}}
* {{vCard|name=Moschee Hak Yol Camii |wikidata=|type=mosque |address=Bahnhofstraße 11, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32763 |long=11.02855 |lastedit=2026-04-15 |description=}}
* Der 1717 eingeweihte Brunnen am Marktplatz enthält die Portraits der markgräflichen Familie.
* Goldschlägerwerkstätten mit Vorführungen
* {{vCard|name=Stadtmuseum |wikidata=|type=museum |address=Museumsstraße 1, 91126 Schwabach |phone=+49 09122 860600 |email=stadtmuseum@schwabach.de |url=https://www.schwabach.de/de/kulturportal-stadtmuseum/stadtmuseum.html |hours=Mi-So 10:00-18:00 |price=|lat=49.33669 |long=11.01807 |lastedit=2026-04-15 |description=Mit Eiermuseum (mit seltenem Fabergé-Ei) und Geschichte der US-Army.}}
* {{vCard|name=Rathaus |wikidata=|type=town hall |address=Königsplatz 1, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32902 |long=11.02127 |lastedit=2026-04-15 |description=Mit goldenem Saal und goldenem Dach.}}
* Die Städtische Galerie im Bürgerhaus wird vom Künstlerbund Schwabach e. V. verwaltet.
* Südlich von Schwabach im Heidenberg liegt ein 14 Kilometer langer Sagenwanderweg.
* {{vCard|name=Schwabacher Marionettenbühne |wikidata=|type=theater |address=Seminarstraße 2, 91126 Schwabach |phone=|email=|url=https://schwabacher-marionetten.de/ |hours=|price=|lat=49.32752 |long=11.01758 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Apothekersgarten |wikidata=|type=park |address= Königstraße, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32845 |long=11.01912 |lastedit=2026-04-15 |description=}}
== Aktivitäten ==
* {{vCard|name=Parkbad Schwabach |wikidata=|type=swimming pool |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 81772 |email=|url=|hours=|price=|lat=49.32373 |long=11.03025 |lastedit=2026-04-15 |description=
}}
* {{vCard |type=airport |name=Flugplatz Schwabach-Büchenbach |wikidata=Q1433841 | show = copy | description = Der Flugplatz liegt 10 km südlich von Schwabach. Dort ist jeder zum Zuschauen oder Mitfliegen im Motorflieger, Motorsegler oder Segelflieger willkommen. Bei schönem Wetter steht eine Aussichtsterrasse zur Verfügung.
}}
=== Regelmäßige Veranstaltungen ===
* Bürgerfest (Juli)
* Wirtefest
* Sommernachtsfest der Freiwilligen Feuerwehr (Juni/Juli)
* Sagenfest (1. Wochenende im Mai, Heidenberg)
* Lindenfest der KG „Die Schwabanesen“
*Weihnachtsmarkt
* Faschingszug durch Schwabach
* Frühlingsfest
* Kirchweih („Kärwa“) (September)
*Ortung, eine seit 1999 im zweijährlichen Zyklus stattfindende Kunstausstellung
*Schwabacher Sportsnight
*Goldene Nacht
* LesArt/Literaturtage Schwabach
*Internationales Figurentheaterfestival
*[https://www.challenge-roth.com Challenge Roth] (Triathlonwettkampf) im benachbarten Roth
== Einkaufen ==
*Das Hüttlinger
*huma Einkaufswelt
* {{vCard | name = Brennerei Eduard Scheuerpflug | type = distillery | url = https://www.brennereischeuerpflug.de/ | address = Alte Dietersdorfer Str. 26, 91126 Schwabach | lat = 49.368675 | long = 10.998381 | phone = +49 911 6328392 | hours = Do, Fr 8:00 - 18:00, Sa 8:00 - 13:00 Uhr | lastedit = 2024-06-03 | description = Liköre, selbst gebrannte Schnäpse, Eier aus artgerechter Haltung, Hausgemachte Marmeladen und Gelees.
}}
== Küche ==
{{Sitelinks | name = Schwabacher Goldwasser | wikidata = Q1695063 }} ist ein Gewürzlikör, 40 % vol, dem 22-karätigem Blattgold. (Lebensmittelfarbstoff E 175) zugesetzt wird.
* {{vCard|name=Gasthof Zum weißen Lamm |wikidata=|type=guest house |address=Königsplatz 33, Schwabach |phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier übernachtete Johann Wolfgang von Goethe 1797.}}
* {{vCard|name=Gasthaus Goldener Stern |wikidata=|type=guest house |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Hier wurden 1528 die Schwabacher Artikel verfasst.}}
* {{vCard|name=Restaurant & Bar Der Stern |wikidata=|type=restaurant |address=Königsplatz 12, 91126 Schwabach |phone=+49 0151 25321800 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-restaurant-bar |hours=täglich 11:30-14:30 + 17:00-23:00 |price=|lat=49.32933 |long=11.02025 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Stern Garten |wikidata=|type=beer garden |address=Angerstraße 10, 91126 Schwabach |phone=+49 09122 8875759 |email=info@der-stern.com |url=https://www.der-stern.com/der-stern-garten |hours=täglich 11:30-23:00 |price=|lat=49.32333 |long=11.02822 |lastedit=2026-04-15 |description=}}
* {{vCard|name=El Paso |wikidata=|type=restaurant |address=Limbacher Str. 107, 91126 Schwabach |phone=+49 09122 75777 |email=|url=|hours=Mo-Sa 17:30–23:00, So 17:00–23:00 |price=|lat=49.33977 |long=11.04399 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Hosa-Gärtla |wikidata=|type=restaurant |address=Auf der Reit 3, 91126 Schwabach |phone=+49 09122 13735 |email=|url=https://hosa-gaertla.de/ |hours=Di-So 11:30-14:00 + 17:00-22:00 |price=|lat=49.33936 |long=11.01157 |lastedit=2026-04-15 |description=}}
== Nachtleben ==
* {{vCard|name=AnnaBar |wikidata=|type=bar |address=Bachgasse 12, 91126 Schwabach |phone=+49 09122 1892466 |email=info@annabar-schwabach.de |url=https://www.annabar-schwabach.de/ |hours=Do 18:00–0:00, Fr+Sa 18:00–3:00, So 18:00–22:00 |price=|lat=49.33000 |long=11.02065 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Die Schmiede |wikidata=|type=bar |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=|email=schmiedeschwabach@gmail.com |url=https://www.dieschmiede-schwabach.de/ |hours=Fr 19:00-0:00 |price=|lat=49.33168 |long=11.02294 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Titos |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Restaurant, Club Lounge, Bar & Cafe in einem.}}
* {{vCard|name=Prinz |wikidata=|type=pub |address=Rathausgasse 2, 91126 Schwabach |phone=+49 09122 6318360 |email=reservierung@cafe-prinz.de |url=https://www.cafe-prinz.de/ |hours=Mo-Do 9:00-23:00, Fr+Sa 9:00-0:30, So 9:00-22:30 |price=|lat=49.32809 |long=11.02156 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Konstantin |wikidata=|type=pub |address=Königsplatz 21, 91126 Schwabach |phone=+49 09122 6318504 |email=info@das-konstantin.de |url=https://www.konstantin-schwabach.de/ |hours=Di-Do 17:00-0:00, Fr+Sa 17:00-1:00, So 17:00-23:00 |price=|lat=49.32869 |long=11.02126 |lastedit=2026-04-16 |description=Restaurant und Cocktail Bar.}}
* {{vCard|name=Creek Lane Irish Pub |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Metrodrom |wikidata=|type=pub |address=Ludwigstraße 1a, 91126 Schwabach |phone=+49 09122 13060 |email=|url=|hours=Do-Sa 19:00–2:00 |price=|lat=49.32909 |long=11.02296 |lastedit=2026-04-16 |description=}}
* {{vCard|name=Centro |wikidata=|type=pub |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=}}
* {{vCard|name=Unfassbar |wikidata=|type=pub |address=Südliche Mauerstraße 3, 91126 Schwabach |phone=|email=|url=|hours=|price=|lat=49.32794 |long=11.02055 |lastedit=2026-04-15 |description=}}
=== Kinos ===
* {{vCard|name=Luna-Theater |wikidata=|type=theater |address=Neutorstraße 1, 91126 Schwabach |phone=|email=|url=https://www.luna-theater.com/ |hours=|price=|lat=49.33061 |long=11.02306 |lastedit=2026-04-15 |description=}}
* {{vCard|name=Lichtspielhaus |wikidata=|type=cinema |address=Friedrichstraße 22, 91126 Schwabach |phone=|email=|url=https://www.kino-schwabach.de/lichtspielhaus |hours=|price=|lat=|long=|lastedit= |description=}}
=== Theater ===
* {{vCard|name=Galerie Gaswerk |wikidata=|type=theater |address=Nördliche Ringstraße 9, 91126 Schwabach |phone=+49 09122 937882 |email=h.kehrbach@kehrbach.de |fax=+49 09122 937881 |url=https://www.galerie-gaswerk.de/ |hours=|price=|lat=49.33153 |long=11.02351 |lastedit=2026-04-16 |description=}}
== Unterkunft ==
* {{vCard|name=Hotel Centro |type=hotel |address=Südliche Mauerstraße 9, 91126 Schwabach |phone=+49 09122 873200 |email=info@hotelcentroschwabach.de |url=https://hotelcentroschwabach.de/cm/de/ |price=EZ ab 98 €/ÜF, DZ ab 135 €/ÜF |lat=49.32919 |long=11.01666 |lastedit= |description=
}}
* {{vCard|name=Hotel Gasthof Raab |wikidata=|type=hotel |address=Äußere Rittersbacher Str. 14, 91126 Schwabach |phone=+49 09122 93880 |email=info@hotel-raab.de |url=https://hotel-raab.de/ |hours=|price=|lat=49.31383 |long=11.02177 |lastedit=|description=
}}
* {{vCard|name=Holiday Inn Express |wikidata=|type=hotel |address=Wendelsteiner Straße 4, 91126 Schwabach |phone=+49 09122 18800 |email=info@express-schwabach.de |fax=+49 09122 1880888 |url=https://express-schwabach.de/ |hours=|price=|lat=49.32259 |long=11.04266 |lastedit= |description=}}
== Sicherheit ==
* {{vCard|name=Polizeiinspektion Schwabach |wikidata=|type=police |address=Friedrich-Ebert-Straße 10, 91126 Schwabach |phone=+49 09122 9270 |email=|url=|hours=|price=|lat=49.32261 |long=11.02175 |lastedit=2026-04-15 |description=}}
== Gesundheit ==
* {{vCard|name=Stadtkrankenhaus Schwabach |wikidata=|type=hospital |address=Regelsbacher Straße 7, 91126 Schwabach |phone=+49 09122 1821 |email=info@klinik-schwabach.de |url=https://www.klinik-schwabach.de/ |hours=|price=|lat=49.33288 |long=11.01280 |lastedit=2026-04-16 |description=}}
== Praktische Hinweise ==
* {{vCard|type=tourist information |name=Tourist-Information |address=Königsplatz 1, 91126 Schwabach (im Rathaus) |phone=+49 09122 860-241 |email=tourismus@schwabach.de |url=https://www.schwabach.de/de/schwabach-erleben/tourismus/tourist-information.html|hours= Mo-Mi, Fr 8:00-13:00, Do 8:00-16:00 |lat=49.32898 |long=11.02135 |lastedit=2026-04-16 |description=}}
== Ausflüge ==
*Im benachbarten Heidenberg befindet sich ein mit Text- und Bildtafeln bebilderter Sagenwanderweg mit mehr als 22 Stationen. Startpunkte der 14 Kilometer langen Strecke sind sowohl in [[Kühedorf]] als auch in [[Kammerstein]]. Einer Sage nach soll im Heidenberg der Hunnenkönig Attila begraben liegen (Sagenstation 19). Auf einer Lichtung im Wald, der Ofenplatte, wird jährlich, am 1. Wochenende im Mai, das Sagenfest gefeiert.
*[[Fränkisches Seenland]]
== Literatur ==
*CD-ROM: Goldschlägerstadt Schwabach. 500 Jahre Blattgold, 1504–2004. imbiss-media, Nürnberg 2004, {{ISBN|3-938451-01-7}}.
*Kurt Pilz: Die Stadtkirche St. Johannes und St. Martinus in Schwabach. Ihre Geschichte und ihre Kunstwerke. Evangelisch-Lutherisches Pfarramt St. Martin u. a., Schwabach 1979, {{ISBN|3-922575-00-5}}.
*Karl Dehm, Gottlob Heckel: Häusergeschichte der Altstadt Schwabach. Mit einem Verzeichnis der Hausbesitzer. Geschichts- und Heimatverein e.V., Schwabach 1979.
=== Tageszeitung ===
* {{vCard|name=Schwabacher Tagblatt |type=newspaper |url=https://www.nordbayern.de/region/schwabach
}}
== Weblinks ==
* {{Offizielle Webseite}}
{{GeoData| lat= 49.329167 | long= 11.020833| radius= }}
{{class-3}}
{{IstInKat|Großraum Nürnberg}}
5yor1opbz14a26bgs9na3ak65w7eeub
Rías Baixas
0
46493
1768992
1749557
2026-04-16T12:32:44Z
Qualitätssicherung
50648
+ Islas Cíes
1768992
wikitext
text/x-wiki
<!--{{s. Vorgabe|Regionen}}-->
Die Region der '''Rias Baixas''' liegt in [[Galicien]], der nordwestlichsten Region von [[Spanien]].
== Regionen ==
[[Datei:Rias Baixas.Galicia.png|miniatur|Rias Baixas - Übersichtskarte]]
Bei den Rías handelt es sich um versunkene Flusstäler, welche zu fjordähnlichen Meeresarmen geworden sind. Die '''Rías Baixas''' (die unteren Rias) liegen an der Westküste Galiziens zwischen dem [[Cabo Fisterra]] und der portugiesischen Grenze und sind eine beliebte Feriendestination in [[Galicien]].
Die '''[[Rías Altas]]''' liegen an der Nordküste von Galicien, die Meeresarme sind hier weniger weit eingeschnitten.
Unterschieden werden von Norden nach Süden die vier Rias:
* '''[[Ría de Muros e Noia]]'''
* '''Ría de Arousa'''
* '''Ría de Pontevedra'''
* '''Ría de Vigo'''
[[Datei:Ría de Muros, A Coruña, 20 Sept. 09.jpg|800px|links|Ría de Muros]]
{{-}}
== Orte ==
{{Mapframe}}
am {{Marker|type = see|lat = 42.8825 |long =-9.272222|name = [[Cabo Fisterra|Kap Fisterra]]}}
* die Ortschaften {{Marker|type = town|lat = 42.9|long = -9.25|name = [[Fisterra]] }}, {{Marker|type = town|lat = 42.944662|long =-9.193892|name = [[Corcubión]] }} und {{Marker|type = town|lat = 42.956389 |long = -9.189722|name = [[Cee]]}}
in der '''[[Ría de Muros e Noia]]'''
* das Städtchen {{Marker|type = town|name = [[Noia]] | lat = 42.7825| long = -8.888611}}
* die Ortschaften {{Marker|type = town|name = [[Muros (Galicien)]] | lat = 42.773333| long = -9.0575}} und [[Esteiro]] an der Nordseite
in der '''[[Ría de Arousa]]'''
* die Ortschaften {{Marker|type = town|name = [[Ribeira]] | lat = 42.54886| long = -8.98549}} und {{Marker|type = town|name = [[Boiro]] | lat = 42.649587| long = -8.899901}} an der Nordseite
* {{Marker|type = town|name = [[Vilagarcía de Arousa]] | lat = 42.595058| long = -8.743065}} , {{Marker|type = town|name = [[Vilanova de Arousa]] | lat = 42.562628| long = -8.829935}} und {{Marker|type = town|name = [[O Grove]] | lat = 42.495302| long = -8.86409}} an der Südseite
* mit der mit einer Strasse mit dem Festland verbundenen [[Illa de Arousa]], deren Südteil unter Naturschutz steht
in der '''[[Ría de Pontevedra]]'''
* {{Marker|type = town|name = [[Sanxenxo]] | lat = 42.399457| long = -8.806788}} ''(Sangenjo)'' an der Nordseite
* die Stadt {{Marker|type = town|name = [[Pontevedra]] | lat = 42.433611|long = -8.6475}} am Ende der Ría
in der '''[[Ría de Vigo]]'''
* die Grossstadt {{Marker|type = town|name = [[Vigo]] | lat = 42.233333| long = -8.716667}} und {{Marker|type = town|name = [[Redondela]] | lat = 42.283333| long = -8.6}} an der Südseite
* die vorgelagerten unter Naturschutz stehenden Inseln {{Marker|type = see | name =[[Islas Cíes]]|lat = 42.233333|long = -8.9}}.
<!--== Weitere Ziele ==-->
== Hintergrund ==
Die versunkenen Flusstäler, welche zu Meeresarmen geworden sind, machen den Südteil der Westküste Galiziens zu einer beliebten Urlaubsregion, in den Meeresarmen wird auch Muschelzucht betrieben.
== Sprache ==
Lokal wird Galicisch ''("Galego")'' gesprochen, mit [[Sprachführer Spanisch|Spanisch]] als Hochsprache wird man überall verstanden, wenn auch als "Fremdling" erkannt, nur in den touristisch besser erschlossenen Ortschaften wird von jüngeren Einwohnern englisch gesprochen. Auf jemand deutschsprachigen zu treffen, ist eine Glückssache - wenn man einem Fahrzeug mit einem Nummernschild aus der Schweiz oder Deutschland begegnet, ist die Chance groß, dass es sich um Auslandsspanier handelt, die zweisprachig sind.
Zahlreichen Touristen und entsprechenden Fremdsprachenkenntnissen bei den Gastgebern begegnet man nur in [[Santiago de Compostela]] und entlang der Destinationen des [[Jakobsweg|Jakobswegs]].
== Anreise ==
Rasch ist [[Galicien]] und die Region der Rías Baixas mit dem Flugzeug zu erreichen, ab den nächsten Flughäfen von [http://www.aena-aeropuertos.es/csee/Satellite/Aeropuerto-Santiago/es/ Santiago de Compostela] oder [http://www.aena-aeropuertos.es/csee/Satellite/Aeropuerto-Vigo/es/ Vigo] geht es mit dem Mietwagen oder per Bus weiter.
Mit der Bahn können [[Villagarcia]], [[Pontevedra]] und [[Vigo]] mit den Zügen der [http://www.renfe.com/viajeros/index.html RENFE] erreicht werden. In die kleineren Ortschaften der Rías verkehren Busse. Um abgelegenere Strände und Sehenswürdigkeiten zu erreichen, ist ein Privatfahrzeug ausgesprochen hilfreich, angesichts der auch im Sommer nicht seltenen Regengüsse bietet sich eine Reise im Wohnmobil an.
== Mobilität ==
Mit der Bahn können nur die größeren Städte [[Villagarcia]], [[Pontevedra]] und [[Vigo]] erreicht werden, diese machen nicht gerade den Reiz der Region aus. In die kleineren Ortschaften der Rías verkehren Busse. Um abgelegenere Strände und Sehenswürdigkeiten zu erreichen, ist ein Privatfahrzeug ausgesprochen hilfreich.
== Sehenswürdigkeiten ==
[[File:Ría de arousa01b.jpg|600px|left|Ría de Arousa]] {{-}}
Neben zahlreichen einladenden Badestränden (in den Meeresarmen ist der Atlantik weniger rau und die Wassertemperatur nicht ganz so kalt, wie an der exponierteren (Nordwest)küste) sind die Naturschutzgebiete der '''Illa Arousa''' und die '''Riesendüne von Olveira''' sehenswert.
Die vorgelagerten Inseln, die den {{marker|name=Nationalpark Islas Atlánticas de Galicia|type=nature reserve|lat=|long= |wikidata=Q1628126}}, bilden. Vor dem Besuch muß man eine [https://autorizacionillasatlanticas.xunta.gal/illasr/inicio kostenfreie Erlaubnis] beantragen, was maximal neunzig Tage im voraus möglich ist. Den Code muß man vorlegen, um die Fahrkarte der Fähre von Vigo auf die Insel {{marker|type=island|name=[[Pontevedra (Provinz)#Islas Cíes|Monteagudo]]|alt=Überfahrt 45 Min.|lat=|long=|name-local=y|wikidata=Q97477588}} kaufen zu dürfen.
== Aktivitäten ==
[[File:Porto do Son 01.jpg|thumb|450px|Porto do Son]]
Baden und Wassersport, Segler und Windsurfer kommen dank der Windverhältnisse auf ihre Rechnung. Im hügeligen Gebiet sind Wanderungen möglich.
== Küche ==
Die Küche Galiciens ist bodenständig und unterscheidet sich ziemlich von der üblichen spanischen Küste.
Fische, '''Meeresfrüchte''' wie Jakobsmuscheln (vieiras) , Austern (ostras) und Venusmuscheln sowie der ''Pulpo galego'', ein Ragout aus Tintenfisch mit Paprika, Salz und Öl sind in Küstennähe häufig auf dem Teller.<br/>
Die in ganz Spanien beliebten '''Empanadas''' oder '''Empanadillas''' (gefüllte Teigtaschen mit Gemüde, Fleisch oder Fisch) stammen ursprünglich aus Galicien.
Eine andere typische Speise ist der galicische Eintopf mit Schinken, Rindfleisch, Huhn, Paprikawurst (chorizo), Steckrüben oder Kohl, Kartoffeln und Kichererbsen. Eine typische Speise des Winters ist der ''lacón con grelos'' (gepökelter Vorderschinken mit jungen Steckrübenblättern).
In der Weinregion '''[https://www.doriasbaixas.com/ D.O. Rías Baixas]''' in der Provinz Pontevedra wird die weiße Rebsorte ''Albariño'' angebaut. Der Albariño wird meist jung getrunken, besitzt eine feine Säure und passt sehr gut zu Fisch und zu Meeresfrüchten.
== Nachtleben ==
[[File:Frota mexilloeira en Santo Adrán de Cobres.JPG|thumb|Ria de Vigo]]
== Sicherheit ==
Die Sicherheitslage ist unbedenklich, in Touristendestinationen sollten die üblichen Empfehlungen eingehalten werden.
== Klima ==
Da die Atlantikküste im Vorland von sich durch ganz Galicien ziehenden Bergketten liegt, entleeren sich daran oftmals bei Westwindlage Regenwolken, so kommt das Klima den Anwohnern am Alpennordrand ausgesprochen bekannt vor.<br />
Auch im Sommer kann es zwischen Sonnentagen mit durchaus angenehmen Badetemperaturen immer wieder trüb-neblige Regentage geben, die Niederschlagshäufigkeit ist im Frühjahr und Herbst höher und im Winter am ausgeprägtesten. In den Rías Baixas werden mit 50 - 100 Regentagen weniger Niederschläge gemessen, als an der galicischen Nordküste.
Das auch im Winter milde Atlantikklima erinnert an die Bretagne oder den Süden von England, nicht umsonst sagt man sich in Spanien, dass die Galicier mit dem Regenschirm in der Hand auf die Welt kommen.<br />
Jedenfalls nehmen etliche Madrilenen für ein verlängertes Wochenende den Weg auf sich, einmal frisch - kühle Luft in einer grünen Umgebung zu atmen und der stickig-heißen Hauptstadt zu entfliehen.
<!--
== Literatur ==
-->
== Weblinks ==
* [https://www.turgalicia.es Website] mit Tourismusinformationen zu Galicien
{{Navigation_Spanien_Küste}}
{{IstInKat|Galicien}}
{{GeoData| lat= 42.58443| long= -8.79730| radius= }}
{{class-3}}
mmp4cba03bpq5og991rivqbm1o5dwp3
Pontevedra (Provinz)
0
48471
1768988
1603154
2026-04-16T12:26:06Z
Qualitätssicherung
50648
ausführlicher Absatz Islas Cíes
1768988
wikitext
text/x-wiki
{{Quickbar Region
|Hoheitszeichen=
|Hauptstadt=
|Einwohner=
|Fläche=
|Lagekarte=
|Imagemap= es
|Iso-3166= es
}}
'''Pontevedra''' ist eine [[Spanien|spanische]] Provinz in der Region [[Galicien]]. Ihre Nachbarprovinzen sind [[A Coruña (Provinz)|A Coruña]] im Norden, [[Lugo (Provinz)|Lugo]] und [[Ourense (Provinz)|Ourense]] im Osten. Südlicher Nachbar ist [[Portugal]], im Osten ist der [[Atlantischer Ozean|Atlantische Ozean]] eine natürliche Grenze.
== Regionen ==
{{mapframe|42.5| -8.670429226779843|zoom=9}}{{mapshape|type = geoline}}
Die Provinz ist überwiegend bergig. Ihre Küstenlinie gehört zu den '''[[Rías Baixas]]''', es sind tief eingeschnittene Täler mit schönen Stränden.
Im Süden ist der '''Rio Miño''' Grenzfluss zu Portugal, in der Mitte der Provinz mündet der '''Rio Lérez''' bei Pontevedra in den Atlantik. ´Zwischen diesen beiden Flüssen liegt das am dichtesten bevölkerte Gebiet mit den meisten touristischen Attraktionen.
Die Bevölkerungszahl der Provinz beträgt knapp eine Million Menschen, etwa jeder dritte lebt in [[Vigo]], jeder zehnte in Pontevedra.
== Orte ==
[[Datei:Sanxenxo de noche.jpg|mini|Sanxenxo bei Nacht ]]
[[Datei:Castro en santa tegra.jpg|mini|Keltisches Dorf auf dem Monte Santa Tecla]]
* {{marker|type = city|name = [[Pontevedra]] |wikidata = Q12411}} liegt an der ''Ría de Pontevedra'', der Mündung des Flusses Lérez, im 16. Jahrhundert strategisch bedeutender Hafen. Die Stadt ist international bekannt für ihre Urbanität und Fußgängerfreundlichkeit.
*{{marker|type = city|name = [[Sanxenxo]] |wikidata = Q840355}} ist die „Tourismushauptstadt“ der Region ''[[Rías Baixas]]'' und der größte Badeort Galiciens mit einem schönen vier Kilometer langem Sandstrand.
*{{marker|type = city|name = [[Vigo]] |wikidata =Q8745}} ist eine Industriestadt. Sie ist Standort der größten Fischereiflotte des Landes.
* {{marker|type = city|name = [[Cambados]] |wikidata = Q695477}}, das Zentrum des Weinbaus ''(D.O. Albariño)'', liegt am Meeresarm Ría de Arousa. Schöne barocke Herrenhäuser.
* {{marker|type = city|name = [[A Guarda]] |wikidata =Q300433}}, der südlichste Ort Galiciens ist berühmt für seine Langusten. In der Nähe liegt der ''Monte Santa Tecla'' mit den Ausgrabungen eines keltischen Dorfes aus dem 5. Jahrhundert v. Chr.
* {{marker|type = city|name = [[Catoira]] |wikidata =Q377244}}, ein kleiner Ort an der Ría de Arousa. Ihre Verteidigungsanlagen konnten mehrmals den Angriffen von Wikingern und Piraten standhalten. Daran erinnert jährlich das Fest der ''Romeria Wikinga''.
* {{marker|type = city|name = [[Tui (Galicien)|Tui]] |wikidata =Q824122}} (span. Tuy), Grenzstadt zu Portugal am rechten Ufer des Rio Miño. Sehenswert die befestigte Kathedrale, sie stammt aus dem 12./13. Jahrhundert. Auf der anderen Seite des Flusses liegt die portugiesische Stadt [[Valença]]. Heute verbindet die Orte u. a. eine von Gustave Eiffel entworfene Eisenbrücke.
== Weitere Ziele ==
{{vCard|name=Nationalpark Islas Atlánticas de Galicia|type=nature reserve|lat=|long=|lastedit=|description=Teil der Küstenlinie der [[Rías Baixas]] mit ihren vorgelagerten Inseln. |wikidata=}}
Vor dem Besuch muß man eine [https://autorizacionillasatlanticas.xunta.gal/illasr/inicio kostenfreie Erlaubnis] beantragen, was maximal neunzig Tage im voraus möglich ist. Den Code muß man vorlegen, um die Fahrkarte der täglichen Fähre von Vigo auf die Insel {{marker|type=island|name=Monteagudo|url=|lat=|long=|name-local=y|wikidata=Q97477588}} kaufen zu dürfen.
Analoges gilt für den Besuch der '''Islas Ons.'''
Man hat die Auswahl unter Bootsunternehmen {{Stand|2026|04}}:
* [https://www.mardeons.es/ Mar de Ons], zu den Inseln Islas Cíes, Ons, Tambo, San Simón
* [https://www.piratasdenabia.com/ Naviera Nabia] zu beiden Inselgruppen
* [https://www.crucerosriasbaixas.com/ Cruceros Rias Baixas] zu beiden Inselgruppen
* [https://www.crucerosdoulla.com/barco-islas-cies/ Cruceros do Ulla] zu den Islas Cíes
* [https://rgnaviera.com/destinos/ RG Naviera] zu den Islas Cíes und {{marker|type=city|name=Cangas de Morrazo|url=|lat=|long=|name-local=y|name-map=|wikidata=Q1628188}}
=== Islas Cíes ===
Die Islas Cíes sind eine kleine Inselgruppe an der Mündung des Ría de Vigo. Im Jahr 1980 wurden die Islas Cíes zum Naturschutzgebiet erklärt. Seit 2002 ist die Inselgruppe mit den Islas Ons Teil eines Nationalparks.
Die Überfahrt aus Vigo nach Monteagudo dauert 45 Minuten. Um von dort auf die kleinere Insel Faro zu gelangen, geht man auf der verbindenden Sandbank. Die dritte Insel {{marker|type=island|name=San Martiño|url=|lat=|long=|name-local=y|wikidata=Q3399741}} erreicht man nur mit privatem Boot. Zu sehen ist hier der Rest einer keltischen Siedlung, «Cova dos Mouros"». Die einzige sandige Bucht ist an der Ostseite die {{marker|type=beach|name=Praia de San Martiño|name-local=|url=|lat=42.201547186382754|long= -8.904609737973878}}
Um Monteagudo sind sieben Strände. Der wichtigste ist im Süden {{marker|type=beach|name=Playa Rodas und Viños|name-local=|url=|lat=42.223488493223876|long=-8.902296477958075}}, wo Kajaks u.a. Wassersportartikel gemietet werden können. Zughleich erfolgt hier der Übergang nach Faro. An dessen Südküste ist die kleine sandige {{marker|type=beach|name=Bucht de Nosa Señora
|name-local=|url=|lat=42.21615174914565|long=-8.902038913667777}}. In einem alten Wachturm ist die {{marker|type=tourist information|name=Touristeninfo|name-local=Punto de Información ao Visitante|url=|lat=42.218930740589116|long=-8.904005338551036}}, während der Saison geöffnet 16–18 Uhr. Ein Stück unterhalb ist das {{marker|type=restaurant |name=Serafín|name-local=13.30–16.00, 21.00-23.00|url=|lat=42.219006223642644|long=-8.903085340824337}}, in dem man auch für die Abgeschiedenheit zahlt.
Zum {{marker|type=campsite|name=Camping Islas Cíes |name-local=Tel. +34986438358|alt=fertige Zelte zur Miete|url=|lat=42.22157175224657|long=-8.905740002826832}} gehört ein Restaurant und kleiner Laden. Vorausbuchungen sind zwingend, da nur so die nötige Aufenthaltserlaubnis erhältlich ist. Die Preise sind günstig.
Übernachtet werden darf im Nationalpark nur eine Woche um Ostern und im Sommer vom 15. Mai bis 14. September.
<!--
== Hintergrund ==-->
== Sprache ==
Amtssprachen sind Galizisch und Spanisch.
== Anreise ==
{{Siehe auch|Vigo#Anreise|titel1=Vigo}}
<!--== Mobilität ==-->
== Sehenswürdigkeiten ==
* '''Rapa das Bestas,''' Kennzeichnen der Jungpferde. Insbesondere in der Ortschaft Sabucedo im Norden der Provinz ist dies eine touristische Attraktion
<!--
== Aktivitäten ==-->
== Küche ==
[[File:Palourde.jpg|thumb|Die auch weiter südlich in Portugal vorkommenden Muscheln ''Ruditapes decussatus'' werden auch zu Speisezwecken gezüchtet.]]
* '''Albariño''' (oder port.: ''Alvarinho'') ist eine weiße Rebsorte, ihr Name bedeutet „kleiner Weißer vom Rhein.“ Sie wird in Galicien insbesondere in dem Weinanbaugebiet [[Rías Baixas]] angebaut.
<!--
== Nachtleben ==
== Sicherheit ==-->
== Klima ==
Zum Baden ist der Atlantik ziemlich kalt. Die Wassertemperaturen schwanken um 13 °C im Winter, bis selten über 18 °C im Hochsommer.
== Literatur ==
* Mangas-Carrasco, Elvira [et al.]; ''The Late Medieval/Early Modern Necropolis of Adro Vello (O Grove, Pontevedra, Spain) from Sondage 1.2017: An Osteoarchaeological Approach to Funerary Practices and Childhood;'' Journal of medieval Iberian studies, Vol. 14 (2022),№ 3, S. 468–500, {{doi|10.1080/17546559.2022.212516}}
== Weblinks ==
{{Navigation Spanien Provinzen}}
{{class-2}}
{{GeoData| lat= 42.5 | long= -8.5| radius= }}
{{IstInKat|Galicien}}
geqiqari1t9thkodhm3wv1j2ocnl54i
Benutzer Diskussion:Jhna.226
3
52290
1769140
677288
2026-04-17T05:28:31Z
Itti
5853
Itti verschob die Seite [[Benutzer Diskussion:Josshh]] nach [[Benutzer Diskussion:Jhna.226]]: Seite während der Umbenennung des Benutzers „[[Special:CentralAuth/Josshh|Josshh]]“ in „[[Special:CentralAuth/Jhna.226|Jhna.226]]“ automatisch verschoben
677288
wikitext
text/x-wiki
<h2> Willkommen bei Wikivoyage! </h2>
Hallo Josshh, [[Wikivoyage:Herzlich willkommen|herzlich willkommen]]! Wir wünschen dir viel Spaß beim Bearbeiten von Wikivoyage. Dies hier ist deine [[Wikivoyage:Diskussionsseiten verwenden|Benutzerdiskussionsseite]].
Damit du dich zurechtfindest, schau dir mal unseren [[Hilfe:Wegweiser durch Wikivoyage|Wegweiser durch Wikivoyage]] an. Falls du weitere Infos suchst, helfen dir bestimmt unsere [[Hilfe:Themenübersicht|Hilfe]]-Seiten und das [[Wikivoyage:Autorenportal|Autorenportal]] weiter. Wenn du über die Wikipedia zu uns gekommen bist, schau bitte auch mal bei [[Wikivoyage:Herzlich willkommen, Wikipedianer|Willkommen, Wikipedianer]] rein. Für alle Fragen und Anregungen steht die [[Wikivoyage:Lounge|Lounge]] offen, oder du wendest dich an mich. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 08:31, 22. Jan. 2014 (CET)
8dhtwaape8v5b24hhv6gfwx607c7cg1
Tiflis/Awlabari
0
53018
1769042
1582256
2026-04-16T19:26:42Z
CommonsDelinker
14939
Datei [[c:File:Presidential_Palace_Tbilisi_Georgia.jpg|Presidential_Palace_Tbilisi_Georgia.jpg]] von Benutzer ''Infrogmation'' gelöscht. Grund: ''per [[:c:Commons:Deletion requests/Files in Category:State Palace of Ceremonies|]]''
1769042
wikitext
text/x-wiki
'''Awlabari''' (ავლაბარი, Avlabari) gehört zur Altstadt von [[Tiflis]]. Der immer noch stark armenisch geprägte Stadtteil befindet sich auf der linken Seite des Mtkwari oberhalb der Klippen der Metechi-Kirche. Bekannt ist der Stadtteil unter Anderem durch die Metechi-Kirche, die neu gebaute Sameba-Kathedrale und den ehem. Präsidentenpalast. Unterhalb, etwas nördlich von Awlabari, erstreckt sich der neu angelegte Rike-Park.
[[Datei:Metekhi cliff and Avlabari as seen from Narikala fortress.jpg|thumb|300px|Awlabari und die Metechiklippen. Zu sehen sind weiters die Metechikirche (vorne links) und die Sameba-Kathedrale (Hintergrund)]]
== Hintergrund ==
{{Mapframe|41.694|44.814|zoom=15|width= 300|height= 300 }}
Awlabari ist eine alte Vorstadt von Tiflis und einst das armenische Viertel. Der Name kommt vom armenischen Ausdruck "Havlabar" und bedeutet "vor der (Stadt-)Mauer". Heute ist Alwbari immer noch von Armeniern bewohnt, jedoch wurde das Viertel wegen seiner attraktiven, zentrumsnahen Lage in den letzten Jahren stark gentrifiziert, die alte Bewohnerschaft teilweise verdrängt. Dies geschah auch durch hochoffizielle Unterstützung: Für den Bau der Sameba-Kathedrale und den Präsidentenpalast wurden teilweise ganze Häuserblocks abgerissen.
Die Abgrenzung des Stadtviertels ist nicht scharf definiert. Im Süden und Westen ist die Grenze der Fluss Mtkwari, im Norden das Tal der Elene Achwlediani-Straße, im Nordosten die Eisenbahnstrecke und im Osten die Telawi-Straße, die die administrative Grenze zum [[Tiflis/Raion Isani-Samgori|Raion Isani-Samgori]] darstellt.
== Anreise ==
* Stationen {{Marker | name = Metro Avlabari | type = subway | lat = 41.6925 | long = 44.8154 | wikidata = Q2470476}} und {{Marker | name = Metro 300 Aragveli | type = subway | lat = 41.6877 | long = 44.8273 | wikidata = Q2066652 }}
* Vom Zentrum in [[Tiflis/Kala|Kala]]: zu Fuß über die {{Marker | name = Metechibrücke | type = bridge | lat = 41.6905 | long = 44.8102 }} oder die {{Marker | name = Mschwidobis Chidi (Friedensbrücke) | type = bridge | lat = 41.6929 | long = 44.8085 }}
* Zwischen Rike-Park und der Festung Narikala fährt die {{Marker | name = Seilbahn Rike-Narikala (Talstation Rike) | type = aerialway | lat = 41.6920 | long = 44.8108 }}
== Sehenswürdigkeiten ==
=== Kirchen ===
[[Datei:Tbilisi - Avlabari Square.JPG|miniatur|Awlabari-Platz und Armenische Kirche (mitte links)]]
* {{Marker | name = [[Tiflis/Awlabari#Sameba-Kathedrale|Sameba-Kathedrale]] | type = cathedral | wikidata = Q36996 | lat = 41.6976 | long = 44.8167 }}
* {{Marker | name = [[Tiflis/Awlabari#Metechi-Kirche|Metechi-Kirche]] | type = church | wikidata = Q20577625 | lat = 41.6901 | long = 44.8113 }}
* {{Marker | name = Periszwaleba-Kloster | type = monastery | lat = 41.6916 | long = 44.8124 }}
* {{Marker | name = Armenische Edschmiadzin-Kathedrale | type = cathedral | wikidata = Q2613137 | lat = 41.6926 | long = 44.8137 }}
=== Burgen, Schlösser und Paläste ===
* {{Marker | name = Ehem. Präsidentenpalast | type = see | lat = 41.6954 | long = 44.8112 }}, Micheil Saakaschwili ließ sich einen monströsen Palast errichten, der ein wenig an das Weiße Haus und ein wenig an den Berliner Reichstag erinnern sollte. In der Nacht war das Bauwerk stets mit Effektbeleuchtung versehen. Nach dem Ende seiner Amtszeit im Herbst 2013 zog Saakaschwili aus, der Palast steht seitdem leer. Es soll die Technische Universität Batumi dort ein neues Zuhause finden.
=== Bauwerke ===
* {{Marker | name = Theater im Rike-Park | type = theater | lat = 41.6945 | long = 44.8103 }} Es ist noch nicht fertiggestellt und erinnert in seiner Form an zwei große Lüftungsschläuche. Die beiden Rohre zielen genau auf die Residenz von Bidsina Iwanischwili am Berg gegenüber, der politische Erzfeind des ehemaligen Präsidenten Saakaschwili, dessen Partei UNM bei den Parlamentswahlen 2012 Iwanischwilis "Georgischer Traum" unterlegen war.
* Die {{Marker | name = Mschwidobis Chidi (Friedensbrücke) | type = bridge | lat = 41.6929 | long = 44.8085 }} ({{Ka|მშვიდობის ხიდი}}, Mschwidobis Chidi) ist eine moderne Fußgängerbrücke mit geschwungenem Stahl-Glas-Tragewerk. Sie gilt in der Bevölkerung als umstritten, da sie einen starken Kontrast zur alten Bausubstanz darstellt. Im Volksmund wird sie ob ihrer Form auch "Damenbinde" genannt.
* Die {{Marker | name = Seilbahn Rike-Narikala (Talstation Rike) | type = aerialway | lat = 41.6920 | long = 44.8108 }}, Umlaufgondelbahn, 2012 eröffnet, bietet tolle Ausblicke auf die Altstadt Kala. Eine Kabine hat einen gläsernen Boden. Fahrpreis: 2 Lari, bezahlbar mit Metrokarte.
<!--=== Denkmäler ===-->
[[Datei:Rike Park, Tbilisi (March 2012).jpg|miniatur|Rike-Park, im Hintergrund die Friedensbrücke]]
<!--=== Museen ===-->
=== Straßen und Plätze ===
* {{Marker | name = Awlabari-Platz | type = square | lat = 41.6919 | long = 44.8160 }} bzw. '''Ketewan-Zamebuli-Platz''' - der zentrale Platz des Stadtviertels mit Metrostation
* '''Ketewan Zamebuli Straße''' - Hauptgeschäfts- und Ausfallstraße gen Osten
* {{Marker | name = Weinanstieg | name-local = Ghvinis Aghmati | type = see | lat = 41.6920 | long = 44.8125 }}: Alte Häuser mit historischen Geschäftsschildern
* {{Marker | name = Elene Achwledianis Aghmati | type = see | lat = 41.6975 | long = 44.8104 }} (Elene Aghvledianis Aghmati): Alte, romantische Häuser bieten einen Eindruck, wie Tiflis vor 150 Jahren ausgesehen haben könnte.
* {{Marker | name = Stadtviertel Metechi | type = see | lat = 41.6910 | long = 44.8143 }}: Die kleinen Gassen zwischen Awlabariplatz und Metechikirche sind immer einen Spaziergang wert!
=== Parks ===
* {{Marker | name = Rike-Park | type = park | wikidata = Q12868375 | lat = 41.6929 | long = 44.8106 | name-local = რიყის პარკი }}: Der neu angelegte Park unterhalb der Klippen nördlich der Metechi-Kirche bietet alles, was man sich nur vorstellen kann: Tanzende Springbrunnen, Effektbeleuchtung, überdimensionale Schachbretter und eine Fußgängerbrücke ins Zentrum nach [[Tiflis/Kala|Kala]]. Vom Rike-Park startet die Seilbahn zur Narikala-Festung.
<!--=== Verschiedenes ===-->
=== Sameba-Kathedrale ===
Die Sameba-Kathedrale (georgisch სამების ტაძარი, „Dreifaltigkeits-Kathedrale“) ist eine der Hauptkirchen der Georgischen Orthodoxen Apostelkirche und, mit der Swetizchoweli-Kathedrale in [[Mzcheta]], Sitz des Patriarchen. Sie ist das größte Kirchengebäude in Transkaukasien und die dritthöchste christlich-orthodoxe Kathedrale der Welt.
Die Sameba-Kathedrale wurde 1996 bis 2004 nach Plänen des Architekten Artschil Mindiaschwili aus dem Jahr 1989 erbaut. Die Kirche gilt als „Symbol der nationalen und religiösen Wiedererstehung Georgiens“ und wurde u. a. vom georgischen Geschäftsmann und späteren Premierminister (2012-2013) Bidsina Iwanischwili finanziert.
Die Kathedrale ist eine Mischung verschiedener georgischer Kirchenbaustile. Sie hat einen kreuzförmigen Grundriss, die Kuppel liegt über der Kreuzung und ruht auf acht Pfeilern. Das Bauwerk besteht aus neun Kapellen, die den Erzengeln, Johannes dem Täufer, der Heiligen Nino, dem Heiligen Georg, dem heiligen Nikolaus von Myra, den Aposteln und allen Heiligen gewidmet sind. Fünf dieser Kapellen befinden sich im Kellergeschoss.
Für den Bau wurde ausschließlich Naturstein verwendet. Der Boden ist mit Marmorplatten ausgekleidet, der Altar ist mit einem Mosaik geschmückt, die Wände mit Fresken einer Künstlergruppe unter Leitung von Amiran Goglidse dekoriert. Die Proportionen der Kirche sind von der Apsis unabhängig und vermitteln so einen monumentaleren Eindruck. Die Kuppel wird von einem 7,5 Meter hohen vergoldeten Kreuz gekrönt, die Höhe des Gebäudes vom Erdboden bis zur Spitze des Kreuzes beträgt 84 Meter. Der Innenraum umfasst 56 x 44 m, das Gebäude hat, einschließlich des Narthex, eine Gesamtfläche von 5.000 Quadratmeter und ein Innenvolumen von 137 Kubikmeter.
Auf dem neun Hektar großen Gelände am Elias-Hügel befinden sich weiters ein großer Park, ein freistehender Glockenturm, die Residenz des georgischen Katholikos-Patriarchen und Erzbischofs von Mzcheta-Tiflis, Ilia II, ein Kloster, ein Priesterseminar und eine theologische Hochschule.
=== Metechi-Kirche ===
[[Datei:Metekhi, Tbilisi.jpg|miniatur|Metechi-Kirche und Reiterstandbild König Wachtang Gorgassalis]]
Die georgisch-orthodoxe Metechi-Kirche (georgisch {{Ka|მეტეხის ეკლესია}}) wurde im 13. Jahrhundert von König Dimitri II. erbaut. Sie befindet sich auf dem Gelände der früheren Residenz der georgischen Könige über Klippen des Flusses Mtkwari; der Platz auf dem Felsen galt als besonders sicher. Ihr Name entstammt einer Schlacht König Wachtang I. Gorgassalis, der im 5. Jahrhundert an dieser Stelle ausgerufen haben soll: Ak me mteri wteche (dt. Hier habe ich den Feind erschlagen).
Die Kirche wurde 1235 durch mongolische Invasoren zerstört und 1289 wieder aufgebaut. Die 24,5 Meter hohe Kreuzkuppelkirche mit einem Grundriss von 20 × 16 Metern, ist in ihrer ursprünglichen Form bis heute erhalten. Im 17. und 18. Jahrhundert wurden die Kuppel, das Tambour, das Tonnengewölbe und verschiedene Fassadenteile mit Ziegeln restauriert, im Westen wurde das Gebäude um eine Empore ergänzt.
Die alte georgische Königsresidenz wurde unter der russischen Zarenherrschaft zunächst als Pulverkammer, dann als Kerker genutzt, in dem auch Josef Stalin gefangen war. Auch die Bolschewiki verwendeten die Residenz nach 1921 weiterhin als Gefängnis für politische Gegner, ehe sie 1937 abgerissen wurde. Bereits vorher wurde die Metechi-Kirche zu einem Jugendtheater umfunktioniert, nach Protesten der Bevölkerung wurde 1988 das Gebäude der orthodoxen Kirche zurückgegeben.
In der Kirche befindet sich das Grab der Heiligen Schuschanik, einer Adeligen, die in der georgisch-orthodoxen Kirche als Märtyrerin verehrt wird. Die Ehefrau eines Herrschers über Georgien weigerte sich im 5. Jahrhundert, dem Christentum abzuschwören und zum Zoroastrismus der persischen Eroberer überzutreten.
1967 wurde bei der Kirche ein Reiterdenkmal für König Wachtang I. Gorgassali, den Gründer von Tiflis, errichtet. Es stammt vom georgischen Bildhauer Elgudscha Amaschukeli, der auch die Monumentalstatue Kartlis Deda in Tiflis entworfen hat. Das Reiterdenkmal steht am Vorplatz der Kirche direkt am Klippenrand, von wo aus man auch einen ausgezeichneten Blick auf die Tifliser Altstadt hat.
== Aktivitäten ==
* Joggen, Radfahren, Skaten oder einfach nur abhängen im Rike-Park
== Einkaufen ==
== Küche ==
=== Günstig ===
=== Mittel ===
* {{vCard | type = restaurant | name = Dr. Benjamen | address = 11, Metekhi Rise, T'bilisi | lat = 41.690120 | long = 44.813147 | phone = +995 599 40 70 00 | hours = täglich 11:00 - 23:00 Uhr | lastedit = 2019-08-08 | description = Terrasse zum Fluss. }}
=== Gehoben ===
* {{vCard|type=restaurant |name=In the Shadow of Metekhi (Metekhis Chrdilshi)|address=29 Ketevan Tsamebuli Ave, T'bilisi |alt= 29 ქეთევან წამებულის გამზირი, თბილისი |phone=+995 32 230 30 30 |email=|fax=|url=http://www.mgroup.ge/en/shadow-metekhi |hours=täglich 12:00 – 01:00 Uhr |price=|lat=41.688458 |long=44.821147 |lastedit=2019-08-08 |description=Gehobene und sehr gute georgische Küche an der Tsamebuli-Straße, Terasse mit tollem Ausblick, abends auch Livemusik und georgische Tänze.}}
== Nachtleben ==
* {{Marker | name = Slammer's Pub | type = drink | lat = 41.6885 | long = 44.8228 }} im Hotel Sheraton Metekhi, dort trifft sich die Haute Volée an Diplomaten und Geschäftsleuten zum Feierabendgetränk
== Unterkunft ==
=== Günstig ===
=== Mittel ===
=== Gehoben ===
* {{vCard | name = Hotel Sheraton Metekhi | type = hotel | lat = 41.6888 | long = 44.8231 | description = Das erste Fünfsternhotel von Tiflis, bietet eine Art Stadt in der Stadt. Es ist schwer, von dort aus die Stadt zu Fuß zu erkunden; Entdeckungsfreudige Touristen mit der dicken Brieftasche wären in einem der Hotels am [[Tiflis/Garetubani|Rustaweli]] durchaus besser aufgehoben.
}}
== Praktische Hinweise ==
* Vor der Metrostation Avlabari befindet sich einer der zahlreichen neuen Postkästen der Georgischen Post, die seit 1.9.2014 im gesamten Land aufgestellt werden.
* Ein {{Marker | name = Internetcafé | type = other | lat = 41.69309 | long = 44.81716 }} befindet sich in der Gurdschaanistr., geöffnet täglich 9:30-24 Uhr, Win-XP-Rechner, 1 GEL/h.
== Literatur ==
<!--== Weblinks ==-->
{{class-3}}
{{GeoData| lat=41.6920 | long=44.8150 | radius= }}
{{IstInKat|Tiflis}}
bo02myfsjq2ra9neppcxuft38fxw0io
Flughafen Narita
0
68816
1769041
1745905
2026-04-16T18:56:06Z
HajoSchroeterNaumann
50386
/* Mit der Bahn */ Typos
1769041
wikitext
text/x-wiki
{{Quickbar Flughafen}}
Der '''Flughafen Narita''' {{Ja|成田空港|w=Narita Kūkō|inKlammern=ja}} in der [[Chiba (Präfektur)|Präfektur Chiba]] einige Kilometer von der [[Narita|namensgebenden Stadt]] {{Ja|成田市|inKlammern=ja}}, ist der internationale Flughafen [[Tokio]]s, wenn auch seit einigen Jahren der alte [[Flughafen Haneda|Tokio-Haneda]] vermehrt wieder international bedient wird. Es handelt sich, für Japan höchst überraschend, um einen der am schlechtesten ausgestatteten Flughäfen einer asiatischen Industrienation.
== Hintergrund ==
[[Bild:Police automobiles around Narita International Airport-2.JPG|thumb|Die Fahrzeuge der speziellen Flughafenpolizei, hier mit Wasserwerfer, sind auch heute noch ein alltäglicher Anblick (2009).]]
Der Widerstand gegen den ab 1965 geplanten Bau des Flughafens, mit sieben Gefallenen, war einer der langwierigsten Kämpfe von Bürgerrechtsbewegungen im sonst so harmoniesüchtigen Japan. Wichtigste Gruppe war die bis 1983 aktive ''Sanrizuka-Shibayama Rengo Kūkō Hantai Dōmei'' {{Ja|三里塚・芝山連合空港反対同盟|inKlammern=ja}}. Die Enteignungsverfahren gegen die örtlichen Bauern zogen sich jahrelang hin, bis ein Sondergesetz erlassen wurde. In der nahen Ortschaft Sanrizuka herrschte jahrelang Ausnahmezustand, mit massiver Polizeibesatzung.<ref>{{Buch |Autor=Bowen, Roger Wilson |Titel=Narita Conflict |Reihe=Asian Survey |Band=15 Nr. 7 |Datum=1975-07 |Seiten=598-615}}</ref> Eines der eindrucksvollsten Dokumente japanischer Zeitgeschichte sind die Filmaufnahmen des in den fast fertigen Tower eingedrungenen „Terroristen,“ der am 26. März 1978 mit einem Hammer die elektronischen Geräte der Flugsicherung zertrümmerte.
Die Dokumentationen ''Summer in Sanrizuka'' (1974) und ''Wages of Resistance: Narita Stories'' (2015) zeigen die Geschichte des Widerstands, der in den frühen 1970ern Japan ähnlich polarisierte wie in der BRD der Kampf gegen das [[w:Kernkraftwerk Wyhl|Kernkraftwerk Wyhl]].
Das Fluggastaufkommen der letzten zehn Jahre schwankte zwischen 30 und 35 Millionen.
== Anfahrt ==
Narita war 20 Jahre lang nach Eröffnung nicht direkt erreichbar. Passagiere mußten in spezielle Busse umsteigen, wobei sie vorher einer peniblen Sicherheitskontrolle unterzogen wurden.
Der [http://www.mcas.co.jp/en/flight/overview/ Helikopterzubringerdienst] zum ''ARK Hills Heliport'' in den Stadtteil Akasaka ist etwa 20 Minuten unterwegs. Die einfache Charter kostet ¥ 270000 (inkl. Hoteltransfer).
=== Mit der Bahn ===
[[Bild:Railway routes to narita airport.svg|thumb|Bahnanschlüsse von Tokio.]]
[[Bild:Airport terminal 2 sta keisei.jpg|thumb|left|Eingang zum ''Skyliner'' unter Terminal 2. Wie überall in Japan muss die Fahrkarte in die automatisch öffnende Durchgangsanlage eingeführt werden.]]
{{Tipp|Es ist möglich seinen [[Japan Rail Pass]] bereits am Flughafen validieren zu lassen, dies ist aber nicht sinnvoll sofern man nach Ankunft einen Aufenthalt in Tokio plant. (Beachte, dass zur Validierung ein Einreisevermerk mit Status “temporary visitor” nötig ist. Bei Benutzung der neuen, automatisierten Schalter für biometrische Päße erhält man keinen derartigen Einreisevermerk!)}}
Die Anfahrt mit dem Zug ist für Touristen der wohl sinnvollste Weg um aus Tokio zum knapp siebzig Kilometer entfernten Flughafen zu gelangen. ''Airport Terminal 2 Station'' sollten Passagiere nutzen, die von Terminal 2 oder 3 abfliegen. Abflüge von Terminal 1 (u.a. JAL und ANA) erreicht man von ''Narita Airport Station.''
Der private ''Skyliner''-Express nach Ueno (einem Knotenbahnhof an der ''Yamanote''-Ringlinie) benötigt 41 Minuten bis Nippori und kostet ¥ 2570. Es gibt seit einiger Zeit [https://www.keisei.co.jp/keisei/tetudou/skyliner/us/tickets/coupon.php Kombi-Fahrkarten für den Expreß plus einen Tag U-Bahn] (beachte, dass diese nur einen kleinen Teil des Schienennetzes umfaßt) für ¥ 2800. Die Schalteröffnungszeit der Betreiberfirma ''Keisei'' im Zwischengeschoß (Ebene B1) ist 7.00-22.30, weiterhin gibt es Fahrkartenautomaten, die alle auf Englisch umschaltbar sind.<br />
Die Firma betreibt auch die deutlich günstigeren Züge ''Keisei Limited Express'' für ¥ 1230 bis Ueno (64 min.). Die ''[https://www.pasmo.co.jp/visitors/en/ Pasmo]''-Wertkarte kann auch für Anschlüsse bei anderen privaten Verkehrsgesellschaften und Einkäufe verwendet werde.
Die Staatsbahn ''JR East'' bietet zum einen den etwa halbstündlich verkehrenden [https://www.jreast.co.jp/multi/de/nex/ Schnellzug ''N'EX,''] der über Tokio-Hbf (¥ 6140, 2. Kl.) und Shinagawa (im Süden der ''Yamanote''-Linie) auch nach [[Yokohama]] (¥ 8740; 72–90 min.), [[Hachiōji]] und [[Ōfuna]] weiter fährt. Es gibt nur für Ausländer die 14 Tage gültige Rückfahrkarte ''NEX Round'' für ¥ 5000. Diese bringt wann man mit JR in die Randgebiete des Großraums Tokyo fährt knapp zwanzig Prozent Rabatt. {{Stand|2023|12}}<br>Vom Bahnhof Hamamamtsuchō hat man eine Umsteigeverbindung mittels ''Tōkyō Monorail'' (13–20 min. für 18 km) zum Flughafen Haneda.
Die kostengünstigere Alternative sind die gewöhnlichen Züge der ''Sōbu''-Linie nach Nippori und Ueno (¥ 1320; bis zu 80 min.), von wo man auf der Yamanote-Ringlinie Anschluß in alle Stadtteile hat. Die ''Suica''-Karte ist eine für JR-Züge nutzbare aufladbare Wertkarte.
Den ''[[Tsukuba]]-Express'' erreicht man nach Umsteigen in Ueno von Akihabara.
=== Mit dem Bus ===
Es gibt mehrere Flughafenbuslinien, die angesichts der Zuverlässigkeit der Bahnverbindungen nur dann zu empfehlen sind, wenn sie direkt in den gewünschten Teil Tokios fahren:
* ''[http://www.keiseibus.co.jp/en/kousoku/nrt16.html Keisei Bus]'' zum Hauptbahnhof Tokio: ¥ 900 bei Vorausbuchung, sonst ¥ 1000. Frühmorgens und nachts: ¥ 2000. Fahrzeit fahrplanmäßig 70 Minuten.
* [http://accessnarita.jp/en/home/ Access Narita] ab [[Tokio/Chūō|Ginza]] U-Bahn über ''Tokyo Station.'' ¥ 1000, ab 5.00, tagsüber alle 15-20 Minuten, Fahrzeit 66–80 Minuten.
* Die zentral gelegene Luxushotels abfahrenden ''[http://www.limousinebus.co.jp/en/ Limousinen-Busse]'' kosten um ¥ 3000. Es handelt sich hierbei um die einzige Linie, die zeitig genug fährt um auch extrem frühe check-in Zeiten zu erreichen.
=== Mit dem Taxi ===
Die Anfahrt per Taxi ab [[Tokio/Shinjuku|Tokio-Shinjuku]] würde, je nach Verkehrsaufkommen 2015 etwa ¥ 25–28000 kosten. Die Fahrzeit tagsüber ist aufgrund des alltäglichen Dauerstaus auf der Stadtautobahn nicht abzuschätzen.
=== Auf der Straße ===
Über die Stadtautobahn 14 Richtung [[Narita]]. Über Route 51 zur Route 295 gelangt man zum Tor 2 für Terminals 2 und 3 (dort keine Privatfahrzeuge) bzw. Tor 1 für Terminal 1. Auf Route 296, der Strecke Yokaichiba–Sakura oder Narita–Matsuo gelangt man durch Tor 6 in den südlichen Teil des Flughafens. ([https://www.narita-airport.jp/en/access/parking/#02 Parkdecks und Gebühren].)
Vor den Terminals ist nur kurzes Stehenbleiben zum Ein-/Aussteigen gestattet.
== Fluggesellschaften und Ziele ==
Narita ist der wichtigste internationale Flughafen des Landes, praktisch alle ausländischen Fluggesellschaften die nach Japan fliegen landen hier. ''All Nippon Airways'' (ANA) und ''Japan Airlines'' (JAL) und der Billigflieger ''Jetstar Japan'' (gegr. 2012) sind hier beheimatet.
== Terminals ==
[[Bild:Narita International Airport, Terminal 1, Restricted Area 12.JPG|thumb|left|Geschäfte nach der Ausreisekontrolle im Terminal 1.]]
Im April 2015 eröffnete ein drittes Terminal, das mit „minimalistisch“ äußerst wohlwollend beschrieben ist. Es gibt (noch) keinen S-Bahn-Anschluß, kaum Geschäfte, Telephone, Sitzgelegenheiten oder ähnliches ([http://www.narita-airport.jp/t3/en/floormap/pdf/floor-guide.pdf Übersicht]). Erreicht wird das Terminal entweder per langsamen Shuttle-Bus oder in rund zehn Minuten zu Fuß (keine Rollsteige).
=== Ankunft ===
{{Tipp|In Japan ansässige Ausländer, die im Besitz eines ''re-entry permits'' sind dürfen die Schlange für Japaner benutzen, wo deutlich schneller abgefertigt wird.}}
Die internationale Ankunft ist gut organisiert. Vor der Schlange zur Grenzpolizei prüft ein Mitarbeiter ob beide Seiten des Einreiseformulars ausgefüllt sind und weist auf den Schalter mit der kürzesten Wartezeit. Am Schalter wird wie bei Verbrechern von Ausländern ein Fingerabdruck des Reisenden genommen, ein Zeichen der Xenophobie der Japaner.
Die Zollfreigrenzen sind in Japan vergleichsweise großzügig (3 Liter Alkohol, 400 Zigaretten, 800 wenn japanischer Herstellung, oder 500 g Tabak; sonstiges bis ¥ 200000). Japanische Zöllner sind – mit weißen Handschuhen – ausgesprochen korrekt und höflich, aber durchaus streng. Außer den üblichen Verboten bezüglich Sprengstoffen, Drogen usw. gelten strenge Vorschriften bezüglich Lebensmitteln (pflanzenbasiertes kann evtl. nach Überprüfung am Quarantäneschalter eingeführt werden). Als „pornographisch“ und somit verboten gelten alle Bilder auf denen Schamhaare sichtbar sind. „Unbegleitetes Reisegepäck“ (engl.: “unattended personal luggage”) kann, sofern es schriftlich deklariert wird, später z. B. bei der Post zollfrei eingeführt werden.
=== Abflug ===
[[Bild:Narita International Airport plan.svg|thumb|Plan vor Eröffnung des dritten Terminals (Stand 2010).<br />([http://www.narita-airport.jp/en/access/car/roadmap.pdf Neuer Plan])]]
Die entsprechenden Ebenen und Check-in-Schalter der Fluggesellschaften sind ausreichend beschildert.
=== Umsteigen ===
Shuttlebusse verkehren zwischen den Terminals zwischen 05.10–22.20 etwa alle 7–10 Minuten. Es gibt auch einen Bus zum Bahnhof ''Higashi Narita.''
Für einen eventuellen Transfer zwischen beiden Flughäfen (Haneda ↔ Narita) sollte man bei Benutzung der Bahn mindestens 3½, besser noch eine Stunde mehr, zwischen Landung und Check-in-Zeit einkalkulieren.
=== Sicherheit ===
[[Bild:Narita International Airport Security Check.JPG|thumb|Sicherheitskontrolle vor Zutritt.]]
Aufgrund der geschilderten „Bedrohungen“ wird der Flughafen extrem strikt überwacht. Sechs Meter hohe Mauern mit dreifachem Stacheldraht sind im Außenbereich üblich. Japanische Höflichkeit macht die Sicherheitsmaßnahmen erträglich.
== Mobilität ==
[[Bild:OTIS-Narita.jpeg|thumb|Shuttle-Bahn zum Terminal 2.]]
Terminal 3 ist nur ''per pedes'' oder durch den etwa gleich schnellen Shuttlebus erreichbar.
== Aktivitäten ==
Schnellstens abreisen!
=== Lounges ===
Lounges in Terminals 1 und 2 können von Einzelreisenden oder Gruppen auch ohne Tickets des oberen Klassen gemietet werden ([https://www.narita-airport.jp/en/service/lounge/airport/ Bedingungen und Preise], 90 min. ⌀ ¥ 40000). In den angeschlossenen Restaurants werden auch Speisen geboten, die den Vorschriften Korangläubiger entsprechen. Buchungen sollen mindestens vier Tage im voraus unter +81(0)476-32-2364 (9.00–18.00 Uhr) erfolgen.
=== Planespotting ===
Auf den Terrassen oben im Terminal.
An der Südostseite des Flughafens isnd außerhalb des Zauns {{marker|type=viewpoint|name=Airplane Hill|name-local=ひこうきの丘|url=|lat=35.738347348528436 |long=140.39153406313812}} und 150 Meter weiter der ''Sakura-no-oka'' („Kirschblütenhügel“) zur Beobachtung und {{en|}}“picture opportunity.”}}
=== Museen ===
Nicht im, sondern beim Südende der Landebahn sind, erreichbar über die {{marker|type=bus|name=Bushaltestelle Nambu-Butsuryu|name-local=南部物流|alt=4 Linien|lat=35.740015209853304|long=140.40144804280558}} oder Luftfahrtmuseum-Nord (博物館北):
* {{vCard|type=museum|name=Narita Airport and Community Historical Museum |name-local=成田空港 空と大地の歴史館|alt=|address=|directions=|phone=|url=https://www.rekishidensho.jp/ |hours=Di.-So. 10.00-17.00|price=|lat=|long=|lastedit=2025-11-11|description=Informiert über die Geschichte des Flughafens und den Widerstand gegen den Bau.|wikidata=Q30926629}}
* {{vCard|type=museum|name=Museum of Aeronautical Sciences|name-local=航空科学博物館|alt=|address=|directions=|phone=|url=|hours=|price=¥ 600|lat=35.74037225083962|long=140.39780023840817|lastedit=2025-11-11|description=Luftfahrtmuseum mit Flugsimulatoren und Freigelände auf dem Flugzeuge ausgestellt sind.|wikidata=}}
== Einkaufen ==
Im öffentlichen Bereich etliche kleine, wenig attraktive Geschäfte mit hohen Preisen. Nach der Abfertigung die international üblichen ''Duty Free'' Angebote, auch deren Preise liegen über asiatischem Durchschnitt.<br />Zeitungskioske bieten, wie überall in Japan, als „Bückware“ Dosenbier zu normalen Preisen.
== Küche ==
Die Restaurants sind wie auf allen Flughäfen überteuert, dabei wird allenfalls durchschnittliche Qualität geboten. Die hinter der Grenzabfertigung gelegenen Essensmöglichkeiten sind schlichtweg miserabel.
== Unterkunft ==
Eine der kostengünstigsten Unterkünfte Japans ist die '''Ki-no-Ne Pension.''' Erreichbar vom Lokalbahnhof Shibayama Chiyoda (芝山千代田) über einen Fußgängertunnel.
* {{vCard | type = hotel | name = Ki-no-Ne Pension | url = https://en.rocketnews24.com/2014/12/10/we-search-for-the-fabled-bed-and-breakfast-inside-naritas-runway-thats-just-10-bucks-a-night/ | price = |description= Seit 2018 hat sich der Ort zu einer Rave-Location der tokioter Schwulenszene entwickelt. Mit der 2029 geplanten Erweiterung des Flugplatzes ist der Abbruch geplant. Das Haus organisiert Führungen zu Orten des Widerstandes gegen den Flughafenbau, die anderweitig nicht zugänglich sind.}}
* {{vCard | type = hotel | lastedit = 2025-11-11 | name = 9h |name-local=ナインアワーズ成田空港| directions = Terminal 2 am Parkdeck | price = ¥ 6200-10.300 pro Nacht, Frühstück ¥ 1000; nur Dusche ¥ 1000.|description=Kapselhotel.}}
== Praktische Hinweise ==
Praktisch alle Schilder sind heute auch auf Englisch, vom Personal darf man nicht immer mehr als rudimentäre Fremdsprachenkenntnisse erwarten, die japanische Hilfsbereitschaft macht hier jedoch viele Defizite wett.
Es gibt in den Terminals jeweils auf Ebene 1 Informationsschalter, die von 9.00–20.00 Uhr geöffnet haben, an denen das Personal Englisch spricht. Besonders die erhältlichen Karten sind nützlich. Auf Wunsch werden auch Buchungen für Unterkünfte der gehobenen Preisklasse vorgenommen.
Bei Verspätungen und damit verbundenen eventuellen längeren Aufenthalten im Abflugbereich ist mit keinerlei Unterstützung durch das Personal zu rechnen.
Schließfächer (¥ 300–500) mit einer Höchstverwahrdauer von 8 Tagen gibt es auf Ebene 2 der Terminal 3. In den anderen Terminals gelten höhere Preise. Es gibt auch Gepäckaufbewahrungsschalter (¥ 520 für mittelgroßen Koffer).
Rauchen ist in ausgewiesenen Bereichen, besonders im Freien auf den Besucherterrassen gestattet.
Die Krankenstation wurde im April 2025 geschlossen. Es gibt keinen Arzt mehr im Flughafen.
'''Postämter''' gibt es in den Abflugbereichen des Terminal 1, 4. Stock (8.30–20.00 Uhr) und im Terminal 2, 3. Stock.
'''Geldwechsel:''' In Japan ist die Bezahlung mit Bargeld auch größerer Summen weit verbreitet. Es empfiehlt sich daher zu wechseln, allerdings ist der Kurs etwa 3–5% schlechter als in der Stadt, geht aber deutlich flotter als bei Banken von statten. Die Schalter öffnen zwischen 04.00/06.00 und 22.00/24.00 Uhr. Währungen wie z. B. [[Malaysia|malayische Ringgit]] sind andernorts im Lande kaum zu wechseln.
'''SIM-Karten''' können von verschiedenen Anbietern in den Terminals „gemietet“ werden. Dabei handelt es sich um oft nur 7 oder 14 Tage gültige, vergleichsweise teure Pauschalangebote. Die entsprechenden Schalter sind 9.00–18.00/20.00 geöffnet. Es gibt auch Automaten.
== Literatur ==
* {{Buch |Autor=Apter, David E. |Titel=Against the state: politics and social protest in Japan |Ort=Cambridge Mass. |Datum=1984 |ISBN=0674009207}}
* {{Buch |Autor=MacKean, Margaret A. |Titel=Environmental protest and citizen politics in Japan |Ort=Berkeley |Datum=1981 |Verlag=Univ. of California Press}}
== Weblinks ==
* {{Offizielle Webseite}}
* [http://www.narita-airport.jp/en/index.html Terminal 1 und 2] (engl.)
* [http://www.narita-airport.jp/t3/en/ Terminal 3] (engl.)
* Quarantänebestimmungen: [http://www.pps.go.jp/english/ Pflanzen] und [https://www.maff.go.jp/aqs/english/ tierische Produkte] (engl.)
== Einzelnachweise ==
<references />
{{IstInKat|Kantō}}
{{GeoData| lat=35.764722| long=140.386389| radius= }}
{{class-3}}
[[Kategorie:Flughäfen|Tokio-Narita]]
5f5fg1cpgptny1i5fekpqennfo7dzee
Röslau
0
70938
1769149
1708684
2026-04-17T06:43:17Z
Benreis
362
/* Hintergrund */ Riasla
1769149
wikitext
text/x-wiki
{{Quickbar Ort}}
Röslau ist eine Gemeinde im [[Fichtelgebirge]] im Tal der Eger.
== Hintergrund ==
Die Einheimischen nennen ihre Ort "''Riasla''", er aus folgenden Ortsteilen:
{{2 Spalten|
* Bibersbach
* Bödlas
* Brücklas
* Dürnberg
* Grün
* Oberwoltersgrün
* Rauschensteig
* Röslau
* Rosenhof
* Thusmühle
* Unterwoltersgrün
}}
== Anreise ==
=== Mit dem Flugzeug ===
Der nächstgelegene internationale Flughafen ist der {{marker|type = airport|name = Flughafen Nürnberg |wikidata = Q265994}}.
=== Mit der Bahn ===
An der Bahnstrecke [[Regensburg]] – [[Oberkotzau]] gibt es den {{Marker|type= train |lat=50.075056 |long=11.993806 |zoom=18 |name= Haltepunkt Röslau|image= }}.
=== Auf der Straße ===
Über die [[Bundesautobahn 93|Autobahn 93]] Regensburg - Hof, Autobahnausfahrt Höchstädt.
== Mobilität ==
{{Mapframe|50.081911|11.977458|zoom=13|height=300|width=300|type=geoline}}
== Sehenswürdigkeiten ==
* Die Evangelische Pfarrkirche {{Marker|type=church |lat=50.084217 |long= 11.972482 |zoom=11 |name= St. Johannis }} mit einem Kanzelaltar um 1700.
** Auf dem Friedhof neben der Kirche erinnert eine Grabstätte mit Gedenkstein an vier KZ-Opfer, die in der NS-Diktatur umkamen.
* Der Einhornbrunnen wurde 1995 von dem Bildhauer Wolfgang Stefan geschaffen
* {{vCard | name = Thusfall | type = waterfall | wikidata = Q2430181 | lat = 50.092671 | long = 11.951303 | description = ist ein 28 Meter hoher Wasserfall der Eger, eigentlich der Überlauf eines Kanals einer Papierfabrik. Er läuft nur noch zu Pfingsten über.
}}
* {{vCard|type=viewpoint |name=Zwölfgipfelblick |wikidata= Q245226 |lat=50.087467 |long=11.974286 |lastedit=|description= Nördlich von Röslau an der Straße nach Dürnberg. Der Granitfindling aus Kösseinegranit mit einer achteckigen Steinplatte befindet sich auf einem 602 m hohen Aussichtspunkt. Er bietet einen Blick auf den Ort Röslau und bei schönem Wetter einen Rundblick zu einem Dutzend Bergen im Fichtelgebirg: Waldstein, Rudolfstein, Schneeberg, Nußhardt, Seehügel, Platte, Hohe Matze, Kösseine, Haberstein, Burgstein, Kornberg, Epprechtstein.
}}
<gallery mode="packed" heights="150">
Röslau, WUN - Zwölfgipfelblick - Röslau v N 01.jpg|Röslau vom Zwölfgipfelblick
Thusmühle 2015 xy6.JPG|Thusmühle
</gallery>
== Aktivitäten ==
=== Regelmäßige Veranstaltungen ===
* Jährlich am Pfingstsonntag wird der Thusfall eingeschaltet, dazu gibt es das '''Thusfest''' mit Musik und Bewirtschaftung
* Das '''Volks- und Wiesenfest''' ist Ende Juli
== Einkaufen ==
* {{vCard | type = bakery | name = Bäckerei-Konditorei Küspert | url = https://www.kuespert.de/ | address = Hauptstraße 14, 95195 Röslau | lat = 50.083776 | long = 11.974271 | phone = +49 9238 273 | hours = Mo 5:00 - 17:00, Si 5:00 - 13:00, Mi, Do, Fr 5:00 - 18:00, Sa 5:00 - 12:00 Uhr | lastedit = 2019-03-28 | description = Traditionelle Bäckerei mit Broten, Brötchen, Kuchen und Torten aus eigener Herstellung. Saisonale Produkte, wechselndes Angebot.
}}
* {{vCard | type = bakery | name = Kuhn´s Backstube | url = http://kuhnsbackstube.de/ | address = St2180 5, 95195 Röslau | lat = 50.081700 | long = 11.977987 | phone = +49 9238 9909560 | hours = Mo - Fr 6:00 - 18:00, Sa 6:00 - 12:00, So 7:30 - 10:30 Uhr | lastedit = 2019-03-28 | description =
}}
== Küche ==
* {{vCard | type = restaurant | name = Gasthaus "Zur Laube" | url = https://www.gasthaus-zur-laube.de/ | address = Grün 10, 95195 Röslau | lat = 50.079508 | long = 11.961109 | phone = +49 9238 201 | hours = Mi bis Sa 18:00 - 23:00, So, Feiertage 11:30 - 23:00 Uhr, Oktober bis März auch Mi geschlossen | price = Gerichte 6 € - 10 € | lastedit = 2019-03-28 | description = Sonn- und Feiertage Mittagstisch, am Nachmittag Kaffee und Kuchen.
}}
== Nachtleben ==
== Unterkunft ==
* {{vCard|type= hotel |name=Gasthof Siebenstern |address=Ringstr. 17, 95195 Röslau |phone=+49 9238 287|email=|fax=|url=http://www.gasthof-siebenstern.com/ |hours=|price=EZ ab 45,00 €, DZ ab 70,00 € mit Frühstück |lat=50.07921 | long=11.97604 | lastedit = 2015-12-7 |description=Zimmer mit Dusche/WC, Sat-TV und Balkon. Gasthof mit fränkischer Küche. }}
Außerdem gibt es noch Ferienwohnungen und -häuser. Infos dazu auf der Homepage der Gemeinde.
== Gesundheit ==
* {{vCard | type = pharmacy | name = Kronen-Apotheke | url = https://www.apotheke-roeslau.de/ | address = Brückenstraße 2, 95195 Röslau | lat = 50.082258 | long = 11.977614 | phone = +49 9238 329 | hours = Mo - Fr 8.00 - 12.30, Mo, Di, Do 14.30 - 18.30, Fr 14.30 - 18.00, Sa 8.00 - 12.00 Uhr | lastedit = | description = }}
== Praktische Hinweise ==
== Ausflüge ==
* Zum Baden in die Nachbarstadt [[Weißenstadt]] mit Therme und See
* Nach [[Wunsiedel]] und dem Felsenlabyrinth Luisenburg
* Die Porzellanstädte [[Selb]] und [[Arzberg (Oberfranken)|Arzberg]] bieten Werksverkäufe
* Das [[Hohes Fichtelgebirge|Hohe Fichtelgebirge]] lädt zum Wandern ein.
* Das [[Westböhmisches Bäderdreieck|Westböhmische Bäderdreieck]] mit den Bädern [[Franzensbad]] und [[Karlsbad]] ist nicht weit weg.
== Literatur ==
== Weblinks ==
* {{Offizielle Webseite}}
{{Navigation Landkreis Wunsiedel}}
{{class-3}}
{{GeoData| lat= 50.081911 | long= 11.977458| radius= }}
{{IstInKat|Fichtelgebirge}}
a0up63p37ygr7s8eqp8kwa6rvsbjrcf
Dahme/Mark
0
74570
1769085
1745108
2026-04-16T20:43:58Z
Dirk Schmidt
15181
/* Unterkunft */ Geänderte vCard für Hotel am Schlosspark
1769085
wikitext
text/x-wiki
{{Quickbar Ort
| TouriInfoWeb= [https://www.dahme.de/m/verzeichnis/visitenkarte.php?mandat=59020 Touristen-Information]
| TouriInfoTel= +49 (0)35451 98120
}}
Die Kleinstadt '''Dahme''' liegt im südlichen [[Brandenburg]] in der Reiseregion [[Niederer Fläming]].
== Hintergrund ==
== Anreise ==
Der nächste '''Bahnhof''' ist Luckau-Uckro, ca. 12 km östlich gelegen. Dort fährt alle zwei Stunden ein Regionalexpress von Berlin bzw. Elsterwerda. Vom Bahnhof fährt der Bus Linie 466 nach Dahme. Die Gesamtfahrzeit von Berlin Hbf beträgt etwa zwei Stunden.
Mit dem '''Auto''' kann man über die Autobahn Berlin-Dresden (A13), Abfahrt Staakow, oder landschaftlich schöner über [[Baruth/Mark]] oder [[Jüterbog]] anreisen.
<!--=== Mit dem Flugzeug ===
=== Mit der Bahn ===
=== Mit dem Bus ===
=== Auf der Straße ===
=== Mit dem Schiff ===-->
== Mobilität ==
{{Mapframe|51.8693|13.4292|zoom=15|height=420|width=420|name=Stadtzentrum}}
== Sehenswürdigkeiten ==
[[File:DahmeMark Rathaus.jpg|miniatur|Rathaus]]
[[File:Dahme Schlossruine.jpg|miniatur|Schloßruine]]
Die '''Altstadt''' von Dahme wird von der mittelalterlichen '''Stadtmauer''' aus Raseneisensteinen, einer seltenen Bauform, umgeben, die größtenteils erhalten ist. In der Altstadt befinden sich diverse Fachwerkhäuser, die auf die Bedeutung der Stadt als wichtige Handelsstation in der Vergangenheit hinweisen. Das größte und auffälligste Fachwerkgebäude ist der {{Marker | name = Kornspeicher | type = building | lat = 51.8715 | long = 13.4324 }} von 1724, der noch bis zum Ende der DDR als solcher genutzt wurde. Auch das {{Marker | name = Rathaus | type = town hall | lat = 51.8696 | long = 13.4286 }} mit seinem Turm, ein Ende des 19. Jahrhunderts errichteter Neorenaissancebau, sticht ins Auge. Vor dem Rathaus steht eine schön sanierte Kursächsische Postmeilensäule. Die {{Marker | name = St. Marienkirche | type = church | lat = 51.8721 | long = 13.4286 }} wurde 1670 nach einem Stadtbrand im Barockstil errichtet. Im Stil der 20er Jahre erstrahlt der Töpfermarkt, auf dem jeden Mittwoch ein kleiner Wochenmarkt stattfindet.
Im Nordosten der Altstadt liegt die {{Marker | name = Schloßruine | type = ruins | lat = 51.8723 | long = 13.4317 }} . Die ursprüngliche Wasserburg wurde 1774 zu einem prachtvollen Schloss im barocken Stil ausgebaut. Nachdem Sanierungsarbeiten nach dem Zweiten Weltkrieg ausblieben verfiel das Schloss. Heute ist die Anlage zugänglich und im Sommer finden diverse Veranstaltungen statt. Der dazugehörige Schlosspark ist von alten Bäumen bestanden. Hier befindet sich seit über hundert Jahren ein kleiner Tierpark mit einheimischen Tieren.
* {{vCard|type=museum|name=Heimatmuseum|address=Töpferstr. 16, 15936 Dahme/Mark |url=https://www.dahme.de/verzeichnis/objekt.php?mandat=51075 |hours=Di-Fr 10:00-12:00 und 14:00-16:30, Sa 14:00-17:00|price=Eintritt Erwachsene 3 €, Kinder und Jugendliche 2 € |lat=51.8706|long=13.4276|description=Das bäuerliche Leben der vergangenen Jahrhunderte mit Trachten des niederen Flämings sowie die Entwicklung des Handwerks in der Region }}
== Aktivitäten ==
Durch Dahme führen mehrere Teilabschnitte des [[Fläming-Skate]]. Der [[Dahme-Radweg]] verbindet Dahme mit Berlin.
=== Veranstaltungen ===
In Dahme finden mehrere auch überregional bedeutende Veranstaltungen statt. Am bekanntesten dürfte der '''[https://www.ottma.de Oldtimer-Teile-Trödel-Markt]''' jeweils am letzten Sonntag im Juni sein. Der ganze Schlosspark ist voll mit Ständen und Oldtimern aller Jahrgänge und natürlich einer unüberschauben Zahl von Besuchern.
Ende Oktober findet der '''Töpfermarkt''' auf dem gleichnamigen Platz in der Altstadt statt.
== Einkaufen ==
Es gibt vier Supermärkte, Bäcker sowie einige Einzelhändler für den täglichen Bedarf.
== Küche ==
* {{vCard | type = restaurant | name = Katschkes Restaurant & Biergarten | alt = Katschke`s | url = https://www.katzschke.de/ | email = matthias.katzschke@t-online.de | address = Luckauer Str 21, 15936 Dahme/Mark | lat = 51.868218 | long = 13.432548 | hours = Di-Sa 7:00-22:00, So + Feiertags 12:00-14:00 + 17:00-22:00 | lastedit = 2018-02-07 | description = traditionelles Restaurant der Stadt mit regionaler und internationaler Küche }}
* {{vCard|name=Freses Waldrestaurant und Pension |wikidata=|type=restaurant |address=Herzberger Chaussee 22, 15936 Dahme/Mark |phone=+49 0151 21816492 |email=info@freses-waldrestaurant.de |url=https://freses-waldrestaurant.eatbu.com/?lang=de |hours=Fr 17:00-21:00, Sa+So 11:00-22:00 |price=|lat=51.84249 |long=13.41197 |lastedit=|description=}}
* {{vCard|name=Restaurant Rhodos Blue |wikidata=|type=restaurant |address=Am Schloß 3, 15936 Dahme/Mark |phone=+49 035451 893181 |email=|url=https://www.reiseland-brandenburg.de/poi/flaeming/gastronomie/restaurant-rhodos-blue-im-hotel-am-schlosspark/ |hours=Di-Fr 16:00–23:00, Sa+So 11:30–22:00 |price=|lat=51.87149 |long=13.43110 |lastedit=|description=Griechische Küche.}}
* {{vCard|name=Mama Leone |wikidata=|type=restaurant |address=Hauptstraße 21, 15936 Dahme/Mark |phone=|email=|url=|hours=Di-Sa 11:00–21:00, So 12:00–21:00 |price=|lat=51.86938 |long=13.42791 |lastedit=|description=Italienisches Restaurant.}}
* {{vCard|name=Viethaus + Sushi Bar |wikidata=|type=restaurant |address=Hauptstraße 1, 15936 Dahme/Mark |phone=|email=|url=|hours=|price=|lat=51.86890 |long=13.42328 |lastedit=|description=}}
* {{vCard|name=Siggis Imbiss |wikidata=|type=snack bar |address=Kirchstraße 28, 15936 Dahme/Mark |phone=+49 035451 246 |email=|url=|hours=|price=|lat=51.86994 |long=13.42886 |lastedit=|description=}}
== Nachtleben ==
* {{vCard | type = cinema | name = Kino Cafe Bar | alt = Kino Kaffee Dahme | url =https://kino-cafe-bar.de/ | address = Südhag 1, 15936 Dahme/Mark | lat = 51.868546 | long = 13.428789 | phone = +49 (0)35451 343 | lastedit = 2025-04-21 | description = Kino mit Restaurant und Bar }}
== Unterkunft ==
* {{vCard | name = Hotel am Schlosspark | type = hotel | url = https://www.hotel-dahme.de/ | address = Am Schloß 3, 15936 Dahme/Mark | lat = 51.87133 | long = 13.43196 | phone = +49 035451 893132 | fax = +49 035451 893199 | email = info@hotel-dahme.de | price = EZ ab 65 €, DZ ab 85 €, Frühstück 12 € | lastedit = 2026-04-16 | description = modern ausgestattetes Hotel mit drei Sternen am Stadt- und Tierpark.
}}
* {{vCard|name=Pension Goldener Stern |wikidata=|type=boarding house |address=Bochstraße 20, 15936 Dahme/Mark |phone=+49 035451 474 |email=pension@burghardt-dahme.de |fax=+49 035451 93474 |url=https://www.dahme.de/verzeichnis/visitenkarte.php?mandat=92747 |hours=|price=|lat=51.86941 |long=13.43034 |lastedit=|description=}}
== Sicherheit ==
* {{vCard|name=Revierpolizei Dahme/Mark |wikidata=|type=police |address= Luckenwalder Str. 31, 15936 Dahme/Mark |phone=+49 035451 8363 |email=|url=|hours=|price= |lat=51.87131 |long=13.42287 |lastedit=|description=}}
== Gesundheit ==
* {{vCard | type = pharmacy | name = Adler Apotheke | alt = Apotheke | url =https://www.adlerapo-dahme.de/apotheke/ | address = Hauptstraße 62, 15936 Dahme/Mark | lat = 51.869505 | long = 13.425583 | phone = +48 0035451 301 |fax=+49 035451 8351 |email=info@adlerapo-dahme.de | hours = Mo-Fr 8:00-18:30, Sa 8:00-12:00 | lastedit = 2025-04-21 | description = }}
== Praktische Hinweise ==
* {{vCard|name=Tourist-Information |wikidata=|type=tourist information |address=Hauptstraße 48-49, 15936 Dahme/Mark |phone=+49 035451 9810 |email=amt@dahme.de |fax=+49 035451 98144 |url=https://www.dahme.de/verzeichnis/visitenkarte.php?mandat=59020 |hours=Di 9:00-12:00 + 13:00-17:30, Mi 9:00-12:00, Do 9:00-12:00 + 13:00-16:00, Fr 9:00-12:00, Sa 10:00-13:00 |price=|lat=51.86957 |long=13.42819 |lastedit=2025-04-21 |description=}}
== Ausflüge ==
[[File:Dahmequelle detail.jpg|miniatur|Dahmequelle]]
* Dahmequelle, Quelle des Flusses in etwa sieben Kilometer Entfernung
* Körbaer Teich, ein Naherholungsgebiet mit Bademöglichkeit und gastronomischen Einrichtungen
== Literatur ==
== Weblinks ==
{{Offizielle Webseite}}
{{class-2}}
{{GeoData| lat= 51.8697 | long= 13.4286 | radius= }}
{{IstInKat|Niederer Fläming}}
nw48tlh456tuy2yhh78vg72gr1qjhe0
Elbe-Radweg (Magdeburg - Cuxhaven)
0
77473
1769129
991268
2026-04-17T04:01:23Z
JackBot
12897
Bot: Korrigiere doppelte Weiterleitung auf [[Elberadweg (Magdeburg–Cuxhaven)]]
1769129
wikitext
text/x-wiki
#WEITERLEITUNG [[Elberadweg (Magdeburg–Cuxhaven)]]
oclhgbvvo3pdjz777q9116f9jml7gve
Diskussion:Elbe-Radweg (Magdeburg - Cuxhaven)
1
77474
1769130
991270
2026-04-17T04:01:23Z
JackBot
12897
Bot: Korrigiere doppelte Weiterleitung auf [[Diskussion:Elberadweg (Magdeburg–Cuxhaven)]]
1769130
wikitext
text/x-wiki
#WEITERLEITUNG [[Diskussion:Elberadweg (Magdeburg–Cuxhaven)]]
6nyvstxf2bd9nk3zeger4l8abzwdjwh
Blanes
0
79216
1769106
1744001
2026-04-16T21:18:23Z
Scholless
15050
/* Küche */ gestrafft
1769106
wikitext
text/x-wiki
{{Quickbar Ort|}}
'''Blanes''' ist eine Stadt in der [[Katalonien|katalonischen]] [[Girona (Provinz)|Provinz Girona]]. Sie liegt am südlichen Ende der [[Costa Brava]] unmittelbar an der Mündung des Flusses Tordera und ist rund 60 Kilometer nordöstlich der Regionshauptstadt [[Barcelona]] gelegen. Blanes gilt als Tor zur Costa Brava.
== Hintergrund ==
Blanes ist ein vielbesuchter Ferienort im typisch katalanischen Stil. Unzählige Restaurants, in denen Paella, Fisch- oder Hähnchengerichte zubereitet werden. Bars, zahlreiche Geschäfte und der besonders breite Sandstrand von vier Kilometern Länge sind einige Merkmale dieses Ortes. Blanes ist auch bekannt als das Wirtschaftszentrum der südlichen Costa Brava. Südlich an den alten Ortskern anschließend wurden riesige Wohnmobil-, Ferienhaus- und Campingplätze eingerichtet, die zu den größten saisonalen Feriensiedlungen im Mittelmeerraum gehören. So wächst die Stadt in der Sommersaison leicht auf über 100.000 Menschen an.
Die Altstadt mit ihren engen Gassen zeigt den Fischerort noch fast so, wie er vor der Touristeninvasion ab 1960 war. Jeden Werktag Montag bis Freitag findet gegen 16.00 Uhr die traditionelle Fischversteigerung im Hafen statt. Der Fischereihafen liegt geschützt zwischen den Felsen Sa Forcanera im Nordosten und Sa Palomera im Südwesten, die bis an die Küste reichen. Palomera gilt als Beginn der Costa Brava. Das Hotelviertel liegt am südlichen Rande des Zentrums, die anfangs eher einfachen Hotels wurden inzwischen mit Häusern der gehobenen Kategorien ergänzt. Hinter den Hotels reihen sich die Campingplätze.
== Anreise ==
{{Mapframe|41.678|2.797|zoom=14}}
Blanes ist Endstation einer direkten an der Küste entlang führenden Bahnstrecke Barcelona–[[Mataró]]–[[Maçanet]]-[[Massanes]], die dann ab Blanes ins Landesinnere führt und dort Anschluss an die Strecke nach Frankreich hat. Überörtliche Nationalstraßen oder die Regionalautobahn C 35 sind über Provinzialstraßen zu erreichen. Die nächstgelegenen Flugplätze sind {{marker |type = airport |name = Flughafen Barcelona-El Prat |wikidata = Q56973 |show = none}} und der seltener angeflogene {{marker |type = airport |name = Flughafen Girona |wikidata = Q1142410 |show = none}}.
== Sehenswürdigkeiten ==
=== Botanische Gärten ===
[[Datei:Jardí Marimurtra.JPG|miniatur|links|Der botanische Garten ''Marimurtra'']]
In Blanes befinden sich zwei der bedeutendsten botanischen Gärten Europas.
* {{vCard|type=botanical garden |name=Jardí Botànic Marimurtra |wikidata=Q2329546 |address=Passeig de Carles Faust, 9 |phone=+34 972 33 08 26 |email=|fax=|url= http://www.marimurtra.cat/ |hours=|price=Eintritt Erw. 6,50 € |lat=41.676890|long= 2.802308 |lastedit=|description=Der Deutsche [[w:Karl Faust (Botaniker)|Karl Faust]] war der Gründer und Eigentümer des Jardí Botànic Marimurtra. Er schuf vor seinem Tod 1952 die Stiftung ''Jardí Botànic Marimurtra'' (‚Botanischer Garten Meer und Myrte‘), der er den Garten und sein beträchtliches Vermögen übertrug. Die Stiftung hat wissenschaftlichen Charakter und dient dem internationalen Studium der Botanik. Daneben will sie den zahlreichen Besuchern aus vielen Ländern die Vielfalt und Schönheit der Pflanzen und die Weisheit im Walten der Natur näherbringen. Dieser botanische Garten wurde im Jahre 1921 gegründet und liegt am Südosthang des Sant-Joan-Berges über den in das Mittelmeer abfallenden Steilhängen. Der Garten mit schöner Aussicht aufs Meer ist 16,5 ha groß.
Im Jardí Botànic Marimurtra wurde durch kunstvolle Gartenarchitektur die zerklüftete natürliche Landschaft aufgewertet. Die ausgewachsenen Exemplare von Kakteen und anderen Pflanzen, die man hier gezüchtet hat, bestechen durch die Harmonie ihrer Farben und Formen. Aufgrund des gleichmäßigen Mittelmeerklimas gedeihen die Pflanzen prächtig, die ganze Sammlung befindet sich in Privatbesitz. Es gibt mehr als 3000 verschiedene Bäume, Büsche und Blumen zu entdecken. Viele Pflanzen lassen sich vor Ort auch käuflich erwerben.
}}
* {{vCard|type=botanical garden|name= Jardí Botànic Pinya de Rosa |wikidata= Q5926442 |address=C/ Camí de Santa Cristina, s/n |phone=+34 972 35 06 89 |email=|fax=|url=http://www.pinya-de-rosa.es/ |hours=|price=|lat=41.685676|long= 2.810772|lastedit=|description=Der zweite botanische Garten hat zirka 7000 verschiedene Pflanzenarten, er liegt etwas außerhalb von Blanes. Er wurde vom katalanischen Ingenieur Dr. Ferran Riviere de Caralt 1945 gegründet und später zur Naturlandschaft von nationalem Interesse erklärt.
}}
=== Verschiedenes ===
* {{vCard|type=rock|lat = 41.670451|long = 2.792234|name = Sa Palomera|wikidata = Q3944148|description=Der Felsen markiert den Beginn der Costa Brava, im Norden ist die Bucht von Blanes ''(Badia de Blanes)'', im Süden liegt der Strand ''S'Abanel''.}}
== Aktivitäten ==
* {{vCard|type=amusement park |name= Marineland |address= Ctra. Malgrat - Palafolls, 08389 Palafolls |phone= +34 937 65 48 02 |email=|fax=|url= https://www.marineland.es/catalunya/ |hours=|price=|lat= 41.660802|long= 2.753766|lastedit=|description=}}
=== Kultur und Tradition ===
[[Datei:BlanesSaPalomeraFocs2003.jpg|miniatur|Feuerwerk in Blanes 2003]]
Der jährlich stattfindende Wettbewerb von [[Feuerwerk]]en ist einer der wichtigsten in Spanien und Europa. Er dauert sieben Tage und findet während der ''Festa Major'' zu Ehren des Schutzheiligen Sant Joaquim in der Woche vom 26. Juli statt.
Für die denkmalgeschützten Gebäude von Blanes siehe die [[w:Liste der Kulturdenkmäler in Blanes]].
== Einkaufen ==
== Küche ==
== Nachtleben ==
== Unterkunft ==
<!-- evtl. unterteilen in günstig, mittel und gehoben -->
<!-- == Lernen ==
== Arbeiten ==
== Sicherheit == -->
== Gesundheit ==
== Praktische Hinweise ==
* {{vCard|type=tourist information|name=Oficina Municipal de Turisme de Blanes |address=Plaza Catalunya |phone=+34 972 33 03 48 |email=|fax=|url=http://www.visitblanes.net/index.php?lang=de |hours=|price=|lat=41.672074|long= 2.790023|lastedit=|description=}}
== Ausflüge ==
== Literatur ==
== Weblinks ==
* {{Offizielle Webseite}}
* [http://www.visitblanes.net ''Offizieller Touristenführer von Blanes''] (englisch und deutsch)
* [https://www.poblesdecatalunya.cat/municipi.php?m=170237 ''Fotos und Objektbeschreibungen von Sehenswürdigkeiten in Blanes'' in poblesdecatalunya.cat]
{{Navigation Costa Brava}}
{{class-2}}
{{GeoData| lat= 41.675| long= 2.791667| radius= }}
{{IstInKat|Girona (Provinz)}}
qemdzgi5fpaep393w11jtpjf8pz0qij
1769107
1769106
2026-04-16T21:18:42Z
Scholless
15050
/* Unterkunft */ gestrafft
1769107
wikitext
text/x-wiki
{{Quickbar Ort|}}
'''Blanes''' ist eine Stadt in der [[Katalonien|katalonischen]] [[Girona (Provinz)|Provinz Girona]]. Sie liegt am südlichen Ende der [[Costa Brava]] unmittelbar an der Mündung des Flusses Tordera und ist rund 60 Kilometer nordöstlich der Regionshauptstadt [[Barcelona]] gelegen. Blanes gilt als Tor zur Costa Brava.
== Hintergrund ==
Blanes ist ein vielbesuchter Ferienort im typisch katalanischen Stil. Unzählige Restaurants, in denen Paella, Fisch- oder Hähnchengerichte zubereitet werden. Bars, zahlreiche Geschäfte und der besonders breite Sandstrand von vier Kilometern Länge sind einige Merkmale dieses Ortes. Blanes ist auch bekannt als das Wirtschaftszentrum der südlichen Costa Brava. Südlich an den alten Ortskern anschließend wurden riesige Wohnmobil-, Ferienhaus- und Campingplätze eingerichtet, die zu den größten saisonalen Feriensiedlungen im Mittelmeerraum gehören. So wächst die Stadt in der Sommersaison leicht auf über 100.000 Menschen an.
Die Altstadt mit ihren engen Gassen zeigt den Fischerort noch fast so, wie er vor der Touristeninvasion ab 1960 war. Jeden Werktag Montag bis Freitag findet gegen 16.00 Uhr die traditionelle Fischversteigerung im Hafen statt. Der Fischereihafen liegt geschützt zwischen den Felsen Sa Forcanera im Nordosten und Sa Palomera im Südwesten, die bis an die Küste reichen. Palomera gilt als Beginn der Costa Brava. Das Hotelviertel liegt am südlichen Rande des Zentrums, die anfangs eher einfachen Hotels wurden inzwischen mit Häusern der gehobenen Kategorien ergänzt. Hinter den Hotels reihen sich die Campingplätze.
== Anreise ==
{{Mapframe|41.678|2.797|zoom=14}}
Blanes ist Endstation einer direkten an der Küste entlang führenden Bahnstrecke Barcelona–[[Mataró]]–[[Maçanet]]-[[Massanes]], die dann ab Blanes ins Landesinnere führt und dort Anschluss an die Strecke nach Frankreich hat. Überörtliche Nationalstraßen oder die Regionalautobahn C 35 sind über Provinzialstraßen zu erreichen. Die nächstgelegenen Flugplätze sind {{marker |type = airport |name = Flughafen Barcelona-El Prat |wikidata = Q56973 |show = none}} und der seltener angeflogene {{marker |type = airport |name = Flughafen Girona |wikidata = Q1142410 |show = none}}.
== Sehenswürdigkeiten ==
=== Botanische Gärten ===
[[Datei:Jardí Marimurtra.JPG|miniatur|links|Der botanische Garten ''Marimurtra'']]
In Blanes befinden sich zwei der bedeutendsten botanischen Gärten Europas.
* {{vCard|type=botanical garden |name=Jardí Botànic Marimurtra |wikidata=Q2329546 |address=Passeig de Carles Faust, 9 |phone=+34 972 33 08 26 |email=|fax=|url= http://www.marimurtra.cat/ |hours=|price=Eintritt Erw. 6,50 € |lat=41.676890|long= 2.802308 |lastedit=|description=Der Deutsche [[w:Karl Faust (Botaniker)|Karl Faust]] war der Gründer und Eigentümer des Jardí Botànic Marimurtra. Er schuf vor seinem Tod 1952 die Stiftung ''Jardí Botànic Marimurtra'' (‚Botanischer Garten Meer und Myrte‘), der er den Garten und sein beträchtliches Vermögen übertrug. Die Stiftung hat wissenschaftlichen Charakter und dient dem internationalen Studium der Botanik. Daneben will sie den zahlreichen Besuchern aus vielen Ländern die Vielfalt und Schönheit der Pflanzen und die Weisheit im Walten der Natur näherbringen. Dieser botanische Garten wurde im Jahre 1921 gegründet und liegt am Südosthang des Sant-Joan-Berges über den in das Mittelmeer abfallenden Steilhängen. Der Garten mit schöner Aussicht aufs Meer ist 16,5 ha groß.
Im Jardí Botànic Marimurtra wurde durch kunstvolle Gartenarchitektur die zerklüftete natürliche Landschaft aufgewertet. Die ausgewachsenen Exemplare von Kakteen und anderen Pflanzen, die man hier gezüchtet hat, bestechen durch die Harmonie ihrer Farben und Formen. Aufgrund des gleichmäßigen Mittelmeerklimas gedeihen die Pflanzen prächtig, die ganze Sammlung befindet sich in Privatbesitz. Es gibt mehr als 3000 verschiedene Bäume, Büsche und Blumen zu entdecken. Viele Pflanzen lassen sich vor Ort auch käuflich erwerben.
}}
* {{vCard|type=botanical garden|name= Jardí Botànic Pinya de Rosa |wikidata= Q5926442 |address=C/ Camí de Santa Cristina, s/n |phone=+34 972 35 06 89 |email=|fax=|url=http://www.pinya-de-rosa.es/ |hours=|price=|lat=41.685676|long= 2.810772|lastedit=|description=Der zweite botanische Garten hat zirka 7000 verschiedene Pflanzenarten, er liegt etwas außerhalb von Blanes. Er wurde vom katalanischen Ingenieur Dr. Ferran Riviere de Caralt 1945 gegründet und später zur Naturlandschaft von nationalem Interesse erklärt.
}}
=== Verschiedenes ===
* {{vCard|type=rock|lat = 41.670451|long = 2.792234|name = Sa Palomera|wikidata = Q3944148|description=Der Felsen markiert den Beginn der Costa Brava, im Norden ist die Bucht von Blanes ''(Badia de Blanes)'', im Süden liegt der Strand ''S'Abanel''.}}
== Aktivitäten ==
* {{vCard|type=amusement park |name= Marineland |address= Ctra. Malgrat - Palafolls, 08389 Palafolls |phone= +34 937 65 48 02 |email=|fax=|url= https://www.marineland.es/catalunya/ |hours=|price=|lat= 41.660802|long= 2.753766|lastedit=|description=}}
=== Kultur und Tradition ===
[[Datei:BlanesSaPalomeraFocs2003.jpg|miniatur|Feuerwerk in Blanes 2003]]
Der jährlich stattfindende Wettbewerb von [[Feuerwerk]]en ist einer der wichtigsten in Spanien und Europa. Er dauert sieben Tage und findet während der ''Festa Major'' zu Ehren des Schutzheiligen Sant Joaquim in der Woche vom 26. Juli statt.
Für die denkmalgeschützten Gebäude von Blanes siehe die [[w:Liste der Kulturdenkmäler in Blanes]].
== Einkaufen ==
== Küche ==
== Nachtleben ==
== Unterkunft ==
== Gesundheit ==
== Praktische Hinweise ==
* {{vCard|type=tourist information|name=Oficina Municipal de Turisme de Blanes |address=Plaza Catalunya |phone=+34 972 33 03 48 |email=|fax=|url=http://www.visitblanes.net/index.php?lang=de |hours=|price=|lat=41.672074|long= 2.790023|lastedit=|description=}}
== Ausflüge ==
== Literatur ==
== Weblinks ==
* {{Offizielle Webseite}}
* [http://www.visitblanes.net ''Offizieller Touristenführer von Blanes''] (englisch und deutsch)
* [https://www.poblesdecatalunya.cat/municipi.php?m=170237 ''Fotos und Objektbeschreibungen von Sehenswürdigkeiten in Blanes'' in poblesdecatalunya.cat]
{{Navigation Costa Brava}}
{{class-2}}
{{GeoData| lat= 41.675| long= 2.791667| radius= }}
{{IstInKat|Girona (Provinz)}}
1p9b0o1rpgogsh2u2n6ed2bmbrpnfo7
MediaWiki:Gadget-ListingEditorMain.js
8
80355
1769137
1768694
2026-04-17T05:05:35Z
RolandUnger
3
prevFocus
1769137
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
var eventHandler = function() {
const id = $( this ).attr( 'id' );
if ( id )
prevFocus = id;
};
for ( var parameter in getAllParams() ) {
ELEMENTS[ parameter ].on( 'focus', eventHandler );
}
$( '#input-summary', form ).on( 'focus', eventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
gwwe30wj65q49syfx63utkbws29wfyx
1769160
1769137
2026-04-17T07:35:31Z
RolandUnger
3
getFocusedElement
1769160
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#div_content-chars' );
var eventHandler = function() {
$this = $( this );
if ( $this.is( 'input:text, textarea' ) ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
for ( var parameter in getAllParams() ) {
ELEMENTS[ parameter ].on( 'focus', eventHandler );
}
$( '#input-summary', form ).on( 'focus', eventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
4t9jc18b927005exv67ljofk9h6j8f7
1769161
1769160
2026-04-17T07:42:38Z
RolandUnger
3
getFocusedElement
1769161
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#div_content-chars' );
var focusEventHandler = function() {
$this = $( this );
if ( $this.is( 'input:text, textarea' ) ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
var blurEventHandler = function() {
prevFocus = '';
contChars.addClass( 'disable-content-chars' );
}
for ( var parameter in getAllParams() ) {
ELEMENTS[ parameter ].on( 'focus', focusEventHandler )
.on( 'blur', blurEventHandler );
}
$( '#input-summary', form ).on( 'focus', focusEventHandler )
.on( 'blur', blurEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
dmi7f60z6eihprkbeh5ndr9g50iljvu
1769162
1769161
2026-04-17T07:47:59Z
RolandUnger
3
getFocusedElement
1769162
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#div_content-chars' );
var focusEventHandler = function() {
$this = $( this );
if ( $this.is( 'input:text, textarea' ) ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
var blurEventHandler = function() {
prevFocus = '';
contChars.addClass( 'disable-content-chars' );
};
for ( var parameter in getAllParams() ) {
ELEMENTS[ parameter ].on( 'focusin', focusEventHandler )
.on( 'focusout', blurEventHandler );
}
$( '#input-summary', form ).on( 'focusin', focusEventHandler )
.on( 'focusout', blurEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
5ofqvgsos458mek2006zsz3vdvbf7gb
1769163
1769162
2026-04-17T08:02:40Z
RolandUnger
3
getFocusedElement
1769163
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#div_content-chars' );
var focusEventHandler = function() {
$this = $( this );
if ( $this.is( 'input:text, textarea' ) ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
for ( var parameter in getAllParams() ) {
$( 'input, textarea, select' )
.on( 'focusin', focusEventHandler );
}
$( '#input-summary', form ).on( 'focusin', focusEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
86ccwdv6q30xhr16lyj8xqply8q8dum
1769164
1769163
2026-04-17T08:06:09Z
RolandUnger
3
getFocusedElement
1769164
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#div_content-chars' );
var focusEventHandler = function() {
$this = $( this );
if ( $this.is( 'input:text, textarea' ) ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
for ( var parameter in getAllParams() ) {
$( 'input, textarea, select', form )
.on( 'focusin', focusEventHandler );
}
$( '#input-summary', form ).on( 'focusin', focusEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
nei92khaqpdurhsldfgn8ct490syftt
1769165
1769164
2026-04-17T08:21:01Z
RolandUnger
3
1769165
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#div_content-chars' );
var focusEventHandler = function() {
$this = $( this );
var thisIs = $this.is( 'input:text, textarea' );
if ( thisIs ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
for ( var parameter in getAllParams() ) {
$( 'input, textarea, select', form )
.on( 'focusin', focusEventHandler );
}
$( '#input-summary', form ).on( 'focusin', focusEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
6o7zia2lnctdufzq0qxr1qymgciaknm
1769166
1769165
2026-04-17T08:23:29Z
RolandUnger
3
getFocusedElement
1769166
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#div_content-chars' );
var focusEventHandler = function() {
var $this = $( this );
var thisIs = $this.is( 'input:text, textarea' );
if ( thisIs ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
for ( var parameter in getAllParams() ) {
$( 'input, textarea, select', form )
.on( 'focusin', focusEventHandler );
}
$( '#input-summary', form ).on( 'focusin', focusEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
0uv644q9vwi4go1atme41cqcch12ex8
1769169
1769166
2026-04-17T08:27:40Z
RolandUnger
3
getFocusedElement
1769169
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#div_content-chars', form );
var focusEventHandler = function() {
var $this = $( this );
var thisIs = $this.is( 'input:text, textarea' );
if ( thisIs ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
for ( var parameter in getAllParams() ) {
$( 'input, textarea, select', form )
.on( 'focus', focusEventHandler );
}
$( '#input-summary', form ).on( 'focus', focusEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
knfszik45qoq98daturo2j3bdop6du1
1769173
1769169
2026-04-17T08:31:12Z
RolandUnger
3
getFocusedElement
1769173
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#input-content-chars', form );
var focusEventHandler = function() {
var $this = $( this );
var thisIs = $this.is( 'input:text, textarea' );
if ( thisIs ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
for ( var parameter in getAllParams() ) {
$( 'input, textarea, select', form )
.on( 'focus', focusEventHandler );
}
$( '#input-summary', form ).on( 'focus', focusEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
q53iptds75z3cuu79gzi3gowecoi2dl
1769175
1769173
2026-04-17T08:48:14Z
RolandUnger
3
getFocusedElement
1769175
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#input-content-chars', form );
var focusEventHandler = function() {
var $this = $( this );
var thisIs = $this.is( 'input:text, textarea' );
if ( thisIs ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
for ( var parameter in getAllParams() ) {
$( 'input, textarea, select, .chosen-choices', form )
.on( 'focus', focusEventHandler );
}
$( '#input-summary', form ).on( 'focus', focusEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
fl59h0guha8n7gx804e6qzdvrolzel0
1769177
1769175
2026-04-17T08:53:12Z
RolandUnger
3
getFocusedElement
1769177
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#input-content-chars', form );
var focusEventHandler = function() {
var $this = $( this );
if ( $this.is( 'input:text, textarea' ) ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
var blurEventHandler = function() {
prevFocus = '';
contChars.addClass( 'disable-content-chars' );
};
for ( var parameter in getAllParams() ) {
$( 'input, textarea', form )
.on( 'focus', focusEventHandler )
.on( 'blur', blurEventHandler );
}
$( '#input-summary', form ).on( 'focus', focusEventHandler )
.on( 'blur', blurEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
mws95rclzxmpc43zm5vr4dmrjwesz66
1769179
1769177
2026-04-17T09:00:18Z
RolandUnger
3
getFocusedElement
1769179
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#input-content-chars', form );
var focusEventHandler = function( e ) {
e.stopPropagation();
var $this = $( this );
if ( $this.is( 'input:text, textarea' ) ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
var blurEventHandler = function( e ) {
e.stopPropagation();
prevFocus = '';
contChars.addClass( 'disable-content-chars' );
};
for ( var parameter in getAllParams() ) {
ELEMENTS[ parameter ].on( 'focus', focusEventHandler )
.on( 'blur', blurEventHandler );
}
$( '#input-summary', form ).on( 'focus', focusEventHandler )
.on( 'blur', blurEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
47eni30uypk8m3tuoz7wg8hs562eqap
1769180
1769179
2026-04-17T09:05:15Z
RolandUnger
3
getFocusedElement
1769180
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#input-content-chars', form );
var focusEventHandler = function( e ) {
e.stopPropagation();
var $this = $( this );
if ( $this.is( 'input:text, textarea' ) ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
for ( var parameter in getAllParams() ) {
ELEMENTS[ parameter ].on( 'focus', focusEventHandler );
}
$( '#input-summary', form ).on( 'focus', focusEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
l4ba27vcz6nianzfz4316qld8krc1hx
1769182
1769180
2026-04-17T09:12:44Z
RolandUnger
3
getFocusedElement
1769182
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#input-content-chars', form );
var focusEventHandler = function( e ) {
var $this = $( this );
if ( $this.is( 'input:text, textarea' ) ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
$( 'input, textarea, select', form ).focus( focusEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
agp6ymiclo2j9ur9xv4uf8rwoygsz4e
1769185
1769182
2026-04-17T09:15:37Z
RolandUnger
3
getFocusedElement
1769185
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#input-content-chars', form );
var focusEventHandler = function( e ) {
var $this = $( this );
if ( $this.is( 'input:text, textarea' ) ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
$( 'input, textarea, select, .chosen-container', form ).focus( focusEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
4o8ifspvc4fcg8rdlrc40qb2zbuxian
1769187
1769185
2026-04-17T09:19:37Z
RolandUnger
3
getFocusedElement
1769187
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#input-content-chars', form );
var focusEventHandler = function( e ) {
var $this = $( this );
if ( $this.is( 'input:text, textarea' ) ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
$( 'input, textarea, select, div.chosen-container', form ).focus( focusEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
kswlk7vru6ti05qo6783tid0ogitvu1
1769190
1769187
2026-04-17T09:26:14Z
RolandUnger
3
getFocusedElement
1769190
javascript
text/javascript
//<nowiki>
/** Listing Editor v2.9.0-de, 2026-04-17
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
/** CUSTOMIZATION INSTRUCTIONS:
Different Wikivoyage language versions have different implementations of
the listing template, so this module must be customized for each. The
Config and Callbacks modules should be the ONLY code that requires
customization - Core should be shared across all language versions. If for
some reason the Core module must be modified, ideally the module should be
modified for all language versions so that the code can stay in sync.
In future, div.mw-h2section and div.mw-h3section sections can be removed if
the parsoid parser is used. To test it add ?useparsoid=1 to the titles url.
Modules: Config, EDITOR_FORM_HTML, Sister, Wikibase, Callbacks, Core.
Functions to check: getListingWikitextBraces, getLatlngStr.
Needed: new coordinate picker.
vCard, Marker: TEMPLATES, INPUT_COLUMNS, SHOW_OPTIONS.
*/
var wvListingEditor = ( function( mw, $ ) {
'use strict';
// ---------------------------------- Config ----------------------------------
/** Config contains properties that will likely need to be
modified for each Wikivoyage language version. Properties in this
module will be referenced from the other ListingEditor modules.
*/
const _Commons = '//commons.wikimedia.org/',
_Wikidata = '//www.wikidata.org/',
_userName = mw.config.get( 'wgUserName' ),
_wikiLang = mw.config.get( 'wgPageContentLanguage' ),
_userLang = mw.config.get( 'wgUserLanguage' ) || _wikiLang,
clPrefix = 'voy-listingeditor', // class or id prefix
dataPrefix = 'data-listingeditor';
var SYSTEM = {
version: '2.9.0-de, 2026-04-17',
Commons_Wiki: `${_Commons}wiki/`,
Commons_API: `${_Commons}w/api.php`,
Wikidata_Wiki: `${_Wikidata}wiki/`,
Wikidata_API: `${_Wikidata}w/api.php`,
Wikivoyage_API: `${mw.config.get( 'wgScriptPath' )}/api.php`,
geomap: '//wikivoyage.toolforge.org/w/geomap.php',
listingEditor: 'ListingEditor', // key at global window variable
wikiLang: _wikiLang,
userName: mw.config.get( 'wgUserName' ),
isLoggedIn: _userName && !_userName.match( /^~20.+$/ ),
userLang: _userLang,
isNewMarkup: $( '.mw-heading').length > 0,
isParsoid: $( 'section .mw-heading2, section .mw-heading3' ).length > 0,
addSearchLang: [ 'en', 'fr', _userLang ], // for Wikidata search
localLang: '', // this and the following one are filled by script
searchLang: []
};
// general utilities
var win = window[ SYSTEM.listingEditor ];
// i18n
var getAllParams = function() {
return win.PARAMETERS || {};
};
var getParams = function( key ) {
return win.PARAMETERS[ key ] || {};
};
var translate = function( key ) {
return win.STRINGS[ key ] || key;
};
var getInputId = function( id ) {
return `input-${id}`;
};
var Config = win.Config;
// dialogue elements
var ELEMENTS = {},
prevFocus = '';
var LUA_MODULES = {
types: win.types || [],
groups: win.groups || [],
subtypes: win.subtypes,
subtypeGroups: 12,
currencies: win.currencies,
q_ids: [ win.payments, win.hours, win.qualifiers ],
typeList: win[ 'types-assoc' ],
groupList: win[ 'groups-assoc' ],
subtypeList: win[ 'subtypes-assoc' ],
typeAliases: win[ 'types-aliases' ],
groupAliases: win[ 'groups-aliases' ],
subtypeAliases: win[ 'subtypes-aliases' ]
};
// -------------------------------- Editor Form -------------------------------
// Editor form selectors
var SELECTORS = {
/** these selectors should match a value defined in the EDITOR_FORM_HTML
Don't delete items even if not used in EDITOR_FORM_HTML */
editorDelete: '#checkbox-delete',
editorForm: `#${clPrefix}-form`,
editorLastedit: '#checkbox-lastedit',
editorMinorEdit: '#checkbox-minor',
editorSummary: '#input-summary',
wikidataLabel: '#input-wikidata-label',
templateClass: '.vcard', // common template class, hCard 1.0 microformat
// for listings and markers
listingClass: 'voy-vCard', // for listings only
markerClass: 'voy-Marker', // for markers only
content: '.mw-parser-output',
addButton: 'voy-listing-add-button',
editLink: '.voy-listing-edit-button button',
captchaForm: `#${clPrefix}-captcha-dialog`,
loadingForm: `#${clPrefix}-loading-dialog`,
saveForm: `#${clPrefix}-progress-dialog`,
// document selectors
geoIndicator: '#mw-indicator-i3-geo .wv-coord-indicator',
// selector that identifies the listing elements into which the
// 'edit' link will be placed
metadataSelector: '.voy-listing-edit .voy-listing-metadata'
};
// Creating Editor Form
var EDITOR_FORM_HTML = function( isListing ) {
/** Fields that can used in the configuration array(s):
- cl: tag class(es).
- tp: input type (select, textarea, default: input).
- multiple: multiple select fields.
- text: text between opening and closing tags.
- add: HTML code to add after the input fields. */
var options = Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ],
PARAMETERS_ADD = {
'name-local': { cl: `${clPrefix}-foreign ${clPrefix}-addLocalLang` },
type: { tp: 'select', multiple: true },
group: { tp: 'select' },
wikidata: { add: `<div class="${clPrefix}-row-add" id="${clPrefix}-wikidata-tools">` +
`<input type="hidden" id="input-wikidata"><span id="${clPrefix}-wikidata-value-link"></span> | ` +
`<a href="javascript:" id="wikidata-remove" title="${translate( isListing ? 'deleteWikidataIdTitle' : 'deleteWikidataIdTitleMarker' )}">${translate( 'deleteWikidataId' )}</a>` +
'</div>' },
auto: { tp: 'select',
text: '<option value=""></option>' +
`<option value="y">${translate( 'optionYes' )}</option>` +
`<option value="n">${translate( 'optionNo' )}</option>` },
'address-local': { cl: `${clPrefix}-foreign` },
'directions-local': { cl: `${clPrefix}-foreign` },
long: { cl: `${clPrefix}-addMaplink` },
phone: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
mobile: { cl: `${clPrefix}-addCallingCode` },
tollfree: { cl: `${clPrefix}-addCallingCode` },
fax: { cl: `${clPrefix}-addCallingCode ${clPrefix}-addLocalCallingCode` },
price: { cl: `${clPrefix}-addCurrencies` },
facebook: { cl: `${clPrefix}-addLink` },
flickr: { cl: `${clPrefix}-addLink` },
'google-maps': { cl: `${clPrefix}-addLink` },
instagram: { cl: `${clPrefix}-addLink` },
tiktok: { cl: `${clPrefix}-addLink` },
x: { cl: `${clPrefix}-addLink` },
url: { cl: `${clPrefix}-addLink` },
youtube: { cl: `${clPrefix}-addLink` },
subtype: { tp: 'select', multiple: true,
add: `<div class="${clPrefix}-row-add" id="${clPrefix}-additionalSubtypes" style="display: none"><a href="javascript:" title="${translate( 'additionalSubtypes' )}">[ + ]</a></div>` },
status: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionLocationGroup' )}" id="${clPrefix}-status-location">` +
`<option value="top-hotel">${translate( 'optionTopHotel' )}</option>` +
`<option value="top-restaurant">${translate( 'optionTopRestaurant' )}</option>` +
`<option value="top-sight">${translate( 'optionTopSight' )}</option>` +
`<option value="recommendation">${translate( 'optionRecommendation' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( 'optionArticleGroup' )}" id="${clPrefix}-status-article">` +
`<option value="none">${translate( 'optionNoRating' )}</option>` +
`<option value="stub">${translate( 'optionStub' )}</option>` +
`<option value="outline">${translate( 'optionOutline' )}</option>` +
`<option value="usable">${translate( 'optionUsable' )}</option>` +
`<option value="guide">${translate( 'optionGuide' )}</option>` +
`<option value="star">${translate( 'optionStar' )}</option>` +
'</optgroup>' },
show: { tp: 'select', multiple: true,
text: `<optgroup label="${translate( 'optionCoordinatesGroup' )}" id="${clPrefix}-show-coordinate">` +
`<option value="all">${translate( 'optionAll' )}</option>` +
`<option value="poi">${translate( 'optionPoi' )}</option>` +
`<option value="coord">${translate( 'optionCoordinates' )}</option>` +
`<option value="none">${translate( 'optionNone' )}</option>` +
'</optgroup>' +
`<optgroup label="${translate( isListing ? 'optionOptionsGroup' : 'optionOptionsGroupMarker' )}" id="${clPrefix}-show-symbol">` +
`<option value="copy">${translate( 'optionCopyMarker' )}</option>` +
`<option value="symbol">${translate( 'optionMakiIcon' )}</option>` +
`<option value="noairport">${translate( 'optionNoAirport' )}</option>` +
`<option value="nositelinks">${translate( 'optionNoSitelinks' )}</option>` +
( options.nosocialmedia ? `<option value="nosocialmedia">${translate( 'optionNoSocialmedia' )}</option>` : '' ) +
( options.socialmedia ? `<option value="socialmedia">${translate( 'optionSocialmedia' )}</option>` : '' ) +
`<option value="wikilink">${translate( 'optionWikilink' )}</option>` +
( options.noperiod ? `<option value="noperiod">${translate( 'optionNoPeriod' )}</option>` : '' ) +
'</optgroup>' +
`<optgroup label="${translate( 'optionDisplayGroup' )}" id="${clPrefix}-show-block">` +
( options.noname ? `<option value="noname">${translate( 'optionNoName' )}</option>` : '' ) +
( options.outdent ? `<option value="outdent">${translate( 'optionOutdent' )}</option>` : '' ) +
( options.inline ? `<option value="inline">${translate( 'optionInline' )}</option>` : '' ) +
'</optgroup>' },
description: { tp: 'textarea' }
};
// adding input/textarea elements to form
function addInput( id ) {
if ( !id || id === '' ) return '';
var el, tagId = getInputId( id );
id = id === 'wikidata-label' ? 'wikidata' : id;
var p = getParams( id ),
q = PARAMETERS_ADD[ id ] || {},
attr = `id="${tagId}"` + ( q.cl ? ` class="${q.cl}"` : '' );
switch ( q.tp || '' ) {
case 'select':
if ( !q.text && !q.multiple )
q.text = '<option value=""></option>';
attr += ( q.multiple ? ' multiple="multiple"' : '' ) +
( p.ph ? ` data-placeholder="${p.ph}"` : '' );
el = `<select class="chosen-select" title="${p.title}" ${attr}>${q.text || ''}</select>`;
break;
case 'textarea':
el = `<textarea rows="6" title="${p.title}" ${attr}></textarea>`;
break;
default:
el = `<input type="text" title="${p.title}" ${attr}>`;
}
var editorRowClasses = `${clPrefix}-row ${clPrefix}-row-` +
( Config.SECONDARY_PARAMS[ id ] ? 'secondary' : 'primary' );
return `<div id="div_${id}" class="${editorRowClasses}">` +
`<div><label for="${tagId}" title="${p.title}">${p.label}</label></div>` +
`<div class="${clPrefix}-input">${el + ( q.add || '' )}</div>` +
'</div>';
}
// adding set of inputs
function addInputs( arr ) {
var s = '';
for ( var id of arr )
s += addInput( id );
return s;
}
function addInputColumns() {
var s = '',
cols = Config.INPUT_COLUMNS[ isListing ? 'listing' : 'marker' ];
for ( var i = 0; i < cols.length; i++ )
s += `<div class="${clPrefix}-col ${clPrefix}-col${i}">${addInputs( cols[ i ] )}</div>`;
return s;
}
/** The below HTML is the UI that will be loaded into the listing editor
dialog box when a listing is added or edited. EACH WIKIVOYAGE LANGUAGE
SITE CAN CUSTOMIZE THIS HTML - fields can be removed, added, displayed
differently, etc. Note that it is important that any changes to the HTML
structure are also made to the TEMPLATES parameter arrays since that
array provides the mapping between the editor HTML and the listing
template fields. */
return `<form id="${clPrefix}-form">` +
( isListing ?
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'reduceTitle' )}" aria-selected="true" role="tab">${translate( 'reduced' )}</button>` +
`<button id="${clPrefix}-tab-buttonC" class="${clPrefix}-tabs-list-item" title="${translate( 'expandTitle' )}" role="tab">${translate( 'expanded' )}</button>` +
`<button id="${clPrefix}-tab-buttonD" class="${clPrefix}-tabs-list-item" title="${translate( 'contentTitle' )}" role="tab">${translate( 'content' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitle' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
:
`<div class="${clPrefix}-tabs">` +
`<div class="${clPrefix}-tabs-list" role="tablist">` +
`<button id="${clPrefix}-tab-buttonF" class="${clPrefix}-tabs-list-item" title="${translate( 'editTabTitle' )}" aria-selected="true" role="tab">${translate( 'editTab' )}</button>` +
`<button id="${clPrefix}-tab-buttonP" class="${clPrefix}-tabs-list-item" title="${translate( 'previewTitleMarker' )}" role="tab">${translate( 'preview' )}</button>` +
'</div>' +
'</div>'
) +
`<div class="${clPrefix}-container">${addInputColumns()}</div>` +
( isListing ? addInput( 'description' ) : '' ) +
`<div id="${clPrefix}-preview">` +
`<div class="${clPrefix}-row">` +
'<div>' +
`<input type="radio" name="previewSelect" id="select-preview" value="Template preview" checked="checked" /> <label for="select-preview" title="${translate( isListing ? 'textPreviewTitle' : 'textPreviewTitleMarker' )}">${translate( 'textPreviewLabel' )}</label><br />` +
`<input type="radio" name="previewSelect" id="select-syntax" value="Wiki syntax" /> <label for="select-syntax" title="${translate( isListing ? 'syntaxPreviewTitle' : 'syntaxPreviewTitleMarker' )}">${translate( 'syntaxPreviewLabel' )}</label><br />` +
'</div>' +
'<div>' +
`<div id="${clPrefix}-preview-text" class="${clPrefix}-preview-div"></div>` +
`<div id="${clPrefix}-preview-syntax" class="${clPrefix}-preview-div" style="display: none"></div>` +
'</div>' +
'</div>' +
'</div>' +
( isListing ?
`<div class="${clPrefix}-divider"></div>` +
`<div id="div_status" class="${clPrefix}-row">` +
`<div title="${translate( 'statusTitle' )}">${translate( 'statusLabel' )}</div>` +
'<div>' +
// update the Callbacks.updateLastEditDate
// method if the last edit input is removed or modified
'<span id="div_lastedit">' +
`<label for="${getInputId( 'lastedit' )}" title="${getParams( 'lastedit' ).title}">${getParams( 'lastedit' ).label}</label> ` +
`<input type="text" size="10" id="${getInputId( 'lastedit' )}">` +
'</span>' +
'<span id="span-lasteditToday">' +
'<input type="checkbox" id="checkbox-lastedit" />' +
`<label for="checkbox-lastedit" class="${clPrefix}-tooltip" title="${translate( 'updateTodayTitle' )}">${translate( 'updateTodayLabel' )}</label>` +
'</span>' +
'<span id="span-delete">' +
'<input type="checkbox" id="checkbox-delete">' +
`<label for="checkbox-delete" class="${clPrefix}-tooltip" title="${translate( 'deleteListingTitle' )}">${translate( 'deleteListingLabel' )}</label>` +
'</span>' +
'</div>' +
'</div>'
: '' ) +
'<div id="div_summary">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-summary" title="${translate( 'summaryTitle' )}">${translate( 'summaryLabel' )}</label></div>` +
`<div class="${clPrefix}-input">` +
`<input type="text" id="input-summary" placeholder="${translate( isListing ? 'summaryPlaceholder' : 'summaryPlaceholderMarker' )}">` +
`<div id="span-minor" class="${clPrefix}-row-add"><input type="checkbox" id="checkbox-minor"><label for="checkbox-minor" class="${clPrefix}-tooltip" title="${translate( 'minorEditTitle' )}">${translate( 'minorEditLabel' )}</label></div>` +
'</div>' +
'</div>' +
'</div>' +
'<div id="div_content-chars">'+
`<div class="${clPrefix}-row">` +
`<div><label for="input-content-chars" title="${translate( 'contentCharsTitle' )}">${translate( 'contentChars' )}</label></div>` +
`<div id="input-content-chars"></div>` +
'</div>' +
'</div>' +
'</form>';
};
// ---------------------------------- Sister ----------------------------------
// Sister implements functionality for information interchange to
// Wikimedia sister websites
var Sister = function() {
// perform an ajax query of a sister site
var ajaxQuery = function( url, data, success ) {
data.format = 'json';
$.ajax({
url: url,
data: data,
dataType: 'jsonp',
success: success
});
};
function _initializeAutocomplete( siteData, ajaxData, parseAjaxResponse ) {
var autocompleteOptions = {
source: function( request, response ) {
ajaxData.search = request.term;
var ajaxSuccess = function( jsonObj ) {
response( parseAjaxResponse( jsonObj ) );
};
ajaxQuery( siteData.apiUrl, ajaxData, ajaxSuccess );
}
};
if ( siteData.selectFunction )
autocompleteOptions.select = siteData.selectFunction;
siteData.selector.autocomplete( autocompleteOptions )
.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var isImage = item.label.match( /^File:/i ),
label = mw.html.escape( item.label.replace( /^(File:|Category:)/i, '' ) );
if ( isImage )
label = '<span class="autocomplete-thumbnail" style="background-image: url("https://commons.wikimedia.org/wiki/Special:FilePath/' +
label.replace( / /g, '_' ) + '?width=200");"></span> ' + label;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label ) ).appendTo( ul );
};
}
var initializeAutocomplete = function( siteData ) {
var sel = $( siteData.selector ),
currentValue = sel.val();
if ( currentValue )
siteData.updateLinkFunction( currentValue, siteData.form );
sel.change( function() {
siteData.updateLinkFunction( sel.val(), siteData.form );
});
siteData.selectFunction = function(event, ui) {
siteData.updateLinkFunction(ui.item.value, siteData.form);
};
var ajaxData = siteData.ajaxData;
ajaxData.action = 'opensearch';
ajaxData.list = 'search';
ajaxData.limit = 10;
ajaxData.redirects = 'resolve';
var parseAjaxResponse = function( jsonObj ) {
var results = [], i, title,
titleResults = $( jsonObj[ 1 ] );
for ( i = 0; i < titleResults.length; i++ ) {
title = titleResults[ i ];
results.push( {
value: title.replace( /^(File:|Category:)/i, '' ),
label: title,
description: $( jsonObj[ 2 ] )[ i ],
link: $( jsonObj[ 3 ] )[ i ]
} );
}
return results;
};
_initializeAutocomplete( siteData, ajaxData, parseAjaxResponse );
};
// expose public members
return {
ajaxQuery,
initializeAutocomplete
};
}();
// --------------------------------- Wikibase ---------------------------------
// Wikidata implements functionality for data fetch from Wikidata
var Wikibase = function() {
// get a Wikidata entity object
var getEntity = function( id, success, props ) {
props = props || 'labels|claims|datatype';
var languages = [].concat( SYSTEM.searchLang );
if ( SYSTEM.localLang !== '' )
languages.push( SYSTEM.localLang );
languages = languages.join( '|' );
var data = {
action: 'wbgetentities',
ids: id,
languages: languages,
props: props
};
Sister.ajaxQuery( SYSTEM.Wikidata_API, data, success );
};
// parse the wikidata "entity" object from the wikidata response
function checkEntity( id, jsonObj ) {
return jsonObj && jsonObj.entities ? jsonObj.entities[ id ] : null;
}
// parse the wikidata display label from the wikidata response
var getLabels = function( id, jsonObj ) {
var entityObj = checkEntity( id, jsonObj );
if ( !entityObj || !entityObj.labels )
return null;
var wiki = '', local = '', user = '', lang;
for ( lang of SYSTEM.searchLang )
if ( entityObj.labels[ lang ] ) {
wiki = entityObj.labels[ lang ].value;
break;
}
if ( SYSTEM.userLang && entityObj.labels[ SYSTEM.userLang ] )
user = entityObj.labels[ SYSTEM.userLang ].value;
if ( SYSTEM.localLang !== '' && entityObj.labels[ SYSTEM.localLang ] )
local = entityObj.labels[ SYSTEM.localLang ].value;
return { wiki: wiki, local: local, user: user };
};
// get Wikidata Id label from array
function getIdLabel( id ) {
for ( var arr of LUA_MODULES.q_ids ) {
if ( arr && arr[ id ] )
return arr[ id ];
}
return id;
}
function getAllStatements( entityClaims, property ) {
var obj, propertyObj, statements = [];
if ( !entityClaims || !entityClaims[ property ] )
return statements;
propertyObj = entityClaims[ property ];
if ( !propertyObj || propertyObj.length === 0 )
return statements;
for ( obj of propertyObj )
if ( obj.mainsnak && obj.mainsnak.snaktype === 'value' &&
obj.mainsnak.datavalue )
statements.push( {
value: obj.mainsnak.datavalue.value,
qualifiers: obj.qualifiers,
// references: obj.references,
rank: obj.rank
} );
return statements;
}
function getBestStatements( entityClaims, property ) {
var statements = [],
allStatements = getAllStatements( entityClaims, property );
if ( !allStatements || allStatements.length === 0 )
return statements;
var rank = 'normal', statement;
for ( statement of allStatements )
if ( statement.rank === rank )
statements.push( { value: statement.value, qualifiers: statement.qualifiers } );
else if ( statement.rank === 'preferred' ) {
rank = 'preferred';
// remove all previous statements
statements = [ { value: statement.value, qualifiers: statement.qualifiers } ];
}
return statements;
}
function getUnit( unit ) {
var u = ( '' + unit ).replace( /https?:\/\/www.wikidata.org\/entity\//ig, '' );
return u === '1' ? '' : u;
}
function htmlDecode( s ) {
var tag = document.createElement( 'textarea' );
tag.innerHTML = s;
return tag.value;
}
function getQuantity( value ) {
var val = 1 * value.amount;
if ( val === 0 ) return '0';
var unit = getUnit( value.unit );
if ( unit !== '' ) {
var item = LUA_MODULES.currencies[ unit ];
if ( item ) {
val = ( item.mul ? item.mul : 1 ) * val;
unit = ( item.f || LUA_MODULES.currencies.default || '%s unit' )
.replace( /unit/g, item.iso );
} else
unit = '%s ' + getIdLabel( unit );
} else
unit = '%s';
val = new Intl.NumberFormat( SYSTEM.wikiLang,
{ minimumFractionDigits: val % 1 == 0 ? 0 : 2 }
).format( val );
return htmlDecode( unit.replace( /%s/g, val ) );
}
function getHours( statement ) {
function getItems( parts, prop1, prop2 ) {
var arr = [], end, i, start,
count = Math.max( parts[ prop1 ].length, parts[ prop2 ].length );
for ( i = 0; i < count; i++ ) {
start = parts[ prop1 ][ i ];
end = parts[ prop2 ][ i ];
if ( start && end )
arr.push( start + '–' + end );
else
arr.push( start || end );
}
return arr.join( ',' );
}
var i, item, parts = {}, property,
result = getIdLabel( statement.value.id ),
dayOpen = Config.PROPERTIES.dayOpen,
dayClosed = Config.PROPERTIES.dayClosed,
hourOpen = Config.PROPERTIES.hourOpen,
hourClosed = Config.PROPERTIES.hourClosed;
if ( statement.qualifiers ) {
for ( property of Config.COMMENTS.hours ) {
parts[ property ] = [];
if ( statement.qualifiers[ property ] )
for ( item of statement.qualifiers[ property ] )
if ( item.snaktype === 'value' && item.datavalue.type === 'wikibase-entityid' )
parts[ property ].push( getIdLabel( item.datavalue.value.id ) );
}
item = getItems( parts, hourOpen, hourClosed );
if ( item !== '' ) result += ' ' + item;
item = getItems( parts, dayOpen, dayClosed );
if ( item !== '' ) result += ' (' + item + ')';
}
return result;
}
function getComments( qualifiers, properties ) {
if ( typeof( qualifiers ) == 'undefined' ) return '';
var comments = [], item, minAge, maxAge, property, value,
minimumAge = Config.PROPERTIES.minimumAge,
maximumAge = Config.PROPERTIES.maximumAge;
for ( property of properties ) {
if ( typeof( qualifiers[ property ] ) == 'undefined' ) continue;
if ( property === minimumAge )
minAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else if ( property === maximumAge )
maxAge = getQuantity( qualifiers[ property ][ 0 ].datavalue.value );
else
for ( item of qualifiers[ property ] )
if ( item.snaktype === 'value' ) {
value = item.datavalue.value;
switch( item.datavalue.type ) {
case 'monolingual':
value = value.text;
break;
case 'wikibase-entityid':
value = getIdLabel( value.id );
break;
}
if ( typeof( value ) === 'string' && value !== '' )
comments.push( value );
}
}
if ( minAge && maxAge )
comments.push( Config.MISC.fromTo
.replace( '%s', parseInt( minAge ) ).replace( '%s', maxAge ) );
else if ( minAge )
comments.push( Config.MISC.from.replace( '%s', minAge ) );
else if ( maxAge )
comments.push( Config.MISC.to.replace( '%s', maxAge ) );
return ( comments.length === 0 ) ? '' : ` (${comments.join( ', ' )})`;
}
// parse the wikidata "claim" object from the wikidata response
var getStatements = function( id, jsonObj, claim ) {
if ( claim.type === 'label' ) {
var labels = getLabels( id, jsonObj );
if ( labels ) {
if ( claim.which === 'wiki' && labels.wiki && labels.wiki !== '' )
return labels.wiki;
if ( claim.which === 'local' && labels.local && labels.local !== '' )
return labels.local;
}
return null;
}
var entity = checkEntity( id, jsonObj );
if ( !entity || !entity.claims )
return null;
var count, lang, pos, property, properties, val, values, results = [],
statement, statements;
properties = typeof claim.p == 'string' ? [ claim.p ] : claim.p;
for ( property of properties ) {
statements = getBestStatements( entity.claims, property );
if ( statements.length === 0 )
continue;
claim.max = claim.max || 1;
if ( claim.max < statements.length )
statements.splice( claim.max, statements.length );
switch( claim.type ) {
case 'monolingual':
values = {};
for ( statement of statements ) {
lang = statement.value.language;
pos = lang.indexOf( '-' );
if ( pos >= 0 )
lang = lang.substr( 0, pos );
values[ lang ] = statement.value.text;
}
if ( claim.which == 'wiki' )
for ( lang of SYSTEM.searchLang ) {
val = values[ lang ];
if ( val ) {
results.push( val );
break;
}
}
else {
val = values[ SYSTEM.localLang ];
if ( val )
results.push( val );
}
break;
case 'au': // fees
for ( statement of statements )
results.push( getQuantity( statement.value ) +
getComments( statement.qualifiers, Config.COMMENTS.fee ) );
break;
case 'subtype':
case 'id':
for ( statement of statements ) {
if ( typeof claim.table == 'object' )
if ( claim.table[ statement.value.id ] ) {
// subtype
count = 1;
var quantity = Config.PROPERTIES.quantity;
if ( statement.qualifiers && statement.qualifiers[ quantity ] ) {
count = parseInt( getQuantity( statement.qualifiers[ quantity ][ 0 ].datavalue.value ) );
if ( typeof( count ) != 'number' || count < 2 )
count = 1;
}
val = claim.table[ statement.value.id ];
if ( count > 1 ) val += ':' + count;
results.push( val );
} else
results.push( getIdLabel( statement.value.id ) );
else
results.push( getIdLabel( statement.value.id ) );
}
break;
case 'hours':
for ( statement of statements ) {
val = getHours( statement );
if ( val !== '' ) results.push( val );
}
break;
default:
for ( statement of statements ) {
switch( claim.type ) {
case 'coordinate':
if ( claim.which == 'latitude' ) {
val = Math.round( statement.value.latitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
} else {
val = Math.round( statement.value.longitude * 1E5 ) / 1E5;
val = val.toFixed( 5 );
}
break;
case 'email':
case 'contact':
val = statement.value.replace( 'mailto:', '' ) +
getComments( statement.qualifiers, Config.COMMENTS.contact );
break;
case 'youtube':
val = statement.value;
if ( !/^UC.+/.test( val ) )
val = '@' + val;
break;
default:
val = statement.value;
}
results.push( val );
}
} // switch type
if ( claim.max < results.length )
results.splice( claim.max, results.length );
} // for property
if ( results.length === 0 )
return null;
else {
if ( claim.result && claim.result == 'table' )
return results;
else
return results.join( ', ' );
}
};
// expose public members
return {
getEntity,
getLabels,
getStatements
};
}();
// -------------------------------- Callbacks ---------------------------------
/** Callbacks implements custom functionality that may be
specific to how a Wikivoyage language version has implemented the
listing template. For example, English Wikivoyage uses a "last edit"
date that needs to be populated when the listing editor form is
submitted, and that is done via custom functionality implemented as a
SUBMIT_FORM_CALLBACK function in this module. */
var Callbacks = function() {
// array of functions to invoke when creating the listing editor form.
// these functions will be invoked with the form DOM object as the
// first element and the mode as the second element.
var CREATE_FORM_CALLBACKS = [];
// array of functions to invoke when submitting the listing editor
// form but prior to validating the form. these functions will be
// invoked with the mapping of listing attribute to value as the first
// element and the mode as the second element.
var SUBMIT_FORM_CALLBACKS = [];
// array of validation functions to invoke when the listing editor is
// submitted. these functions will be invoked with an array of
// validation messages as an argument; a failed validation should add a
// message to this array, and the user will be shown the messages and
// the form will not be submitted if the array is not empty.
var VALIDATE_FORM_CALLBACKS = [];
// storage for Wikidata results
var wikidataResults = {};
// Helper functions
// check if only yes or no is entered
var checkYesNo = function( value ) {
if ( typeof value == 'string' ) {
var v = value.toLowerCase();
return Config.MISC.yes.includes( v ) ? 'y' :
( Config.MISC.no.includes( v ) ? 'n' : '' );
}
else return '';
};
// sort subtypes by groups
var sortSubtypesByGroups = function( s ) {
return s.sort( function( a, b ) {
var aa = a.replace( /:.*$/g, '' ),
bb = b.replace( /:.*$/g, '' ),
subtypeList = LUA_MODULES.subtypeList;
if ( subtypeList[ aa ] && subtypeList[ bb ] ) {
if ( subtypeList[ aa ].g < subtypeList[ bb ].g )
return -1;
if ( subtypeList[ aa ].g > subtypeList[ bb ].g )
return 1;
}
return aa.localeCompare( bb );
});
};
// remove comments from a parameter
var removeComments = function( s ) {
return s ? s.replace( /<!--.*?-->/g, '' ).trim() : s;
};
// --------------------------------------------------------------------
// LISTING EDITOR UI INITIALIZATION CALLBACKS
// --------------------------------------------------------------------
// id of the focused ELEMENTS
var getFocusedElement = function( form, isEditMode ) {
const contChars = $( '#input-content-chars', form );
var focusEventHandler = function( e ) {
var $this = $( this );
if ( $this.is( 'input:text, textarea' ) ) {
prevFocus = $this.attr( 'id' ) || '';
} else {
prevFocus = '';
}
contChars.toggleClass( 'disable-content-chars', prevFocus == '' );
};
$( 'input, textarea, select', form ).focus( focusEventHandler );
$( 'chosen-choices', form ).click( focusEventHandler );
};
CREATE_FORM_CALLBACKS.push( getFocusedElement );
// character count for description
var characterCount = function( form, isEditMode ) {
ELEMENTS.description.keyup( function( e ) {
var count = $( this ).val().length;
$( '#counter-description', form )
.html( mw.format( translate( 'contentStatus' ), count ) )
.toggleClass( 'input-content-limit', count > Config.OPTIONS.contentLimit );
}).trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( characterCount );
// Add listeners to the currency symbols, calling codes and special
// characters so that clicking on a symbol will insert it into the input.
var initSymbolFormFields = function( form, isEditMode ) {
$( `.${clPrefix}-charinsert`, form ).click( function() {
var _this = $( this ),
input = $( '#' + _this.attr( 'data-for' ) );
if ( !input.length && prevFocus !== '')
input = $( '#' + prevFocus, form );
if ( !input.length )
return;
var caretPos = input[ 0 ].selectionStart,
oldValue = input.val(),
symbol = _this.find( 'a' ).text(),
charType = _this.attr( 'data-type' ) || '',
char = oldValue.substring( caretPos-1, caretPos );
if ( Config.MISC.spaceBeforeCurrencies && symbol != ' ' &&
charType == `${clPrefix}-currency-char` && caretPos > 0 &&
char >= '0' && char <= '9' )
symbol = ' ' + symbol;
else if ( Config.MISC.spaceAfterCallingCodes && charType == 'phone-char' )
symbol = symbol + ' ';
var newValue = oldValue.substring(0, caretPos) + symbol + oldValue.substring( caretPos );
input.val( newValue ).select();
// now setting the cursor behind the symbol inserted
caretPos = caretPos + symbol.length;
input[ 0 ].setSelectionRange( caretPos, caretPos );
});
};
CREATE_FORM_CALLBACKS.push( initSymbolFormFields );
// handling coordinates
function checkForSplit() {
var long = ELEMENTS.long;
if ( removeComments( long.val() ) !== '' ) return;
var lat = ELEMENTS.lat,
value = removeComments( lat.val().toUpperCase() ),
coords = value.split( /[,;\|]/ );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() );
long.val( coords[ 1 ].trim() );
return;
}
for ( var d of [ 'N', 'S' ] ) {
coords = value.split( d );
if ( coords.length === 2 ) {
lat.val( coords[ 0 ].trim() + ' ' + d );
long.val( coords[ 1 ].trim() );
return;
}
}
}
function parseCoord( coord, aDir ) {
var s = coord.trim(), v, l,
result = { coord: s, error: 2 }; // 2 = is error
if ( s === '' ) {
result.error = 1;
return result;
}
var mx = aDir === 'lat' ? 90 : 180;
var conversion = false;
if ( isNaN( coord ) ) { // try conversion dms -> dec
conversion = true;
s = s.toUpperCase()
.replace( /[‘’′´`]/ig, "'" )
.replace( /''/ig, '"' )
.replace( /[“”″]/ig, '"' )
.replace( /[−–—]/ig, '-' )
.replace( /[_\\\/\s\0]/ig, ' ' )
.replace( /([A-Z])/ig, ' $1' )
.replace( /\s*([°"\'])/ig, '$1 ' )
.split( ' ' );
for ( var i = s.length - 1; i >= 0; i-- ) {
s[ i ] = s[ i ].trim();
if ( s[ i ] === null || s[ i ] === '' )
s.splice( i, 1 );
}
if ( s.length < 1 || s.length > 4 )
return result;
var units = [ '°', "'", '"', ' ' ],
res = [ 0, 0, 0, 1 ]; // 1 = positive direction
for ( i = 0; i < s.length; i++ ) {
v = s[ i ].replace( units[ i ], '' );
if ( !isNaN( v ) ) { // a number
v = parseFloat( v );
switch( i ) {
case 3: // only for direction letter
return result;
case 0:
res[ 0 ] = v;
break;
case 1:
case 2:
if ( v < 0 || v >= 60 || res[ i - 1 ] != Math.round( res[ i - 1 ] ))
return result;
res[ i ] = v;
}
} else { // not a number: allowed only at the last position
if ( i == 0 || ( i + 1 ) != s.length || res[ 0 ] < 0 ||
v.length !== 1 || !Config.COORD_LETTERS[ v ] )
return result;
l = Config.COORD_LETTERS[ v ];
if ( aDir !== l.dir )
return result;
res[ 3 ] = l.factor;
}
}
if ( res[ 0 ] < 0 ) {
res[ 0 ] = -res[ 0 ];
res[ 3 ] = -1;
}
result.coord = ( res[ 0 ] + res[ 1 ] / 60 + res[ 2 ] / 3600 ) * res[ 3 ];
}
if ( coord < -mx || coord > mx || coord <= -180 )
return result;
result.error = 0;
// round if no-converted result.coord has more than 5 decimal places
if ( conversion || /[+-]?\d+\.\d{6}/.test( result.coord ) ) {
result.coord = Math.round( result.coord * 1E5 ) / 1E5; // only 5 digits
result.coord = result.coord.toFixed( 5 );
}
return result;
}
function checkCoordinates() {
var lat = ELEMENTS.lat,
long = ELEMENTS.long,
latVal = removeComments( lat.val() ),
longVal = removeComments( long.val() );
var r = parseCoord( latVal, 'lat' );
if ( r.coord !== latVal ) {
lat.val( r.coord );
lat.addClass( `${clPrefix}-changed-value` );
}
var result = r.error;
lat.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
r = parseCoord( longVal, 'long' );
if ( r.coord !== longVal ) {
long.val( r.coord );
long.addClass( `${clPrefix}-changed-value` );
}
result += r.error;
long.toggleClass( `${clPrefix}-invalid-input`, r.error > 1 );
return result;
}
var checkCoordInput = function( form, isEditMode ) {
ELEMENTS.long.blur(function() {
checkCoordinates();
});
ELEMENTS.lat.blur(function() {
checkForSplit();
checkCoordinates();
}).trigger( 'blur' );
};
CREATE_FORM_CALLBACKS.push( checkCoordInput );
// Add listeners on various fields to update the "find on map" link.
function getValFromInput( sel ) {
var el = ELEMENTS[ sel ];
if ( el.val() === '' && el.hasClass( `${clPrefix}-wikidata-placeholder` ) )
return el.attr( 'placeholder' );
else
return removeComments( el.val() );
}
function getLatlngStr( form ) {
var latlngStr = '?lang=' + SYSTEM.wikiLang;
// // page & location cause the geomap-link crash
// latlngStr += '&page=' + encodeURIComponent( mw.config.get( 'wgTitle' ) );
var lat = getValFromInput( 'lat' ),
long = getValFromInput( 'long' );
if ( lat === '' || long === '' ) {
var indicator = $( SELECTORS.geoIndicator );
lat = indicator.attr( 'data-lat' ) || '';
long = indicator.attr( 'data-lon' ) || '';
}
lat = parseCoord( lat, 'lat' );
long = parseCoord( long, 'long' );
if ( lat.error === 0 && long.error === 0 )
latlngStr += `&lat=${lat.coord}&lon=${long.coord}&zoom=15`;
// var address = getValFromInput( 'address' );
// var name = getValFromInput( 'name' );
// if ( address !== '' )
// latlngStr += '&location=' + encodeURIComponent( address );
// else if ( name !== '' )
// latlngStr += '&location=' + encodeURIComponent( name );
return latlngStr;
}
var initFindOnMapLink = function( form, isEditMode ) {
$( `.${clPrefix}-addMaplink`, form ).parent()
.append( $( `<div class="${clPrefix}-row-add"><a id="${clPrefix}-geomap-link" target="_blank">${translate( 'searchOnMap' )}</a></div>` ) );
var geolink = $( `#${clPrefix}-geomap-link`, form );
function updateGeolink() {
geolink.attr( 'href', SYSTEM.geomap + getLatlngStr( form ) );
}
if ( geolink.length ) {
ELEMENTS.address.change( updateGeolink );
ELEMENTS.lat.change( updateGeolink );
ELEMENTS.long.change( updateGeolink ).trigger( 'change' );
}
};
CREATE_FORM_CALLBACKS.push( initFindOnMapLink );
// Add listeners on type selector field.
function typesChanged( values, form ) {
var color, different = false, first = '', group, i, obj, sleep = false, val;
// make firstType first if existent
if ( ELEMENTS.firstType !== '' ) {
for ( i = 0; i < values.length; i++ ) {
if ( values[ i ] == ELEMENTS.firstType ) {
values.splice( i, 1 );
values.unshift( ELEMENTS.firstType );
break;
}
if ( i == values.length - 1 )
ELEMENTS.firstType = '';
}
}
for ( i = 0; i < values.length; i++ ) {
val = values[ i ];
for ( obj of LUA_MODULES.types )
if ( obj.type === val ) {
group = obj.group;
break;
}
if ( i === 0 )
first = group;
else if ( group != first )
different = true;
if ( group == 'sleep' )
sleep = true;
}
obj = ( sleep ? Config.HIDE_AND_SHOW.sleep : Config.HIDE_AND_SHOW[ first ] ) ||
Config.HIDE_AND_SHOW.default;
for( i of obj.show )
$( '#' + i, form ).show();
for( i of obj.hide )
if ( $( '#' + i + ' input', form ).val() === '' )
$( '#' + i, form ).hide();
// set input shadow
color = 'transparent';
for ( obj of LUA_MODULES.groups )
if ( obj.group === first ) {
color = obj.color;
break;
}
obj = $( '#div_type .chosen-choices', form );
if ( obj.length )
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
else {
// chosen plugin is maybe not yet active
var style = `#div_type .chosen-choices { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
// set hint to group
$( `.${clPrefix}-group-hint`, form ).text( different ? translate( 'severalGroups' ) : translate( 'ifNecessary' ) );
}
var initTypeSelector = function( form, isEditMode ) {
ELEMENTS.group.parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-group-hint"></div>` ) );
ELEMENTS.type.on( 'change' , function() {
typesChanged( $( this ).val(), form );
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initTypeSelector );
var initGroupSelector = function( form, isEditMode ) {
ELEMENTS.group.on( 'change', function() {
var color = 'transparent';
for ( var obj of LUA_MODULES.groups )
if ( obj.group === this.value ) {
color = obj.color;
break;
}
obj = $( '#div_group .chosen-single', form );
if ( obj.length ) {
obj.css( 'box-shadow', `20px 0 0 0 ${color} inset` );
} else {
// chosen plugin is maybe not yet active
var style = `#div_group .chosen-single { box-shadow: 20px 0 0 0 ${color} inset }`;
$( 'head' ).append( `<style type="text/css">${style}</style>` );
}
}).trigger( 'change' );
};
CREATE_FORM_CALLBACKS.push( initGroupSelector );
var initLastEditCheckBox = function( form, isEditMode ) {
$( SELECTORS.editorLastedit, form ).change( function() {
if ( this.checked && $( '#div_lastedit', form ).is( ':visible' ) )
ELEMENTS.lastedit.val( getCurrentDate() );
});
};
CREATE_FORM_CALLBACKS.push( initLastEditCheckBox );
// set lastedit check box if some parameters are changed
var setLastEditCheckBox = function( form, isEditMode ) {
var editorLastedit = $( SELECTORS.editorLastedit, form );
for ( var p in Config.PARAMETERS_FOR_LASTEDIT ) {
ELEMENTS[ p ].on( 'change keyup', function() {
editorLastedit.prop( 'checked', true );
if ( ELEMENTS.lastedit.val() == '' )
ELEMENTS.lastedit.val( getCurrentDate() );
});
}
};
CREATE_FORM_CALLBACKS.push( setLastEditCheckBox );
// Check against regex
function regexTest( field, val ) {
var i, s, sRegex, test = true, valTab;
val = val.trim();
if ( field.sep ) {
sRegex = new RegExp( '(' + field.sep + ')(?![^(]*\\))', 'ig' );
valTab = val.split( sRegex );
sRegex = new RegExp( '^(' + field.sep.replace( / /g , '' ) + ')$', 'ig' );
for ( i = valTab.length - 1; i >= 0; i-- ) {
valTab[ i ] = valTab[ i ].trim().replace( sRegex, '' );
if ( valTab[ i ] === '' ) valTab.splice( i, 1 );
}
} else
valTab = [ val ];
for ( s of valTab ) {
test = field.regex.test( s );
if ( !test ) break;
}
return test;
}
// Field checks against regex
function initCheckAgainstRegex( key, field, form ) {
var val10;
ELEMENTS[ key ].blur( function() {
var _this = $( this, form ),
valid = true,
val = removeComments( _this.val() );
if ( val !== '' && checkYesNo( val ) === '' ) {
// check if URL protocol exists
if ( key === 'url' && !/^(https?:\/\/|\/\/).+$/.test( val) ) {
if ( regexTest( field, 'http://' + val ) ) {
val = 'http://' + val;
_this.val( val );
}
}
valid = regexTest( field, val );
}
_this.toggleClass( `${clPrefix}-invalid-input`, !valid );
}).trigger( 'blur' );
}
var checkFields = function( form, isEditMode ) {
for ( var key in Config.REGEX_FIELDS )
initCheckAgainstRegex( key, Config.REGEX_FIELDS[ key ], form);
};
CREATE_FORM_CALLBACKS.push( checkFields );
function setDefaultPlaceholders( form ) {
for ( var parameter in getAllParams() ) {
var obj = getParams( parameter ),
tag = ELEMENTS[ parameter ].prop( 'tagName' );
if ( obj.ph && tag !== 'SELECT' )
ELEMENTS[ parameter ].attr( 'placeholder', ' ' + obj.ph )
.addClass( `${clPrefix}-default-placeholder` )
.removeClass( `${clPrefix}-wikidata-placeholder` );
}
$( SELECTORS.wikidataLabel, form )
.attr( 'placeholder', ' ' + getParams( 'wikidata' ).ph )
.addClass( `${clPrefix}-default-placeholder` );
}
function updatePlaceholder( key, value ) {
if ( value && ELEMENTS[ key ] )
ELEMENTS[ key ].attr( 'placeholder', value )
.addClass( `${clPrefix}-wikidata-placeholder` )
.removeClass( `${clPrefix}-default-placeholder` )
.trigger( 'change' );
}
// use Wikidata values as placeholders if available
function updatePlaceholders( id, form ) {
setDefaultPlaceholders( form );
var success = function( jsonObj ) {
var item, key, res,
addSubtypes = $( `#${clPrefix}-additionalSubtypes` );
addSubtypes.hide();
wikidataResults = {};
for ( key in Config.WIKIDATA_CLAIMS ) {
item = Config.WIKIDATA_CLAIMS[ key ];
res = Wikibase.getStatements( id, jsonObj, item );
if ( res )
wikidataResults[ key ] = res;
}
if ( !wikidataResults.address && wikidataResults[ 'address-local' ] ) {
wikidataResults.address = wikidataResults[ 'address-local' ];
delete wikidataResults[ 'address-local' ];
}
for ( key in wikidataResults ) {
if ( key === 'subtype' ) {
wikidataResults.subtype = sortSubtypesByGroups( wikidataResults.subtype );
addSubtypes.show();
continue;
}
updatePlaceholder( key, wikidataResults[ key ] );
if ( key === 'name' )
$( SELECTORS.wikidataLabel ).attr( 'placeholder', wikidataResults.name )
.addClass( `${clPrefix}-default-placeholder` );
}
};
Wikibase.getEntity( id, success );
}
function wikidataLink( form, value ) {
$( `#${clPrefix}-wikidata-value-link`, form ).html( $( '<a />', {
target: '_new',
href: SYSTEM.Wikidata_Wiki + mw.util.wikiUrlencode(value),
title: translate( 'viewWikidataPage' ),
text: value
}) );
if ( !Config.OPTIONS.defaultAuto )
ELEMENTS.auto.val( 'y' ).trigger( 'chosen:updated' );
$( '#wikidata-value-display-container', form ).show();
$( '#div_auto', form ).show();
$( `#${clPrefix}-wikidata-tools`, form ).show();
}
function updateSiteLink(siteLinkData, form) {
var input = $( siteLinkData.inputSelector, form ),
siteLink = $( siteLinkData.linkSelector, form ),
val = removeComments( input.val() || '' );
if ( val === '' && input.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = input.attr( 'placeholder' );
if ( val === '' )
siteLink.hide();
else {
siteLinkData.href = SYSTEM.Commons_Wiki +
mw.util.wikiUrlencode(siteLinkData.namespace + val);
var link = $("<a />", {
target: "_new",
href: siteLinkData.href,
title: siteLinkData.linkTitle
}).append( $( siteLinkData.text ) );
siteLink.html(link).show();
}
}
function commonsLink(value, form) {
var siteLinkData = {
inputSelector: '#input-image',
linkSelector: `#${clPrefix}-image-value-link`,
namespace: 'File:',
linkTitle: translate( 'viewCommonsPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function commonscatLink(value, form) {
var siteLinkData = {
inputSelector: '#input-commonscat',
linkSelector: `#${clPrefix}-commonscat-value-link`,
namespace: 'Category:',
linkTitle: translate( 'viewCommonscatPageTitle' ),
text: translate( 'linkText' )
};
updateSiteLink( siteLinkData, form );
}
function parseWikiDataResult( jsonObj ) {
var results = [];
for ( var result of $( jsonObj.search ) ) {
var label = result.label;
if ( result.match && result.match.text )
label = result.match.text;
var data = {
value: label,
label: label,
description: result.description,
id: result.id
};
results.push( data );
}
return results;
}
var wikidataLookup = function( form, isEditMode ) {
// get the display value for the pre-existing wikidata record ID
var wikidataRemove = function(form) {
ELEMENTS.wikidata.val('');
$( SELECTORS.wikidataLabel, form ).val('');
$('#input-auto').val('');
$(`#${clPrefix}-wikidata-tools`, form).hide();
$('#div_auto', form).hide();
setDefaultPlaceholders(form);
};
var id = removeComments( ELEMENTS.wikidata.val() );
if ( id ) {
wikidataLink( form, id );
var success = function( jsonObj ) {
var id = ELEMENTS.wikidata.val(),
label = Wikibase.getLabels( id, jsonObj ) || '';
label = label.user !== '' ? label.user : label.wiki;
if ( label === '' ) label = id;
$( SELECTORS.wikidataLabel ).val( label );
};
Wikibase.getEntity( id, success, 'labels' );
updatePlaceholders( id, form );
} else
wikidataRemove(form);
// set up autocomplete to search for results as the user types
$( SELECTORS.wikidataLabel, form ).autocomplete({
source: function( request, response ) {
var ajaxUrl = SYSTEM.Wikidata_API,
ajaxData = {
action: 'wbsearchentities',
search: request.term,
language: SYSTEM.wikiLang,
uselang: SYSTEM.wikiLang
};
var ajaxSuccess = function( jsonObj ) {
response(parseWikiDataResult(jsonObj));
};
Sister.ajaxQuery( ajaxUrl, ajaxData, ajaxSuccess );
},
select: function(event, ui) {
ELEMENTS.wikidata.val(ui.item.id);
wikidataLink('', ui.item.id);
updatePlaceholders(ui.item.id, form );
}
}).data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
var label = `${mw.html.escape( item.label )} <small>${item.id}</small>`;
if ( item.description )
label += `<br /><small>${mw.html.escape( item.description )}</small>`;
return $( '<li>' ).data( 'ui-autocomplete-item', item )
.append( $( '<a>' ).html( label )).appendTo( ul );
};
// add a listener to the "remove" button so that links can be deleted
$('#wikidata-remove', form).click(function() {
if ( confirm( translate( 'deleteMessage' ) ) )
wikidataRemove(form);
});
$( SELECTORS.wikidataLabel, form ).change(function() {
if ( !$(this).val() )
wikidataRemove(form);
});
$( `#${clPrefix}-additionalSubtypes a`, form ).click( function() {
var msg = [], t;
if ( wikidataResults.subtype )
for ( t of wikidataResults.subtype ) {
t = t.split( ':' );
t[ 1 ] = t.length > 1 ? parseInt( t[ 1 ] ) : 1;
if ( LUA_MODULES.subtypeList[ t[ 0 ] ] )
t[ 0 ] = LUA_MODULES.subtypeList[ t[ 0 ] ].n; // translate subtypes
if ( t[ 0 ].indexOf( '[' ) > -1 ) {
if ( t[ 1 ] > 1 )
t[ 0 ] = t[ 1 ] + ' ' + t[ 0 ].replace( /\[([^\[\]]*)(\|[^\[\]]*)?\]/g, '$1' );
else
t[ 0 ] = t[ 0 ].replace( /\[([^\[\]]*)\|([^\[\]]*)\]/g, '$2' );
}
msg.push( t[ 0 ].replace( /\[([^\[\]]*)\]/g, '' )
.replace( /[,;\/].*$/ig, '' ) );
}
msg = msg.join( ', ' );
if ( msg === '' )
msg = translate( 'unknownSubtypes' );
alert( translate( 'additionalSubtypes' ) + ':\n\n' + msg );
});
ELEMENTS.image.parent()
.append( $( `<div id="${clPrefix}-image-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.image,
form: form,
ajaxData: { namespace: 6 },
updateLinkFunction: commonsLink
} );
ELEMENTS.commonscat.parent()
.append( $( `<div id="${clPrefix}-commonscat-value-link" class="${clPrefix}-row-add"></div>` ) );
Sister.initializeAutocomplete( {
apiUrl: SYSTEM.Commons_API,
selector: ELEMENTS.commonscat,
form: form,
ajaxData: { namespace: 14 },
updateLinkFunction: commonscatLink
} );
};
CREATE_FORM_CALLBACKS.push( wikidataLookup );
var selectPreview = function(form, isEditMode) {
$( 'input[name=previewSelect]', form ).click( function() {
var checked = $( '#select-preview', form ).prop( 'checked' );
$( `#${clPrefix}-preview-text`, form ).toggle( checked );
$( `#${clPrefix}-preview-syntax`, form ).toggle( !checked );
});
};
CREATE_FORM_CALLBACKS.push( selectPreview );
var addLinks = function( form, isEditMode ) {
$( `.${clPrefix}-addLink`, form ).each( function() {
var _this = $( this ),
id = _this.attr('id').replace( 'input-', '' );
_this.parent().append( $( `<div class="${clPrefix}-row-add"></div>` )
.attr( 'id', `${clPrefix}-link-` + id ) );
_this.change( function() {
var val = removeComments( _this.val() );
if ( val === '' && _this.hasClass( `${clPrefix}-wikidata-placeholder` ) )
val = _this.attr( 'placeholder' );
if ( val !== '' && checkYesNo( val ) === '' ) {
if ( val.indexOf( 'http' ) )
if ( id === 'youtube' && val.match( /^@.*$/ ) )
val = mw.format( Config.LINK_FORMATTERS.youtubeAlias, val );
else
val = mw.format( Config.LINK_FORMATTERS[ id ], val );
var link = $( '<a />', {
target: '_new',
href: val,
title: translate( 'linkTitle' ),
}).append( $( translate( 'linkText' ) ) ) ;
$( `#${clPrefix}-link-${id}`, form ).html( link );
} else
$( `#${clPrefix}-link-${id}`, form ).empty();
var tabables = $( "input[tabindex != '-1']:visible", form ),
index = tabables.index( this );
if ( !ELEMENTS.name.is( ':focus' ) )
tabables.eq( index + 1 ).focus();
}).trigger( 'change' );
});
};
CREATE_FORM_CALLBACKS.push( addLinks );
var chosenInit = function( form, isEditMode ) {
var setOptions = function( selector ) {
var optionGroup = $( selector ),
anyOptionSet = false;
optionGroup.each( function() {
if ( $( this ).is( ':selected' ) )
anyOptionSet = true;
});
if ( anyOptionSet )
optionGroup.each( function() {
if ( !$( this ).is( ':selected' ) )
$( this ).prop( 'disabled', true );
});
else
optionGroup.prop( 'disabled', false );
};
Config.CHOSEN_OPTIONS.no_results_text = translate( 'chosenNoResults' );
$( '.chosen-select', form ).chosen( Config.CHOSEN_OPTIONS );
ELEMENTS.show.change( function() {
setOptions( `#${clPrefix}-show-coordinate option` );
setOptions( `#${clPrefix}-show-block option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.status.change( function() {
setOptions( `#${clPrefix}-status-article option` );
$( this ).trigger( 'chosen:updated' );
}).trigger( 'change' );
ELEMENTS.group.trigger( 'keyup' );
};
CREATE_FORM_CALLBACKS.push( chosenInit );
// activate tag list, set event listener
var initTabList = function( form, isEditMode ) {
const buttons = $( `.${clPrefix}-tabs-list-item`, form );
if ( !buttons.length )
return;
const formTag = $( `.${clPrefix}-tabs`, form ).parent();
formTag.addClass( `${clPrefix}-form-buttonF` );
buttons.each( function() {
const button = $( this );
button.click( function( e ) {
e.preventDefault();
const id = button.attr( 'id' ),
selected = button.attr( 'aria-selected' ) || false;
if ( !selected ) {
buttons.each( function() {
const $this = $( this ),
tabId = $this.attr( 'id' );
if ( tabId == id ) {
$this.attr( 'aria-selected', true );
formTag.addClass( `${clPrefix}-form-${tabId.slice(-7)}` );
} else {
$this.removeAttr( 'aria-selected' );
formTag.removeClass( `${clPrefix}-form-${tabId.slice(-7)}` );
}
});
$( `#${clPrefix}-refresh` ).trigger( 'click' );
}
const elem = $( '#input-name:visible', form );
if ( elem.length )
setTimeout( function() {
elem.focus();
}, 200);
else
$( '#input-description:visible', form ).focus();
});
});
setTimeout(function() {
$( `#${clPrefix}-tab-buttonF`, form ).trigger( 'click' );
}, 200);
};
CREATE_FORM_CALLBACKS.push( initTabList );
// --------------------------------------------------------------------
// LISTING EDITOR FORM SUBMISSION CALLBACKS
// --------------------------------------------------------------------
// Return the current date in the format "2020-01-31".
var getCurrentDate = function() {
var today = new Date(),
date = today.getFullYear() + '-';
// Date.getMonth() returns 0-11
date += ( today.getMonth() + 1 ).toString().padStart( 2, '0' ) + '-';
return date + today.getDate().toString().padStart( 2, '0' );
};
// Only update last edit date if this is a new listing or if the
// "information up-to-date" box checked.
var updateLastEditDate = function( listing, origListing, isEditMode ) {
var currentDate = getCurrentDate(),
editorLastedit = $( SELECTORS.editorLastedit );
if ( editorLastedit.is( ':checked' ) ) {
listing.lastedit = currentDate;
} else if ( listing.lastedit && listing.lastedit !== '' ) {
listing.lastedit = listing.lastedit.replace( /\-(\d)\-/g, '-0$1-' )
.replace( /\-(\d)$/g, '-0$1' );
if ( listing.lastedit !== currentDate && confirm( translate( 'updateLastedit' ) ) )
// with OK/Cancel buttons, Yes/No is more complex
listing.lastedit = currentDate;
}
};
SUBMIT_FORM_CALLBACKS.push( updateLastEditDate );
// --------------------------------------------------------------------
// LISTING EDITOR FORM VALIDATION CALLBACKS
// --------------------------------------------------------------------
// Verify all listings have at least a name, address or alt value.
var validateListingHasData = function( validationFailureMessages ) {
var name = ELEMENTS.name,
wikidata = ELEMENTS.wikidata.val();
// Fill name field from Wikidata
if ( name.val() === '' && wikidata !== '' &&
name.filter( `.${clPrefix}-wikidata-placeholder` ).length > 0 ) {
name.val( name.attr( 'placeholder' ) );
return;
}
if ( name.val() === '' && ELEMENTS.address.val() === '' &&
ELEMENTS.alt.val() === '' && wikidata === '' )
validationFailureMessages.push( translate( 'validationEmptyListing' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateListingHasData );
// Delete group parameter if identical to types group.
var isGroupNecessary = function( validationFailureMessages ) {
var types = ELEMENTS.type.val(),
group = ELEMENTS.group,
wikidata = ELEMENTS.wikidata.val();
if ( types.length === 0 && group.val() === '' && wikidata === '' ) {
validationFailureMessages.push( translate( 'validationType' ) );
return;
}
if ( types.length === 0 )
return;
var different = false, first = '', i, obj;
for ( i = 0; i < types.length; i++ )
for ( obj of LUA_MODULES.types )
if ( types[ i ] === obj.type ) {
if ( i === 1 )
first = obj.group;
if ( first !== obj.group )
different = true;
break;
}
if ( different )
return;
// if type group equals group then delete group
if ( first === group )
group.val( '' );
};
VALIDATE_FORM_CALLBACKS.push( isGroupNecessary );
// Validate coordinates
var validateCoords = function( validationFailureMessages ) {
var lat = removeComments( ELEMENTS.lat.val() ),
long = removeComments( ELEMENTS.long.val() );
if ( lat === '' && long === '' )
return;
if ( lat === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
checkForSplit();
if ( long === '' ) {
validationFailureMessages.push( translate( 'validationMissingCoord' ) );
return;
}
if ( checkCoordinates() > 0 )
validationFailureMessages.push( translate( 'validationCoord' ) );
};
VALIDATE_FORM_CALLBACKS.push( validateCoords );
// Implement SIMPLE RegExp validation. Invalid entries can
// still get through, but this method implements a minimal amount of
// validation in order to catch the worst offenders.
var validateFields = function( validationFailureMessages ) {
var field, key, val;
for ( key in Config.REGEX_FIELDS ) {
if ( ELEMENTS[ key ] ) {
val = removeComments( ELEMENTS[ key ].val() );
if ( val ) {
field = Config.REGEX_FIELDS[ key ];
if ( val !== '' && checkYesNo( val ) === '' && !regexTest( field, val ) )
validationFailureMessages.push( translate( field.m ) );
}
}
}
};
VALIDATE_FORM_CALLBACKS.push( validateFields );
// remove identical names
var ckeckNames = function( key1, key2 ) {
var val1 = ELEMENTS[ key1 ].val(), val2 = ELEMENTS[ key2 ].val();
if ( val1 && val2 ) {
var val = removeComments( val1.toLowerCase() ); // case-insensitve check
if ( val !== '' && val === removeComments( val2.toLowerCase() ) ) {
ELEMENTS[ key2 ].val( '' );
return 1;
}
}
return 0;
};
var checkMultipleNames = function( validationFailureMessages ) {
var result = ckeckNames( 'name', 'name-local' ) +
ckeckNames( 'alt', 'comment' ) +
ckeckNames( 'name', 'alt' ) +
ckeckNames( 'name', 'comment' ) +
ckeckNames( 'address', 'address-local' ) +
ckeckNames( 'directions', 'directions-local' );
if ( result > 0 )
validationFailureMessages.push( translate( 'validationNames' ) );
};
VALIDATE_FORM_CALLBACKS.push( checkMultipleNames );
// expose public members
return {
CREATE_FORM_CALLBACKS,
SUBMIT_FORM_CALLBACKS,
VALIDATE_FORM_CALLBACKS,
checkYesNo,
removeComments,
sortSubtypesByGroups
};
}();
// ----------------------------------- Core -----------------------------------
/** Core contains code that should be shared across different Wikivoyage
languages. This code uses the custom configurations in the Config and
Callback modules to initialize the listing editor and process add and
update requests for listings. */
var Core = function() {
var api = new mw.Api(),
displayBlock = false,
inlineListing, inlineDetected,
replacements = {}, selectComments = {}, sectionText;
// Form additions before populating the form inputs
var additionsToForm = function( isEditMode, listingTag, form ) {
var c, data, dataFor, obj, t, body = $( 'body' );
// getting attribute from listing or body tag
var getAttr = function( attr ) {
const d = isEditMode ? listingTag.attr( attr ) : null;
return d || body.attr( attr ) || '';
};
// getting writing direction of iso639-1 language code
var isRTL = function( iso639 ) {
const r2l = {
ar: 1,
dv: 1,
fa: 1,
he: 1,
ms: 1,
ur: 1,
};
return iso639 in r2l ? 'rtl' : 'ltr';
};
// adding Wikidata Q id to qualifier-subtype list
var addQualifier = function( qualifiers, obj ) {
if ( typeof obj.wd === 'string' && obj.wd !== '' )
qualifiers[ obj.wd ] = obj.type;
else if ( obj.wd )
for ( t of obj.wd )
qualifiers[ t ] = obj.type;
};
// add option to select list
var addOption = function( selector, value, label ) {
selector.append( $( '<option></option>' ).attr( 'value', value ).text( label ) );
};
// adding clickable character for input insertion
var addChar = function( char, dataFor, title, dataType ) {
const data = ( dataFor ) ? `data-for="${dataFor}"` : '';
return ` <span class="${clPrefix}-charinsert" ${data} data-type="${dataType || ''}"><a href="javascript:" title="${title}">${char}</a></span>`;
};
// setting search languages
const localLang = getAttr( 'data-lang' ),
localDir = isRTL( localLang );
SYSTEM.localLang = '';
if ( SYSTEM.wikiLang != localLang )
SYSTEM.localLang = localLang;
SYSTEM.searchLang = [ SYSTEM.wikiLang ];
for ( c of SYSTEM.addSearchLang )
if ( c != SYSTEM.wikiLang && c != localLang )
SYSTEM.searchLang.push( c );
// adding language to local names
$( `.${clPrefix}-foreign`, form ).attr( 'dir', localDir ).attr( 'lang', localLang );
$( `.${clPrefix}-addLocalLang`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-local-lang"></div>` ) );
});
const languageNames = new Intl.DisplayNames( [ SYSTEM.userLang ], {
type: 'language'
});
data = ( localLang !== '' ) ? languageNames.of( localLang ) : '';
if ( data !== '' && localLang != SYSTEM.wikiLang )
$( `.${clPrefix}-local-lang`, form ).text( data );
// adding national and international currency symbols
$( `.${clPrefix}-addCurrencies`, form ).each( function() {
$( this ).parent().append( $( `<div class="${clPrefix}-row-add ${clPrefix}-currency-chars"></div>` ) );
});
var html = '';
data = getAttr( 'data-currency' );
if ( data !== '' ) {
var natlCurrencies = data.split( ',' ).map( function( item ) {
return addChar( item.trim(), 'input-price', translate( 'natlCurrencyTitle' ), `${clPrefix}-currency-char` );
});
if ( natlCurrencies.length )
html += natlCurrencies.join( '' ) + ' |';
}
for ( c of Config.MISC.intlCurrencies )
html += addChar( c, 'input-price', translate( 'intlCurrencyTitle' ), `${clPrefix}-currency-char` );
$( `.${clPrefix}-currency-chars`, form ).append( html );
// adding country and local calling codes
$( `.${clPrefix}-addCallingCode`, form ).each( function() {
var _this = $( this );
_this.parent().append(
$(`<div class="${clPrefix}-row-add ${clPrefix}-calling-code${_this.hasClass( `${clPrefix}-addLocalCallingCode` ) ? ` ${clPrefix}-calling-code-local` : ''}" data-for="${_this.attr( 'id' )}"></div>` )
);
});
var ccLocal = [];
data = getAttr( 'data-local-calling-code' );
if ( data !== '' ) {
var trunkPrefix = getAttr( 'data-trunk-prefix' );
ccLocal = data.split( ',' ).map( function( item ) {
item = item.trim();
// adding trunk prefix if missing
if ( trunkPrefix !== '' && item.substr( 0, trunkPrefix.length ) !== trunkPrefix )
item = trunkPrefix + item;
return item;
});
}
data = getAttr( 'data-country-calling-code' );
if ( data !== '' || ccLocal.length > 0 ) {
$( `.${clPrefix}-calling-code`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
if ( data !== '' )
html += addChar( data, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
$( this ).append( html );
});
$( `.${clPrefix}-calling-code-local`, form ).each( function() {
html = '';
dataFor = $( this ).attr( 'data-for' );
for ( c of ccLocal ) {
// exception for Italy and San Marino
if ( data !== '+39' && data !== '+378' )
c = c.replace(/^0/ig, '(0)');
html += addChar( c, dataFor, translate( 'callingCodeTitle' ), 'phone-char' );
}
$( this ).append( html );
});
}
// adding counter to description label
$( '#div_description label', form ).parent()
.append( $( '<br /><span id="counter-description"></span>' ) );
html = '';
for ( c of Config.MISC.contentChars )
html += addChar( c, null, translate( 'contentCharsTitle' ) );
$( '#input-content-chars', form ).append( html );
// populating select fields
var subtypeQualifiers = {},
subtypeOptions = [],
newObj;
// group select: non-color groups at the beginning
for ( obj of LUA_MODULES.groups ) {
if ( !obj.is )
addOption( ELEMENTS.group, obj.group, obj.label );
}
for ( obj of LUA_MODULES.groups )
if ( obj.is && obj.is === 'color' )
addOption( ELEMENTS.group, obj.group, obj.label );
// subtype select: collect qualifiers and select options
for ( obj of LUA_MODULES.subtypes ) {
addQualifier( subtypeQualifiers, obj );
subtypeOptions.push( obj );
}
// type select: populate select, merge types to subtypes
for ( obj of LUA_MODULES.types ) {
addOption( ELEMENTS.type, obj.type, obj.label );
// merge types into subtypes
if ( !LUA_MODULES.subtypeList[ obj.type ] ) {
newObj = { type: obj.type, g: LUA_MODULES.subtypeGroups + 1,
wd: obj.wd, label: obj.label, n: obj.label };
LUA_MODULES.subtypeList[ obj.type ] = newObj;
addQualifier( subtypeQualifiers, newObj );
subtypeOptions.push( { type: obj.type, label: obj.label } );
}
}
// subtype select: sorting and populating
subtypeOptions.sort( function( a, b ) {
a = a.sortkey || a.label;
b = b.sortkey || b.label;
return a.localeCompare( b );
} );
for ( obj of subtypeOptions ) {
addOption( ELEMENTS.subtype, obj.type, obj.label
// simplifying labels
.replace( /\[([^\[\]]*)\|([^\[\]]*)\]/ig, '$2' )
.replace( /\[([^\[\]]*)\]/ig, '' ) );
}
Config.WIKIDATA_CLAIMS.subtype.table = subtypeQualifiers;
};
// Generate the form UI for the listing editor. If editing an existing
// listing, pre-populate the form input fields with the existing values.
var createForm = function( isEditMode, isListing, listingTag ) {
var form = $( EDITOR_FORM_HTML( isListing ) );
for ( var parameter in getAllParams() )
ELEMENTS[ parameter ] = $( '#' + getInputId( parameter ), form );
if ( !isEditMode )
$( '#span-delete', form ).hide();
additionsToForm( isEditMode, listingTag, form );
return form;
};
var splitParameters = function( parameter, table, aliases, aliases2, form, selector ) {
parameter = parameter.toLowerCase()
.split( ',' ).map( function( item ) {
return item.trim();
});
// translate aliases to types
for ( var i in parameter ) {
parameter[ i ] = parameter[ i ].replace(/[_\s]+/g, '_');
if ( aliases2 && aliases2[ parameter[ i ] ] )
parameter[ i ] = aliases2[ parameter[ i ] ];
if ( aliases && aliases[ parameter[ i ] ] )
parameter[ i ] = aliases[ parameter[ i ] ];
}
// remove duplicates
parameter = parameter.filter( function( value, index, self ) {
return self.indexOf( value ) === index;
});
for ( i = parameter.length - 1; i >= 0; i-- ) {
// remove empty items
if ( !parameter[ i ] || parameter[ i ] === '' ) {
parameter.splice( i, 1 );
continue;
}
// handle unknown items (custom types)
if ( !table[ parameter[ i ] ] ) {
if ( !selector || selector === '' )
parameter.splice( i, 1 );
else
$( selector, form )
.append( $( '<option></option>' ).attr( 'value', parameter[ i ] ).text( parameter[ i ] ) );
}
}
return parameter;
};
var checkShowOptions = function( parameter ) {
var options = {}, i, par;
for ( par of parameter )
options[ par ] = 'o';
if ( options.poi && options.coord && !options.all ) {
options.all = 'o';
parameter.push( 'all' );
}
for ( i = parameter.length - 1; i >= 0; i-- ) {
if ( ( options.none || options.all ) &&
( parameter[ i ] === 'poi' || parameter[ i ] === 'coord' ) )
parameter.splice( i, 1 );
if ( options.none && parameter[ i ] === 'all' )
parameter.splice( i, 1 );
if ( options.inline && parameter[ i ] === 'outdent' )
parameter.splice( i, 1 );
}
return parameter;
};
var checkStatusOptions = function( parameter ) {
var i, max = 1, old, v;
old = parameter.length;
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( !v ) // invalid option
parameter.splice( i, 1 );
else if ( v > max )
max = v;
}
if ( max > 2 ) // only one (highest) article option
for ( i = parameter.length - 1; i >= 0; i-- ) {
v = Config.STATUS_OPTIONS[ parameter[ i ] ];
if ( v > 1 && v < max )
parameter.splice( i, 1 );
}
if ( parameter.length !== old )
ELEMENTS.status.val( parameter ).trigger( 'chosen:updated' );
return parameter;
};
var populateForm = function( listingAsMap, form, isEditMode, isListing, listingTag ) {
// multiple select lists
listingAsMap.type = splitParameters( listingAsMap.type || '', LUA_MODULES.typeList,
LUA_MODULES.typeAliases, LUA_MODULES.groupAliases, form, '#input-type' );
if ( listingAsMap.type.length ) ELEMENTS.firstType = listingAsMap.type[ 0 ];
listingAsMap.subtype = splitParameters( listingAsMap.subtype || '', LUA_MODULES.subtypeList,
LUA_MODULES.subtypeAliases, LUA_MODULES.typeAliases, form, '#input-subtype' );
listingAsMap.show = splitParameters( listingAsMap.show || '',
Config.SHOW_OPTIONS[ isListing ? 'listing' : 'marker' ], null,
null, form, null );
listingAsMap.show = checkShowOptions( listingAsMap.show );
listingAsMap.status = splitParameters( listingAsMap.status || '',
Config.STATUS_OPTIONS, Config.STATUS_ALIASES, null, form, null );
listingAsMap.status = checkStatusOptions( listingAsMap.status );
var l = listingAsMap.group;
if ( l && LUA_MODULES.groupAliases[ l ] )
listingAsMap.group = LUA_MODULES.groupAliases[ l ];
if ( l && l !== '' && !LUA_MODULES.groupList[ l ] )
ELEMENTS.group.append( `<option value="${l}">${l}</option>` );
l = listingAsMap.name || '';
if ( l === '' && isEditMode )
listingAsMap.name = listingTag.attr( 'data-name' ) || '';
if ( !Config.OPTIONS.defaultAuto && listingAsMap.wikidata && !listingAsMap.auto )
listingAsMap.auto = 'y';
// populate the empty form with existing values
for ( var parameter in getAllParams() ) {
if ( listingAsMap[ parameter] )
ELEMENTS[ parameter ].val( listingAsMap[ parameter ] );
else if ( Config.hideDivIfEmpty[ parameter ] )
$( '#div_' + parameter, form ).hide();
if ( ELEMENTS[ parameter ].prop( 'tagName' ) !== 'SELECT' ) {
ELEMENTS[ parameter ].on( 'blur change', function() {
var _this = $( this ),
id = _this.attr( 'id' ).replace(/input\-/g, '' );
_this.toggleClass( `${clPrefix}-changed-value`,
( listingAsMap[ id ] || '' ) !== _this.val() );
});
}
}
for ( var f of Callbacks.CREATE_FORM_CALLBACKS )
f( form, isEditMode );
};
/** Wrap the h2/h3 heading tag and everything up to the next section
(including sub-sections) in a div to make it easier to traverse the DOM.
This change introduces the potential for code incompatibility should the
div cause any CSS or UI conflicts.
*/
var wrapContent = function() {
var content = SELECTORS.content;
// useparsoid=1 set?
if ( SYSTEM.isParsoid ) {
$( content + ' h2' ).each( function() {
$( this ).closest( 'section' ).addClass( 'mw-h2section' );
});
return;
}
unwrapContent();
// to access first and last sections
$( content ).prepend( '<h2 class="mw-helperheader mw-heading2" style="display: none">Beginning</h2>' )
.append( '<h2 class="mw-helperheader mw-heading2" style="display: none">End</h2>' );
// MobileFrontend use-case
if ( $( '.mw-parser-output > h2.section-heading' ).length ) {
$( '.mw-parser-output > section' ).addClass( 'mw-h2section' );
} else {
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading2').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2').addBack().wrapAll('<div class="mw-h2section" />');
});
} else {
$(content + ' h2').each(function(){
$(this).nextUntil('h1, h2').addBack().wrapAll('<div class="mw-h2section" />');
});
}
}
if ( SYSTEM.isNewMarkup ) {
$(content + ' .mw-heading3').each(function(){
$(this).nextUntil('.mw-heading1, .mw-heading2, .mw-heading3').addBack().wrapAll('<div class="mw-h3section" />');
});
} else {
$(content + ' h3').each(function(){
$(this).nextUntil('h1, h2, h3').addBack().wrapAll('<div class="mw-h3section" />');
});
}
};
var unwrapContent = function() {
// useparsoid=1 set?
if ( SYSTEM.isParsoid )
return;
// do not unwrap <section> tag
$( 'div.mw-h3section, div.mw-h2section' ).replaceWith( function() {
return $( this ).contents();
});
$( 'h2.mw-helperheader' ).remove();
};
// Place an "add listing" link at the top of each section heading next to
// the "edit" link in the section heading.
var addListingButtons = function() {
if ( $( Config.DISALLOW_ADD_LISTING_IF_PRESENT.join( ',' ) ).length )
return false;
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE ) {
// do not search using "#id" for two reasons. First, the article might
// re-use the same heading elsewhere and thus have two of the same ID.
// Second, unicode headings are escaped ("è" becomes ".C3.A8") and the
// dot is interpreted by JQuery to indicate a child pattern unless it
// is escaped
var headings,
nodeWithId = $( `[id="${sectionId}"]` ),
topHeading = nodeWithId.is( 'h2' ) ? nodeWithId :
nodeWithId.closest( 'h2' );
if ( topHeading.length ) {
insertAddListingPlaceholder( topHeading );
if ( SYSTEM.isNewMarkup ) {
headings = topHeading.closest( '.mw-heading' )
.nextUntil( '.mw-heading1, .mw-heading2' )
.find( '.mw-heading3' ).addBack( '.mw-heading3' ) // itself and descendants
.find( 'h3' );
} else {
headings = topHeading.nextUntil( 'h1, h2' )
.find( 'h3' ).addBack( 'h3' );
}
insertAddListingPlaceholder( headings );
}
}
};
var buttonLink = function( text, title, bClass, isEditMode ) {
return $( isEditMode ? '<button/>' : '<a href="javascript:" />' )
.addClass( bClass || '' )
.attr( 'title', title )
.text( text )
.click( function() {
initListingEditorDialog( $( this ) );
});
};
// Append the "add listing" link text to a heading.
var insertAddListingPlaceholder = function( parentHeading ) {
parentHeading.each( function() {
var _this = $( this ),
headline = _this.find( '.mw-headline' ),
editSection = headline.length ? headline.next( '.mw-editsection' ) :
_this.next( '.mw-editsection' ),
addButton = buttonLink( translate( 'add' ), translate( 'addTitle' ),
SELECTORS.addButton, false );
editSection.append( '<span class="mw-editsection-bracket">[ </span>',
addButton, '<span class="mw-editsection-bracket">]</span>' );
} );
};
// Place an "edit" link next to all existing listing templates.
var addEditButtons = function() {
var editButton = buttonLink( translate( 'edit' ),
translate( 'editTitle' ), '', true );
editButton = $( '<span class="voy-listing-metadata-item voy-listing-edit-button noprint"></span>' )
.append( editButton );
$( SELECTORS.metadataSelector ).append( editButton );
};
// replace loading by listingEditorDialog listeners
var replaceEventListeners = function() {
$( '.' + SELECTORS.addButton + ',' + SELECTORS.editLink ).each( function() {
_this = $( this );
_this.off( 'click', '**' )
.click( function() {
initListingEditorDialog( _this );
} );
} );
};
// Determine whether a listing entry is within a paragraph rather than
// an entry in a list
var isInline = function( clicked ) {
return clicked.closest( 'p' ).length && clicked.closest( 'span.vcard' ).length;
};
// Given an editable heading, examine it to determine what section index
// the heading represents. First heading is 1, second is 2, etc.
var findSectionIndex = function( sectionHeading ) {
if ( sectionHeading === undefined )
return 0;
var link, section;
// parsoid renderer
section = sectionHeading.attr( 'data-mw-section-id' );
if ( section !== undefined ) {
return section;
}
// new markup
var next = sectionHeading.next();
if ( next.hasClass( 'mw-editsection' ) ) {
link = next.find( 'a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
}
// old markup
link = sectionHeading.find( '.mw-editsection a' ).attr( 'href' );
return ( link !== undefined ) ? link.split( '=' ).pop() : 0;
};
// Given an edit link that was clicked for a listing, determine what index
// that listing is within a section. First listing is 0, second is 1, etc.
var findListingIndex = function( sectionHeading, clicked, isListing ) {
var count = 0, found = false, template;
$( SELECTORS.editLink, sectionHeading ).each(function() {
if (clicked.is( $(this) )) {
found = true;
return false; // stop iterating
}
template = $(this).closest( SELECTORS.templateClass );
// separate count for listings and markers
if ( ( isListing && template.hasClass( SELECTORS.listingClass ) ) ||
( !isListing && template.hasClass( SELECTORS.markerClass ) ) )
count++;
});
return found ? count : -1;
};
/** Return the listing template type appropriate for the section that
contains the provided DOM element (example: "see" for "See" sections,
etc). If no matching type is found then the default listing template
type is returned.
*/
var findListingTypeForSection = function( clicked ) {
var section = clicked.closest( 'div.mw-h2section, section.mw-h2section' ), sectionType;
if ( SYSTEM.isNewMarkup )
sectionType = $( 'h2', section ).attr( 'id' );
else
sectionType = $( '.mw-headline', section ).attr( 'id' );
for ( var sectionId in Config.SECTION_TO_DEFAULT_TYPE )
if ( sectionType == sectionId )
return Config.SECTION_TO_DEFAULT_TYPE[ sectionId ];
return 'listing'; // fall back
};
var replaceSpecial = function(str) {
return str.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
/** Return a regular expression that can be used to find all listing
template invocations (as configured via the TEMPLATES map)
within a section of wikitext. Note that the returned regex simply
matches the start of the template ("{{listing") and not the full
template ("{{listing|key=value|...}}").
*/
var getListingTypesRegex = function( isListing ) {
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ];
return new RegExp('({{\\s*(' + templates.join('|') + ')\\b)(\\s*[\\|}])','ig');
};
/** Given a listing index, return the full wikitext for that listing
("{{listing|key=value|...}}"). An index of 0 returns the first listing
template invocation, 1 returns the second, etc.
*/
var getListingWikitextBraces = function( listingIndex, isListing ) {
sectionText = sectionText.replace(/[^\S\n]+/g,' ');
// find the listing wikitext that matches the same index as the listing index
var listingRegex = getListingTypesRegex( isListing );
// look through all matches for "{{listing|see|do...}}" within the section
// wikitext, returning the nth match, where 'n' is equal to the index of the
// edit link that was clicked
// if sectionText is wrong or corrupt the following lines may cause
// a crash
var listingSyntax, regexResult, listingMatchIndex;
for (var i = 0; i <= listingIndex; i++) {
regexResult = listingRegex.exec( sectionText );
if ( regexResult ) {
listingMatchIndex = regexResult.index;
listingSyntax = regexResult[ 1 ];
}
}
// listings may contain nested templates, so step through all section
// text after the matched text to find MATCHING closing braces
// the first two braces are matched by the listing regex and already
// captured in the listingSyntax variable
var matchFound = false;
if ( listingMatchIndex && listingSyntax ) {
var curlyBraceCount = 2,
endPos = sectionText.length,
startPos = listingMatchIndex + listingSyntax.length;
for (var j = startPos; j < endPos; j++) {
if (sectionText[j] === '{')
++curlyBraceCount;
else if (sectionText[j] === '}')
--curlyBraceCount;
if (curlyBraceCount === 0 && (j + 1) < endPos) {
listingSyntax = sectionText.substring(listingMatchIndex, j + 1);
matchFound = true;
break;
}
}
}
if ( !matchFound )
listingSyntax = sectionText.substring( listingMatchIndex );
return (listingSyntax || '').trim();
};
// Convert raw wiki listing syntax into a mapping of key-value pairs
// corresponding to the listing template parameters.
var wikiTextToListing = function( listingWikiSyntax, isListing ) {
var typeRegex = getListingTypesRegex( isListing ),
templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
comments, key, tag;
// convert "{{see|" to {{listing|" etc.
listingWikiSyntax = listingWikiSyntax
.replace( typeRegex, '{{' + templates[ 0 ] + '$3' )
.slice(0,-2); // remove the trailing braces
var listingAsMap = parseListing( listingWikiSyntax );
// replace comment placeholders by its original values
for ( key in listingAsMap )
listingAsMap[ key ] = restoreComments(listingAsMap[ key ], false);
// remove comments from select list and store it
for ( key in getAllParams() ) {
tag = ELEMENTS[ key ].prop( 'tagName' );
if ( listingAsMap[ key ] && listingAsMap[ key ] !== '' && tag === 'SELECT' ) {
comments = listingAsMap[ key ].match( /<!--.*?-->/g );
if ( comments ) {
selectComments[ key ] = comments;
listingAsMap[ key ] = Callbacks.removeComments( listingAsMap[ key ] );
}
}
}
// convert paragraph tags to newlines
if ( listingAsMap.description && displayBlock )
listingAsMap.description = listingAsMap.description.replace(/\s*<p>\s*/g, '\n\n');
// remove control characters
for ( key in listingAsMap )
listingAsMap[ key ] = removeCtrls( listingAsMap[ key ], key == 'description' );
// sanitize the listing type param to match the configured values, so
// if the listing contained "Do" it will still match the configured "do"
if ( !listingAsMap.type )
listingAsMap.type = '';
for ( key of templates )
if ( listingAsMap.type.toLowerCase() === key.toLowerCase() ) {
listingAsMap.type = key;
break;
}
for ( key in listingAsMap ) {
var c = Callbacks.checkYesNo( listingAsMap[ key ] );
if ( c !== '' ) listingAsMap[ key ] = c;
}
// copying parameter aliases if possible
var arr, j, key2;
for ( key in getAllParams() ) {
arr = Config.PARAM_ALIASES[ key ] || [];
for ( key2 of arr ) {
if ( ( !listingAsMap[ key ] || listingAsMap[ key ] === '' ) &&
listingAsMap[ key2 ] ) {
listingAsMap[ key ] = listingAsMap[ key2 ];
delete( listingAsMap[ key2 ] );
}
}
}
return listingAsMap;
};
/** Split the raw template wikitext into an array of params. The pipe
symbol delimits template params, but this method will also inspect the
content to deal with nested templates or wikilinks that might contain
pipe characters that should not be used as delimiters.
*/
// masking pipes in templates and wiki links by \x00
var maskPipes = function( s ) {
// extension tags
function maskingTemplates( str ) {
const tags = [ 'gallery' ];
let tag, regex;
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' );
}
for ( let i = 0; i < tags.length; i++ ) {
tag = tags[ i ];
regex = new RegExp( `\\<${tag}[^>]*>[^\\<]*\\<\/${tag}>`, 'g' );
str = str.replace( regex, replacePipes );
}
return str;
}
// templates and links
function masking( str, start, end ) {
let t;
const regex1 = new RegExp( `\\${start}{2}[^\\${start}\\${end}]*\\${end}{2}`, 'g' ),
regex2 = new RegExp( '\\' + start, 'g' ),
regex3 = new RegExp( '\\' + end, 'g' ),
regex4 = new RegExp( '\\' + end + '{2}$' );
function replacePipes( name, offset, str ) {
return name.replace( /\|/g, '\x00' ).replace( regex2, '\x01' ).replace( regex3, '\x02' );
}
str += end + end;
// templates and links can be nested
do {
t = str;
str = str.replace( regex1, replacePipes );
} while ( t !== str );
return str.replace( regex4, '' ).replace( /\x01/g, start ).replace( /\x02/g, end );
}
s = maskingTemplates( s );
s = masking( s, '{', '}' );
return masking( s, '[', ']' );
};
var parseListing = function( listingWikiSyntax ) {
var listingAsMap = {},
str = listingWikiSyntax.replace( /[\x00-\x02]/g, '' ).slice( 2 ); // remove {{
str = maskPipes( str );
// splitting each parameter
var results = str.split( '|' );
results.shift();
var at, index = 1, match, name, result;
for ( result of results ) {
result = result.trim().replace( /\x00/g, '|' );
match = result.match( /[^<=\{\[]*\s*=/ );
if ( match && match[ 0 ] !== '=' ) {
at = match[ 0 ].length;
name = match[ 0 ].substr( 0, at - 1 )
.replace( /[\x00-\x0F\x7F]+/g, '')
.replace( / +/g, ' ').trim();
listingAsMap[ name ] = result.substr( at ).trim();
} else {
listingAsMap[ '' + index ] = result.replace( /^=/, '' ).trim();
index++;
}
}
return listingAsMap;
};
/** This method is invoked when an "add" or "edit" listing button is
clicked and will execute an Ajax request to retrieve all of the raw wiki
syntax contained within the specified section. This wiki text will
later be modified via the listing editor and re-submitted as a section
edit.
*/
var initListingEditorDialog = function( clicked ) {
var isEditMode = clicked.closest( SELECTORS.metadataSelector ).length > 0,
listingTag = clicked.closest( SELECTORS.templateClass ), // markers and listings
isListing = true, listingType;
wrapContent();
if ( isEditMode ) {
// listing or marker?
isListing = listingTag.hasClass( SELECTORS.listingClass ); // otherwise Marker
listingType = listingTag.attr( 'data-type' );
displayBlock = listingTag.prop( 'tagName' ) === 'DIV';
} else // add mode
listingType = findListingTypeForSection( clicked );
// find the nearest editable section (h2 or h3) that it is contained within.
// remove mw-h3section and mw-h2section when ?useparsoid=1 is everywhere
var sectionHeading = clicked.closest( 'div.mw-h3section, div.mw-h2section, section' ),
sectionIndex = findSectionIndex( sectionHeading );
inlineDetected = isEditMode && isInline( clicked );
inlineListing = Config.OPTIONS.inlineFormat || inlineDetected;
var listingIndex = isEditMode ? findListingIndex( sectionHeading, clicked, isListing ) : -1;
unwrapContent();
if ( ( sectionIndex < 0 ) || ( isEditMode && listingIndex < 0 ) ) {
// to prevent a crash by getListingWikitextBraces()
alert( translate( 'sectionNotFound' ) );
return;
}
progressForm( SELECTORS.loadingForm,
translate( isListing ? 'loading' : 'loadingMarker' ) );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
prop: 'revisions',
format: 'json',
formatversion: 2,
titles: mw.config.get( 'wgPageName' ),
action: 'query',
rvprop: 'content',
origin: '*',
rvsection: sectionIndex
},
cache: false // required
}).done( function( data ) {
closeForm( SELECTORS.loadingForm );
try {
sectionText = data.query.pages[ 0 ].revisions[ 0 ].content;
} catch ( e ) {
alert( translate( 'ajaxSectionError' ) );
return;
}
openListingEditorDialog( isEditMode, sectionIndex, listingIndex,
listingType, isListing, listingTag );
}).fail( function( jqXHR, textStatus, errorThrown ) {
closeForm( SELECTORS.loadingForm );
alert( `${translate( 'ajaxInitFailure' )}: ${textStatus} ${errorThrown}` );
});
};
/** This method is called asynchronously after the initListingEditorDialog()
method has retrieved the existing wiki section content that the
listing is being added to (and that contains the listing wiki syntax
when editing).
*/
var openListingEditorDialog = function( isEditMode, sectionNumber, listingIndex,
listingType, isListing, listingTag ) {
// Not working in Minerva skin because of missing modules
const windw = $( window ),
// wide dialogs on huge screens look terrible
dialogWidth = windw.width() > Config.OPTIONS.MaxDialogWidth ? Config.OPTIONS.MaxDialogWidth : 'auto',
pageX = window.scrollX, pageY = window.scrollY;
// if a listing editor dialog is already open, get rid of it
closeForm( SELECTORS.editorForm );
var form = $( createForm( isEditMode, isListing, listingTag ) );
sectionText = stripComments(sectionText);
var listingAsMap = {}, listingWikiSyntax, t;
if ( isEditMode ) {
listingWikiSyntax = getListingWikitextBraces( listingIndex, isListing );
listingAsMap = wikiTextToListing( listingWikiSyntax, isListing );
t = listingAsMap.type;
if ( listingType && ( !t || t === "" ) )
listingAsMap.type = listingType;
listingType = listingAsMap.type;
} else
listingAsMap.type = listingType;
populateForm( listingAsMap, form, isEditMode, isListing, listingTag );
form.dialog({
// modal form - must submit or cancel
modal: true,
height: 'auto',
width: dialogWidth,
title: isListing ? translate( isEditMode ? 'editTitle' : 'addTitle' ) :
translate( 'markerTitle' ),
dialogClass: `${clPrefix}-dialog ` +
( isListing ? SELECTORS.listingClass : SELECTORS.markerClass ),
close: function() {
},
buttons: [
{ // hidden, needed for tab click event
text: '↺',
title: 'Refresh',
id: `${clPrefix}-refresh`,
style: 'display: none',
click: function() {
if ( $( `#${clPrefix}-preview` ).is( ':visible' ) )
showPreview( listingAsMap, isListing );
}
},
{
text: translate( 'help' ),
title: translate( isListing ? 'helpTitle' : 'helpTitleMarker' ),
id: `${clPrefix}-help`,
click: function() { window.open(
isListing ? Config.MISC.helpPage : Config.MISC.helpPageMarker ); }
},
{
text: translate( 'submit' ),
title: translate( 'submitTitle' ),
click: function() {
if ($( SELECTORS.editorDelete ).is(':checked')) {
// no validation
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, false, isListing );
$(this).dialog('close');
}
else if (validateForm()) {
formToText( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, true, isListing );
$(this).dialog('close');
}
}
},
{
text: translate( 'cancel' ),
title: translate( 'cancelTitle' ),
click: function() {
const changed = checkForChanges( listingAsMap );
if ( changed == '' || confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
$(this).dialog('destroy').remove();
}
}
}
],
create: function() {
$( '.ui-dialog-buttonpane' )
.append( `<div class="${clPrefix}-license">${translate( 'licenseText' )}</div>` );
},
beforeClose: function (e, ui) {
if ( $( e.currentTarget ).hasClass( 'ui-dialog-titlebar-close' ) ) {
const changed = checkForChanges( listingAsMap );
if ( changed !== '' && !confirm( mw.format( translate( 'cancelMessage' ), changed ) ) ) {
e.preventDefault();
}
}
}
});
$( `.${clPrefix}-dialog` ).attr( { [ `${dataPrefix}-version` ]: SYSTEM.version,
[ `${dataPrefix}-lang` ]: `${SYSTEM.wikiLang}-${window[ SYSTEM.listingEditor ].LANG}` });
window.scroll(pageX, pageY);
var windowHeight = windw.height();
if ( windowHeight < 720 ) {
var fontSize = parseFloat( $( `.${clPrefix}-dialog` ).css( 'font-size' ) );
$( `.${clPrefix}-dialog` )
.css( 'font-size', fontSize * windowHeight / 720 );
fontSize = parseFloat( $( '.chosen-container' ).css( 'font-size' ) );
$( '.chosen-container' )
.css( 'font-size', fontSize * windowHeight / 720 );
}
};
/** Commented-out listings can result in the wrong listing being edited, so
strip out any comments and replace them with placeholders that can be
restored prior to saving changes.
*/
var stripComments = function( text ) {
// /s supports line break characters in .*
var regex = [ /<!--.*?-->/gs, /<nowiki>.*?<\/nowiki>/gis, /<pre>.*?<\/pre>/gis ],
comments, i, j, rep;
for ( j = 0; j < regex.length; j++ ) {
comments = text.match( regex[ j ] );
if ( comments )
for ( i = 0; i < comments.length; i++ ) {
rep = `<<<COMMENT${i};${j}>>>`;
text = text.replace(comments[ i ], rep);
replacements[rep] = comments[ i ];
}
}
return text;
};
// Search the text provided, and if it contains any text that was
// previously stripped out for replacement purposes, restore it.
var restoreComments = function(text, resetReplacements) {
for ( var key in replacements )
text = text.replace(key, replacements[key]);
if ( resetReplacements )
replacements = {};
return text;
};
// Logic invoked on form submit to analyze the values entered into the
// editor form and to block submission if any fatal errors are found.
var validateForm = function() {
var validationFailureMessages = [];
for ( var f of Callbacks.VALIDATE_FORM_CALLBACKS )
f( validationFailureMessages );
if ( validationFailureMessages.length ) {
alert( validationFailureMessages.join( '\n' ) );
return false;
}
return true;
};
/** Convert the listing editor form entry fields into wiki text. This
method converts the form entry fields into a listing template string,
replaces the original template string in the section text with the
updated entry, and then submits the section text to be saved on the
server.
*/
var getValues = function( listing ) {
var l = $.extend( true, {}, listing ), val;
for ( var parameter in getAllParams() ) {
val = ELEMENTS[ parameter ].val();
if ( val )
l[ parameter ] = val;
else
l[ parameter ] = null;
}
return l;
};
var formToText = function( isEditMode, listingWikiSyntax, listingAsMap,
sectionNumber, withCallbacks, isListing ) {
var listing = getValues( listingAsMap );
if ( withCallbacks )
for ( var f of Callbacks.SUBMIT_FORM_CALLBACKS )
f( listing, listingAsMap, isEditMode );
var text = listingToStr( listing, isListing ),
summary = editSummarySection(),
name = listingAsMap.name;
if ( listing.name.trim() !== '' )
name = listing.name.trim();
if ( isEditMode )
summary = updateSectionTextWithEditedListing( summary, text,
listingWikiSyntax, name, isListing );
else
summary = updateSectionTextWithAddedListing( summary, text, listing, name );
if ( $( SELECTORS.editorSummary ).val() !== '' )
summary += ' – ' + $( SELECTORS.editorSummary ).val();
var minor = $( SELECTORS.editorMinorEdit ).is(':checked') ? true : false;
saveForm(summary, minor, sectionNumber, '', '');
};
// Preview
var showPreview = function( listingAsMap, isListing ) {
$( `#${clPrefix}-preview-text` ).html( '' );
var text = listingToStr( getValues( listingAsMap ), isListing );
$( `#${clPrefix}-preview-syntax` ).text( text );
$.ajax({
url: SYSTEM.Wikivoyage_API,
data: {
action: 'parse',
prop: 'text',
contentmodel: 'wikitext',
format: 'json',
text: text
},
success: function( data ) {
$( `#${clPrefix}-preview-text` ).html( data.parse.text[ '*' ] );
},
error: function() {
$( `#${clPrefix}-preview-text` ).html( translate( 'previewError' ) );
},
});
};
// For cancel button: check if any changes were made for warning msg.
var checkForChanges = function( listingAsMap ) {
var changes = [], i, p, val;
for ( var parameter in getAllParams() ) {
p = listingAsMap[ parameter ];
val = ELEMENTS[ parameter ].val();
if ( val ) {
if ( typeof( val ) === 'string' ) {
p = p || '';
if ( parameter !== 'lastedit' && val.trim() !== p ) {
changes.push( parameter );
}
} else { // multiple select
p = p || [];
if ( val.length !== p.length ) {
changes.push( parameter );
} else {
for ( i = 0; i < val.length; i++ )
if ( !p.includes( val[ i ] ) ) {
changes.push( parameter );
}
}
}
}
}
return changes.join( ', ' );
};
// Begin building the edit summary by trying to find the section name.
var editSummarySection = function() {
var sectionName = getSectionName();
return ( sectionName.length ) ? `/* ${sectionName} */ ` : '';
};
var getSectionName = function() {
var HEADING_REGEX = /^=+\s*([^=]+)\s*=+\s*\n/,
result = HEADING_REGEX.exec(sectionText);
return ( result !== null ) ? result[ 1 ].trim() : '';
};
/** After the listing has been converted to a string, add additional
processing required for adds (as opposed to edits), returning an
appropriate edit summary string.
*/
var updateSectionTextWithAddedListing = function( originalEditSummary, listingWikiText, listing, name ) {
var summary = originalEditSummary + mw.format( translate( 'added' ), name );
// add the new listing to the end of the section. if there are
// sub-sections, add it prior to the start of the sub-sections.
var index = sectionText.indexOf('===');
if (index === 0)
index = sectionText.indexOf('====');
if (index > 0)
sectionText = sectionText.substr(0, index) + '* ' + listingWikiText +
'\n' + sectionText.substr(index);
else
sectionText += '\n'+ '* ' + listingWikiText;
sectionText = restoreComments( sectionText, true );
return summary;
};
/** After the listing has been converted to a string, add additional
processing required for edits (as opposed to adds), returning an
appropriate edit summary string.
*/
var updateSectionTextWithEditedListing = function( originalEditSummary,
listingWikiText, listingWikiSyntax, name, isListing ) {
var summary = originalEditSummary;
// '$&' like in '$ ' will be misinterpreted in regex replacements
listingWikiSyntax = listingWikiSyntax.replace( /\$&/ig, '$&');
sectionText = sectionText.replace( /\$&/ig, '$&');
listingWikiText = listingWikiText.replace( /\$&/ig, '$&');
if ( $( SELECTORS.editorDelete ).is( ':checked' ) ) {
summary += mw.format( translate( 'removed' ), name );
var listRegex = new RegExp('(\\n+[\\:\\*\\#]*)?\\s*' + replaceSpecial( listingWikiSyntax ));
sectionText = sectionText.replace( listRegex, '' );
} else {
summary += mw.format( translate( isListing ? 'updated' : 'updatedMarker' ), name );
sectionText = sectionText.replace( listingWikiSyntax, listingWikiText );
}
sectionText = restoreComments(sectionText, true).replace( /$/ig, '$$' ); // restore $
return summary;
};
// Render a dialog that notifies the user that the listing editor is
// loaded or changes are being saved.
var closeForm = function(selector) {
if ( $(selector).length )
$(selector).dialog('destroy').remove();
};
var progressForm = function(selector, text) {
// if a progress dialog is already open, get rid of it
closeForm(selector);
var progress = $(`<div id="${selector.substring(1)}">${text}</div>`);
progress.dialog({
modal: true,
height: 110,
width: 300,
title: ''
});
$('.ui-dialog-titlebar').hide();
};
/** Execute the logic to post listing editor changes to the server so that
they are saved. After saving the page is refreshed to show the updated
article.
*/
var saveForm = function(summary, minor, sectionNumber, cid, answer) {
var editPayload = {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: sectionNumber,
text: sectionText,
summary: summary,
tags: ( SYSTEM.isLoggedIn && Config.MISC.useEditTags ) ? Config.MISC.editTags : null,
captchaid: cid,
captchaword: answer
};
if ( minor )
editPayload.minor = 'true';
api.postWithToken(
"csrf",
editPayload
).done(function(data, jqXHR) {
if (data && data.edit && data.edit.result == 'Success') {
// since the listing editor can be used on diff pages, redirect
// to the canonical URL if it is different from the current URL
var canonicalUrl = $("link[rel='canonical']").attr("href"),
currentUrlWithoutHash = window.location.href.replace(window.location.hash, "");
if (canonicalUrl && currentUrlWithoutHash != canonicalUrl) {
var sectionName = mw.util.escapeIdForLink(getSectionName());
if (sectionName.length)
canonicalUrl += "#" + sectionName;
window.location.href = canonicalUrl;
} else
window.location.reload();
} else if (data && data.error) {
saveFailed(translate( 'submitApiError' ) + ' "' + data.error.code + '": ' + data.error.info );
} else if (data && data.edit.spamblacklist) {
saveFailed(translate( 'submitBlacklistError' ) + ': ' + data.edit.spamblacklist );
} else if (data && data.edit.captcha) {
closeForm( SELECTORS.saveForm );
captchaDialog(summary, minor, sectionNumber, data.edit.captcha.url, data.edit.captcha.id);
} else
saveFailed(translate( 'submitUnknownError' ));
}).fail(function(code, result) {
if (code === "http")
saveFailed(translate( 'submitHttpError' ) + ': ' + result.textStatus );
else if (code === "ok-but-empty") {
saveFailed(translate( 'submitEmptyError' ));
} else
saveFailed(translate( 'submitUnknownError' ) + ': ' + code );
});
progressForm( SELECTORS.saveForm, translate( 'saving' ) );
};
/** If an error occurs while saving the form, remove the "saving" dialog,
restore the original listing editor form (with all user content), and
display an alert with a failure message.
*/
var saveFailed = function(msg) {
closeForm( SELECTORS.saveForm );
$( SELECTORS.editorForm ).dialog('open');
alert(msg);
};
/** If the result of an attempt to save the listing editor content is a
Captcha challenge then display a form to allow the user to respond to
the challenge and resubmit.
*/
var captchaDialog = function(summary, minor, sectionNumber, captchaImgSrc, captchaId) {
// if a captcha dialog is already open, get rid of it
closeForm( SELECTORS.captchaForm );
var captcha = $(`<div id="${SELECTORS.captchaForm.substring(1)}">`).text(translate( 'externalLinks' ));
var image = $('<img class="fancycaptcha-image">')
.attr('src', captchaImgSrc)
.appendTo(captcha);
var label = $('<label for="input-captcha">').text(translate( 'enterCaptcha' )).appendTo(captcha),
input = $('<input id="input-captcha" type="text">').appendTo(captcha);
captcha.dialog({
modal: true,
title: translate( 'enterCaptcha' ),
buttons: [
{
text: translate( 'submit' ), click: function() {
saveForm(summary, minor, sectionNumber, captchaId, $('#input-captcha').val());
$(this).dialog('destroy').remove();
}
},
{
text: translate( 'cancel' ), click: function() {
$(this).dialog('destroy').remove();
}
}
]
});
};
// remove controls and illegal chars
var removeCtrls = function( str, isContent ) {
str = str.trim();
if ( str === '' ) return '';
if ( displayBlock && isContent ) {
// remove controls from tags at first
str = str.replace( /(<[^>]+>)/g, function( name, offset, str ) {
return name.replace( /[\x00-\x0F\x7F]/g, ' ' );
});
str = str.replace( /[\x00-\x09\x0B\x0C\x0E\x0F\x7F]/g, ' ' );
} else
str = str.replace( /(<\/?br[^%/>]*\/*>|<\/?p[^%/>]*\/*>)/g, ' ' )
.replace( /[\x00-\x0F\x7F]/g, ' ' );
return str.trim().replace( / {2,}/g, ' ' );
};
var getAlias = function( value, aliases ) {
for ( var key in aliases )
if ( aliases[ key ] === value ) {
value = key;
break;
}
return value;
};
var listingToStr = function( listing, isListing ) {
var arr, i, l, par;
// values cleanup
for ( var parameter in listing ) {
l = listing[ parameter ];
if ( l ) {
if ( typeof l == 'object' )
for ( i = l.length - 1; i >= 0 ; i-- ) {
if ( !l[ i ] || l[ i ] === '' )
l.splice( i, 1 );
}
else {
l = removeCtrls( l, parameter == 'description' )
.trim()
.replace( / {2,}/g, ' ' );
l = maskPipes( l ).replace( /\|/g, '{{!}}' ).replace( /\x00/g, '|' );
// handle punctuation marks
if ( Config.OPTIONS.withoutPunctuation.includes( parameter ) )
l = l.replace( /[.,;!?]+$/, '' );
if ( parameter === 'description' && l !== '' && !l.match( /[.!?]$/ ) )
l = l + '.';
}
listing[ parameter ] = l;
}
}
var templates = Config.TEMPLATES[ isListing ? 'listing' : 'marker' ],
saveStr = '{{' + templates[ 0 ] + ' ';
for ( parameter in getAllParams() ) {
// recognized parameters only
l = listing[ parameter ];
if ( !l ) continue;
switch( parameter ) {
case 'type':
if ( ELEMENTS.firstType !== '' )
for ( i = 0; i < l.length; i++ )
if ( l[ i ] == ELEMENTS.firstType ) {
l.splice( i, 1 );
l.unshift( ELEMENTS.firstType );
break;
}
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.typeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'group':
if ( Config.OPTIONS.CopyToTypeAliases )
l = getAlias( l, LUA_MODULES.groupAliases );
break;
case 'subtype':
// sorting subtypes by groups
l = Callbacks.sortSubtypesByGroups( l );
if ( Config.OPTIONS.CopyToTypeAliases )
for ( i = 0; i < l.length; i++ )
l[ i ] = getAlias( l[ i ], LUA_MODULES.subtypeAliases );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'show':
l = checkShowOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
break;
case 'status':
l = checkStatusOptions( l );
l = l.join( ', ' ).replace( /_/g, ' ' );
}
if ( selectComments[ parameter ] )
l = l + selectComments[ parameter ].join( '' );
par = parameter;
arr = Config.PARAM_ALIASES[ par ] || [];
// renaming parameter
if (Config.OPTIONS.CopyToAliases && arr[0] && !listing[ arr[0] ])
par = arr[0];
if ( l !== '' || Config.keepIt[ parameter ] )
saveStr += '| ' + par + ' = ' + l;
if ( !saveStr.match( /\n$/ ) ) {
saveStr = saveStr.replace(/\s+$/, '');
saveStr += !inlineListing && Config.newline[ parameter ] ?
'\n' : ' ';
}
}
if ( Config.OPTIONS.AllowUnrecognizedParameters )
// append any unexpected values
for ( parameter in listing )
if ( $.isEmptyObject( getParams( parameter ) ) && listing[ parameter ] &&
listing[ parameter ] !== '' ) {
saveStr += `| ${parameter} = ${listing[ parameter ]}`;
saveStr += inlineListing ? ' ' : '\n';
}
return inlineDetected ? saveStr.replace( /\s+$/, ' }}' ) : saveStr.replace( /\s+$/, '\n}}' );
};
// Called on DOM ready, this method initializes the listing editor and
// adds the "add/edit listing" links to sections and existing listings.
var init = function() {
addEditButtons();
addListingButtons();
};
// expose public members
return {
init,
initListingEditorDialog
};
}();
Core.init();
return {
initListingEditorDialog: Core.initListingEditorDialog
};
} ( mediaWiki, jQuery ) );
//</nowiki>
58md07mx06m6v6ys15ikrmhaidd6wgi
MediaWiki:Gadget-ListingEditor.css
8
81672
1769138
1768123
2026-04-17T05:20:56Z
RolandUnger
3
timeless icon
1769138
css
text/css
/*
Listing editor styles
Version: 2026-04-17
*/
/*
jQuery dialog UI styles
*/
body .ui-dialog .ui-dialog-titlebar {
padding: 0.9em 1em 0.6em 1em !important;
background: #f2f5f7;
}
.ui-dialog .ui-dialog-title {
font-size: 1.2em;
}
.ui-dialog .ui-dialog-buttonpane {
margin: .5em 0 0 0;
padding: .3em 1.4em .5em 1.4em;
}
.ui-widget {
font-family: 'Helvetica Neue','Nimbus Sans','Helvetica','Arial',sans-serif;
background-image: unset;
}
.ui-widget-content {
background-image: unset;
background-color: #f2f5f7 !important;
color: var(--color-base,#202122);
}
.voy-Marker #voy-listingeditor-expand {
display: none;
}
.ui-button.ui-widget.ui-state-default:hover {
border: none !important;
outline: 2px solid yellow;
box-shadow: none;
}
@media screen {
html.skin-theme-clientpref-night .ui-widget,
html.skin-theme-clientpref-night .ui-widget-content {
background-image: unset;
background-color: #333 !important;
color: #fff;
}
html.skin-theme-clientpref-night .ui-widget button {
color: darkgoldenrod;
filter: invert(100%);
}
html.skin-theme-clientpref-night .ui-widget button:hover,
html.skin-theme-clientpref-night .ui-widget button:active {
border: 2px solid lightsalmon !important;
}
html.skin-theme-clientpref-night .ui-dialog .ui-widget-header {
border-color: #666;
filter: invert(100%);
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .ui-widget,
html.skin-theme-clientpref-os .ui-widget-content {
background-image: unset;
background-color: #333 !important;
color: #fff;
}
html.skin-theme-clientpref-os .ui-widget button {
color: darkgoldenrod;
filter: invert(100%);
}
html.skin-theme-clientpref-os .ui-widget button:hover,
html.skin-theme-clientpref-os .ui-widget button:active {
border: 2px solid lightsalmon !important;
}
html.skin-theme-clientpref-os .ui-dialog .ui-widget-header {
border-color: #666;
filter: invert(100%);
}
}
/*
Listing-editor dialog styles
*/
.voy-listingeditor-dialog {
display: flex;
flex-direction: column;
max-height: 90%;
margin: 0;
font-size: .8em;
}
.voy-listingeditor-dialog #voy-listingeditor-form {
display: flex;
flex-direction: column;
padding: 0 1em 1em;
}
.voy-listingeditor-dialog a:hover, .voy-listingeditor-dialog a:focus {
text-decoration: underline;
}
#voy-listingeditor-progress-dialog, #voy-listingeditor-loading-dialog {
font-size: large;
padding-top: 22px;
text-align: center;
}
/*
Listing-editor footer CSS
*/
.voy-listingeditor-license {
width: 60%;
padding-top: 0.8em;
font-size: 0.9em;
}
.voy-listingeditor-version {
display: none;
}
#voy-listingeditor-help {
margin-right: 30px;
}
/*
Listing-editor form container CSS
*/
.voy-listingeditor-container {
margin-top: 3px;
padding-top: 2px;
max-height: 27em;
}
.voy-listingeditor-form-buttonC .voy-listingeditor-container {
overflow-y: scroll;
}
.voy-listingeditor-col {
display: block;
float:left;
margin: 0 0 0 3%;
width: 48%;
}
.voy-Marker .voy-listingeditor-col {
width: 48.5%;
}
.voy-listingeditor-col:first-child {
margin-left: 0;
}
.voy-listingeditor-col .voy-listingeditor-row:last-child > div {
padding-bottom: 0;
}
/* Use a single column at less than 640px screen width */
@media only screen and (max-width: 640px) {
.voy-listingeditor-col {
margin: 1% 0 0 0;
width: 100%;
}
}
.voy-listingeditor-form-reduced .voy-listingeditor-row-secondary {
display: none;
}
.voy-listingeditor-row {
display: flex;
flex-wrap: nowrap;
align-items: center;
width: 100%;
}
.voy-listingeditor-row > div {
width: 100%;
padding-bottom: 4px;
}
.voy-listingeditor-row > div:first-child {
width: 10em;
min-width: 10em;
padding-right: 4px;
}
.voy-listingeditor-row input[type="text"], .voy-listingeditor-row textarea {
width: 100%;
}
.voy-listingeditor-row .voy-listingeditor-input {
display: flex;
flex-wrap: nowrap;
align-items: center;
}
.voy-listingeditor-row .voy-listingeditor-row-add {
text-align: right;
white-space: nowrap;
padding-left: 0.4em;
}
.voy-listingeditor-row .voy-listingeditor-calling-code:empty, .voy-listingeditor-row .voy-listingeditor-row-add:empty {
padding-left: 0;
}
.voy-listingeditor-divider {
border-width: 1px 0 0 0;
border-color: #ccc;
margin: 10px 0;
border-style: dotted;
}
.voy-listingeditor-preview-div {
border: 1px solid #a2a9b1;
background-color: #fff;
padding: 2px 2px 1px;
height: 11em;
overflow-y: auto;
}
.voy-Marker .voy-listingeditor-preview-div {
height: 5em;
}
.voy-Marker #voy-listingeditor-preview {
margin-top: 0.5em;
}
#voy-listingeditor-preview-text p, #voy-listingeditor-preview-text .vcard {
margin-top: 0;
margin-bottom: 0;
background-color: transparent;
}
@media screen {
html.skin-theme-clientpref-night #voy-listingeditor-preview-text div,
html.skin-theme-clientpref-night #voy-listingeditor-preview-text span,
html.skin-theme-clientpref-night .voy-listingeditor-preview-div {
background-color: #282830;
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os #voy-listingeditor-preview-text div,
html.skin-theme-clientpref-os #voy-listingeditor-preview-text span,
html.skin-theme-clientpref-os .voy-listingeditor-preview-div {
background-color: #282830;
}
}
/*
Chosen plugin support
*/
.chosen-choices, .chosen-single {
border: 1px solid #909090 !important;
border-radius: 0 !important;
}
.chosen-results {
max-height: 11.5em !important;
}
@media screen {
html.skin-theme-clientpref-night .chosen-choices,
html.skin-theme-clientpref-night .chosen-single {
background-image: unset;
background-color: #282830;
}
html.skin-theme-clientpref-night .chosen-container-single .chosen-single {
color: var(--color-progressive,#36c);
}
html.skin-theme-clientpref-night .search-choice {
filter: invert(100%);
}
html.skin-theme-clientpref-night .chosen-choices li.search-field input[type="text"] {
color: #999 !important;
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .chosen-choices,
html.skin-theme-clientpref-os .chosen-single {
background-image: unset;
background-color: #282830;
}
html.skin-theme-clientpref-os .chosen-container-single .chosen-single {
color: var(--color-progressive,#36c);
}
html.skin-theme-clientpref-os .search-choice {
filter: invert(100%);
}
html.skin-theme-clientpref-os .chosen-choices li.search-field input[type="text"] {
color: #999 !important;
}
}
/*
Listing-editor form fields CSS
*/
#voy-listingeditor-dialog label {
padding-left: 0;
}
#voy-listingeditor-dialog label:hover {
cursor: help;
}
.voy-listingeditor-dialog input, .voy-listingeditor-dialog textarea, .voy-listingeditor-dialog select,
.voy-listingeditor-dialog option {
font-family: sans-serif;
font-size: 1em;
margin: 0.1em 0;
}
@media screen {
html.skin-theme-clientpref-night .voy-listingeditor-dialog input,
html.skin-theme-clientpref-night .voy-listingeditor-dialog option,
html.skin-theme-clientpref-night .voy-listingeditor-dialog select,
html.skin-theme-clientpref-night .voy-listingeditor-dialog textarea {
background-color: #282830;
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .voy-listingeditor-dialog input,
html.skin-theme-clientpref-os .voy-listingeditor-dialog option,
html.skin-theme-clientpref-os .voy-listingeditor-dialog select,
html.skin-theme-clientpref-os .voy-listingeditor-dialog textarea {
background-color: #282830;
}
}
.voy-listingeditor-dialog input, .voy-listingeditor-dialog textarea, .voy-listingeditor-dialog select {
border: 1px solid #909090;
padding: 2px 2px 1px;
box-sizing: border-box;
min-height: inherit;
}
.voy-listingeditor-dialog input:focus, .voy-listingeditor-dialog textarea:focus {
border: none !important;
outline: 2px solid #4169E1;
}
.voy-listingeditor-dialog input[type='checkbox'] {
margin-right: 4px;
}
.voy-listingeditor-dialog .voy-listingeditor-wikidata-placeholder, #voy-listingeditor-additionalSubtypes a {
background-image: url(https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Wikidata-logo.svg/64px-Wikidata-logo.svg.png);
background-repeat: no-repeat;
background-position: right 2px center;
background-size: 16px 9px;
padding-right: 20px;
}
.voy-listingeditor-wikidata-placeholder:placeholder-shown, #voy-listingeditor-additionalSubtypes a {
background-color: yellow;
}
.voy-listingeditor-changed-value {
background-color: lightblue !important;
}
.voy-listingeditor-invalid-input {
background-color: #ffdad3 !important;
border-color: #ff5f4f !important;
}
@media screen {
html.skin-theme-clientpref-night .voy-listingeditor-wikidata-placeholder:placeholder-shown,
html.skin-theme-clientpref-night #voy-listingeditor-additionalSubtypes a {
background-color: darkgreen;
}
html.skin-theme-clientpref-night .voy-listingeditor-changed-value {
background-color: darkblue !important;
}
html.skin-theme-clientpref-night .voy-listingeditor-invalid-input {
background-color: darkred !important;
border-color: salmon !important;
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .voy-listingeditor-wikidata-placeholder:placeholder-shown,
html.skin-theme-clientpref-os #voy-listingeditor-additionalSubtypes a {
background-color: darkgreen;
}
html.skin-theme-clientpref-os .voy-listingeditor-changed-value {
background-color: darkblue !important;
}
html.skin-theme-clientpref-os .voy-listingeditor-invalid-input {
background-color: darkred !important;
border-color: salmon;
}
}
#voy-listingeditor-additionalSubtypes a {
padding-left: 0.3em;
padding-top: 5px;
padding-bottom: 5px;
}
#div_type .chosen-choices, #input_group_chosen .chosen-single {
padding-left: 25px !important;
box-shadow: 20px 0 0 0 transparent inset;
}
#div_content {
padding-top: 4px;
}
.voy-listingeditor-tooltip {
border-bottom: 1px dotted;
cursor: help;
}
#input-lastedit {
width: 10.5em;
}
#span-minor {
margin-left: 0.6em;
}
#span-wikidata-wp, #span-wikidata-img, #span-wikidata-link {
margin-left: 1em;
}
#div_lastedit, #span-lasteditToday {
margin-right: 1em;
}
span#div_lastedit {
margin-left: 0;
}
#span-delete {
float: right;
margin-top: 0.2em;
}
#div_summary {
clear: both;
}
.autocomplete-thumbnail {
display: inline-block;
width: 2.5em;
height: 2.5em;
border-radius: 2px;
margin-right: 8px;
box-shadow: 0 0 1px 1px #a0a0a0;
background-size: cover;
background-repeat: no-repeat;
background-position: center;
position: relative;
top: 3px;
}
/*
Minerva support
*/
.skin-minerva .voy-listingeditor-dialog {
font-size: 80%;
}
/*
Timeless support
*/
body.skin-timeless .ui-widget {
line-height: 1em;
}
body.skin-timeless input {
margin: 0.1em 0 !important;
padding: 2px 2px 1px !important;
}
/*
Monobook support
*/
body.skin-monobook .voy-listingeditor-dialog {
font-size: 130%;
}
/*
Modern support
*/
body.skin-modern .ui-widget {
font-size: 120%;
}
/*
Add buttons with icons: changes for Minerva and Timeless skins
*/
body.skin-minerva .voy-listing-add-button {
display: inline-block;
margin: -12px 2px;
background-image: url(//upload.wikimedia.org/wikipedia/commons/thumb/5/57/OOjs_UI_icon_templateAdd-ltr.svg/96px-OOjs_UI_icon_templateAdd-ltr.svg.png);
/* See also: https://commons.wikimedia.org/wiki/OOjs_UI_icons */
background-repeat: no-repeat;
background-size: 24px;
background-position: 10px 10px;
opacity: 0.7;
width: 44px;
height: 44px;
padding-left: 44px;
overflow: hidden;
box-sizing: border-box;
}
body.skin-minerva .voy-listing-add-button:hover {
background-color: #f4f4f4;
}
body.skin-minerva .mw-editsection-bracket {
display: none;
}
body.skin-timeless .voy-listing-add-button:before {
content: '';
background-image: url(//upload.wikimedia.org/wikipedia/commons/thumb/5/57/OOjs_UI_icon_templateAdd-ltr.svg/72px-OOjs_UI_icon_templateAdd-ltr.svg.png);
background-repeat: no-repeat;
background-position: left bottom;
background-size: 18px;
margin-left: 0;
padding-left: 22px;
opacity: 0.25; /* gray background image */
}
#voy-listingeditor-form {
font-size: 1.1em;
}
#div_content-chars a {
padding: 2px 4px 3px;
border: 1px solid var(--border-color-subtle,#c8ccd1);
}
/*
Tab-dependent styles
*/
.voy-listingeditor-tabs-list {
filter: none !important;
margin-top: 0.5em;
padding: 4px 4px 0;
background-color: var(--background-color-interactive,#eaecf0);
color: var(--color-base,#202122);
}
.voy-listingeditor-tabs-list-item {
filter: none !important;
margin: 4px 4px 0;
padding: 4px 12px;
border-radius: 0;
border-top-right-radius: 2px;
border-top-left-radius: 2px;
border: none !important;
background-color: transparent;
color: inherit !important;
font-weight: 700;
}
.voy-listingeditor-dialog #voy-listingeditor-form .voy-listingeditor-tabs-list-item:hover,
.voy-listingeditor-dialog #voy-listingeditor-form .voy-listingeditor-tabs-list-item:focus {
border: none !important;
}
.voy-listingeditor-tabs-list-item:enabled:hover {
background-color: #d0d0d0;
cursor: pointer;
}
.voy-listingeditor-tabs-list-item[aria-selected="true"],
.voy-listingeditor-tabs-list-item[aria-selected="true"]:hover {
background-color: #f2f5f7;
cursor: default;
}
@media screen {
html.skin-theme-clientpref-night .voy-listingeditor-tabs-list-item:enabled:hover {
background-color: #606060;
}
html.skin-theme-clientpref-night .voy-listingeditor-tabs-list-item[aria-selected="true"],
html.skin-theme-clientpref-night .voy-listingeditor-tabs-list-item[aria-selected="true"]:hover {
background-color: #333;
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .voy-listingeditor-tabs-list-item:enabled:hover {
background-color: #606060;
}
html.skin-theme-clientpref-os .voy-listingeditor-tabs-list-item[aria-selected="true"],
html.skin-theme-clientpref-os .voy-listingeditor-tabs-list-item[aria-selected="true"]:hover {
background-color: #333;
}
}
/* F[irst]/reduced tab */
.voy-vCard .voy-listingeditor-form-buttonF .voy-listingeditor-row-secondary,
.voy-listingeditor-form-buttonF #voy-listingeditor-preview {
display: none;
}
/* C[omplete]/expanded tab */
.voy-listingeditor-form-buttonC #div_description,
.voy-listingeditor-form-buttonC #voy-listingeditor-preview {
display: none;
}
/* D[escription]/content tab */
.voy-listingeditor-form-buttonD .voy-listingeditor-container,
.voy-listingeditor-form-buttonD #voy-listingeditor-preview {
display: none;
}
.voy-listingeditor-form-buttonD #div_description {
margin-top: 5px;
}
.voy-listingeditor-form-buttonD #input-description {
height: 20em;
}
/* P[review] tab */
.voy-listingeditor-form-buttonP .voy-listingeditor-container,
.voy-listingeditor-form-buttonP #div_description {
display: none;
}
.voy-listingeditor-form-buttonP #voy-listingeditor-preview {
margin-top: 5px;
}
.voy-listingeditor-form-buttonP .voy-listingeditor-preview-div {
height: 20em;
}
.voy-Marker .voy-listingeditor-form-buttonP .voy-listingeditor-preview-div {
height: 10em;
}
dbl2p7g3s0pyvqruj6r017jm3y6wb4g
1769153
1769138
2026-04-17T06:55:51Z
RolandUnger
3
disable-content-chars
1769153
css
text/css
/*
Listing editor styles
Version: 2026-04-17
*/
/*
jQuery dialog UI styles
*/
body .ui-dialog .ui-dialog-titlebar {
padding: 0.9em 1em 0.6em 1em !important;
background: #f2f5f7;
}
.ui-dialog .ui-dialog-title {
font-size: 1.2em;
}
.ui-dialog .ui-dialog-buttonpane {
margin: .5em 0 0 0;
padding: .3em 1.4em .5em 1.4em;
}
.ui-widget {
font-family: 'Helvetica Neue','Nimbus Sans','Helvetica','Arial',sans-serif;
background-image: unset;
}
.ui-widget-content {
background-image: unset;
background-color: #f2f5f7 !important;
color: var(--color-base,#202122);
}
.voy-Marker #voy-listingeditor-expand {
display: none;
}
.ui-button.ui-widget.ui-state-default:hover {
border: none !important;
outline: 2px solid yellow;
box-shadow: none;
}
@media screen {
html.skin-theme-clientpref-night .ui-widget,
html.skin-theme-clientpref-night .ui-widget-content {
background-image: unset;
background-color: #333 !important;
color: #fff;
}
html.skin-theme-clientpref-night .ui-widget button {
color: darkgoldenrod;
filter: invert(100%);
}
html.skin-theme-clientpref-night .ui-widget button:hover,
html.skin-theme-clientpref-night .ui-widget button:active {
border: 2px solid lightsalmon !important;
}
html.skin-theme-clientpref-night .ui-dialog .ui-widget-header {
border-color: #666;
filter: invert(100%);
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .ui-widget,
html.skin-theme-clientpref-os .ui-widget-content {
background-image: unset;
background-color: #333 !important;
color: #fff;
}
html.skin-theme-clientpref-os .ui-widget button {
color: darkgoldenrod;
filter: invert(100%);
}
html.skin-theme-clientpref-os .ui-widget button:hover,
html.skin-theme-clientpref-os .ui-widget button:active {
border: 2px solid lightsalmon !important;
}
html.skin-theme-clientpref-os .ui-dialog .ui-widget-header {
border-color: #666;
filter: invert(100%);
}
}
/*
Listing-editor dialog styles
*/
.voy-listingeditor-dialog {
display: flex;
flex-direction: column;
max-height: 90%;
margin: 0;
font-size: .8em;
}
.voy-listingeditor-dialog #voy-listingeditor-form {
display: flex;
flex-direction: column;
padding: 0 1em 1em;
}
.voy-listingeditor-dialog a:hover, .voy-listingeditor-dialog a:focus {
text-decoration: underline;
}
#voy-listingeditor-progress-dialog, #voy-listingeditor-loading-dialog {
font-size: large;
padding-top: 22px;
text-align: center;
}
/*
Listing-editor footer CSS
*/
.voy-listingeditor-license {
width: 60%;
padding-top: 0.8em;
font-size: 0.9em;
}
.voy-listingeditor-version {
display: none;
}
#voy-listingeditor-help {
margin-right: 30px;
}
/*
Listing-editor form container CSS
*/
.voy-listingeditor-container {
margin-top: 3px;
padding-top: 2px;
max-height: 27em;
}
.voy-listingeditor-form-buttonC .voy-listingeditor-container {
overflow-y: scroll;
}
.voy-listingeditor-col {
display: block;
float:left;
margin: 0 0 0 3%;
width: 48%;
}
.voy-Marker .voy-listingeditor-col {
width: 48.5%;
}
.voy-listingeditor-col:first-child {
margin-left: 0;
}
.voy-listingeditor-col .voy-listingeditor-row:last-child > div {
padding-bottom: 0;
}
/* Use a single column at less than 640px screen width */
@media only screen and (max-width: 640px) {
.voy-listingeditor-col {
margin: 1% 0 0 0;
width: 100%;
}
}
.voy-listingeditor-form-reduced .voy-listingeditor-row-secondary {
display: none;
}
.voy-listingeditor-row {
display: flex;
flex-wrap: nowrap;
align-items: center;
width: 100%;
}
.voy-listingeditor-row > div {
width: 100%;
padding-bottom: 4px;
}
.voy-listingeditor-row > div:first-child {
width: 10em;
min-width: 10em;
padding-right: 4px;
}
.voy-listingeditor-row input[type="text"], .voy-listingeditor-row textarea {
width: 100%;
}
.voy-listingeditor-row .voy-listingeditor-input {
display: flex;
flex-wrap: nowrap;
align-items: center;
}
.voy-listingeditor-row .voy-listingeditor-row-add {
text-align: right;
white-space: nowrap;
padding-left: 0.4em;
}
.voy-listingeditor-row .voy-listingeditor-calling-code:empty, .voy-listingeditor-row .voy-listingeditor-row-add:empty {
padding-left: 0;
}
.voy-listingeditor-divider {
border-width: 1px 0 0 0;
border-color: #ccc;
margin: 10px 0;
border-style: dotted;
}
.voy-listingeditor-preview-div {
border: 1px solid #a2a9b1;
background-color: #fff;
padding: 2px 2px 1px;
height: 11em;
overflow-y: auto;
}
.voy-Marker .voy-listingeditor-preview-div {
height: 5em;
}
.voy-Marker #voy-listingeditor-preview {
margin-top: 0.5em;
}
#voy-listingeditor-preview-text p, #voy-listingeditor-preview-text .vcard {
margin-top: 0;
margin-bottom: 0;
background-color: transparent;
}
@media screen {
html.skin-theme-clientpref-night #voy-listingeditor-preview-text div,
html.skin-theme-clientpref-night #voy-listingeditor-preview-text span,
html.skin-theme-clientpref-night .voy-listingeditor-preview-div {
background-color: #282830;
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os #voy-listingeditor-preview-text div,
html.skin-theme-clientpref-os #voy-listingeditor-preview-text span,
html.skin-theme-clientpref-os .voy-listingeditor-preview-div {
background-color: #282830;
}
}
/*
Chosen plugin support
*/
.chosen-choices, .chosen-single {
border: 1px solid #909090 !important;
border-radius: 0 !important;
}
.chosen-results {
max-height: 11.5em !important;
}
@media screen {
html.skin-theme-clientpref-night .chosen-choices,
html.skin-theme-clientpref-night .chosen-single {
background-image: unset;
background-color: #282830;
}
html.skin-theme-clientpref-night .chosen-container-single .chosen-single {
color: var(--color-progressive,#36c);
}
html.skin-theme-clientpref-night .search-choice {
filter: invert(100%);
}
html.skin-theme-clientpref-night .chosen-choices li.search-field input[type="text"] {
color: #999 !important;
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .chosen-choices,
html.skin-theme-clientpref-os .chosen-single {
background-image: unset;
background-color: #282830;
}
html.skin-theme-clientpref-os .chosen-container-single .chosen-single {
color: var(--color-progressive,#36c);
}
html.skin-theme-clientpref-os .search-choice {
filter: invert(100%);
}
html.skin-theme-clientpref-os .chosen-choices li.search-field input[type="text"] {
color: #999 !important;
}
}
/*
Listing-editor form fields CSS
*/
#voy-listingeditor-dialog label {
padding-left: 0;
}
#voy-listingeditor-dialog label:hover {
cursor: help;
}
.voy-listingeditor-dialog input, .voy-listingeditor-dialog textarea, .voy-listingeditor-dialog select,
.voy-listingeditor-dialog option {
font-family: sans-serif;
font-size: 1em;
margin: 0.1em 0;
}
@media screen {
html.skin-theme-clientpref-night .voy-listingeditor-dialog input,
html.skin-theme-clientpref-night .voy-listingeditor-dialog option,
html.skin-theme-clientpref-night .voy-listingeditor-dialog select,
html.skin-theme-clientpref-night .voy-listingeditor-dialog textarea {
background-color: #282830;
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .voy-listingeditor-dialog input,
html.skin-theme-clientpref-os .voy-listingeditor-dialog option,
html.skin-theme-clientpref-os .voy-listingeditor-dialog select,
html.skin-theme-clientpref-os .voy-listingeditor-dialog textarea {
background-color: #282830;
}
}
.voy-listingeditor-dialog input, .voy-listingeditor-dialog textarea, .voy-listingeditor-dialog select {
border: 1px solid #909090;
padding: 2px 2px 1px;
box-sizing: border-box;
min-height: inherit;
}
.voy-listingeditor-dialog input:focus, .voy-listingeditor-dialog textarea:focus {
border: none !important;
outline: 2px solid #4169E1;
}
.voy-listingeditor-dialog input[type='checkbox'] {
margin-right: 4px;
}
.voy-listingeditor-dialog .voy-listingeditor-wikidata-placeholder, #voy-listingeditor-additionalSubtypes a {
background-image: url(https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Wikidata-logo.svg/64px-Wikidata-logo.svg.png);
background-repeat: no-repeat;
background-position: right 2px center;
background-size: 16px 9px;
padding-right: 20px;
}
.voy-listingeditor-wikidata-placeholder:placeholder-shown, #voy-listingeditor-additionalSubtypes a {
background-color: yellow;
}
.voy-listingeditor-changed-value {
background-color: lightblue !important;
}
.voy-listingeditor-invalid-input {
background-color: #ffdad3 !important;
border-color: #ff5f4f !important;
}
@media screen {
html.skin-theme-clientpref-night .voy-listingeditor-wikidata-placeholder:placeholder-shown,
html.skin-theme-clientpref-night #voy-listingeditor-additionalSubtypes a {
background-color: darkgreen;
}
html.skin-theme-clientpref-night .voy-listingeditor-changed-value {
background-color: darkblue !important;
}
html.skin-theme-clientpref-night .voy-listingeditor-invalid-input {
background-color: darkred !important;
border-color: salmon !important;
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .voy-listingeditor-wikidata-placeholder:placeholder-shown,
html.skin-theme-clientpref-os #voy-listingeditor-additionalSubtypes a {
background-color: darkgreen;
}
html.skin-theme-clientpref-os .voy-listingeditor-changed-value {
background-color: darkblue !important;
}
html.skin-theme-clientpref-os .voy-listingeditor-invalid-input {
background-color: darkred !important;
border-color: salmon;
}
}
#voy-listingeditor-additionalSubtypes a {
padding-left: 0.3em;
padding-top: 5px;
padding-bottom: 5px;
}
#div_type .chosen-choices, #input_group_chosen .chosen-single {
padding-left: 25px !important;
box-shadow: 20px 0 0 0 transparent inset;
}
#div_content {
padding-top: 4px;
}
.voy-listingeditor-tooltip {
border-bottom: 1px dotted;
cursor: help;
}
#input-lastedit {
width: 10.5em;
}
#span-minor {
margin-left: 0.6em;
}
#span-wikidata-wp, #span-wikidata-img, #span-wikidata-link {
margin-left: 1em;
}
#div_lastedit, #span-lasteditToday {
margin-right: 1em;
}
span#div_lastedit {
margin-left: 0;
}
#span-delete {
float: right;
margin-top: 0.2em;
}
#div_summary {
clear: both;
}
.autocomplete-thumbnail {
display: inline-block;
width: 2.5em;
height: 2.5em;
border-radius: 2px;
margin-right: 8px;
box-shadow: 0 0 1px 1px #a0a0a0;
background-size: cover;
background-repeat: no-repeat;
background-position: center;
position: relative;
top: 3px;
}
/*
Minerva support
*/
.skin-minerva .voy-listingeditor-dialog {
font-size: 80%;
}
/*
Timeless support
*/
body.skin-timeless .ui-widget {
line-height: 1em;
}
body.skin-timeless input {
margin: 0.1em 0 !important;
padding: 2px 2px 1px !important;
}
/*
Monobook support
*/
body.skin-monobook .voy-listingeditor-dialog {
font-size: 130%;
}
/*
Modern support
*/
body.skin-modern .ui-widget {
font-size: 120%;
}
/*
Add buttons with icons: changes for Minerva and Timeless skins
*/
body.skin-minerva .voy-listing-add-button {
display: inline-block;
margin: -12px 2px;
background-image: url(//upload.wikimedia.org/wikipedia/commons/thumb/5/57/OOjs_UI_icon_templateAdd-ltr.svg/96px-OOjs_UI_icon_templateAdd-ltr.svg.png);
/* See also: https://commons.wikimedia.org/wiki/OOjs_UI_icons */
background-repeat: no-repeat;
background-size: 24px;
background-position: 10px 10px;
opacity: 0.7;
width: 44px;
height: 44px;
padding-left: 44px;
overflow: hidden;
box-sizing: border-box;
}
body.skin-minerva .voy-listing-add-button:hover {
background-color: #f4f4f4;
}
body.skin-minerva .mw-editsection-bracket {
display: none;
}
body.skin-timeless .voy-listing-add-button:before {
content: '';
background-image: url(//upload.wikimedia.org/wikipedia/commons/thumb/5/57/OOjs_UI_icon_templateAdd-ltr.svg/72px-OOjs_UI_icon_templateAdd-ltr.svg.png);
background-repeat: no-repeat;
background-position: left bottom;
background-size: 18px;
margin-left: 0;
padding-left: 22px;
opacity: 0.25; /* gray background image */
}
#voy-listingeditor-form {
font-size: 1.1em;
}
#div_content-chars a {
padding: 2px 4px 3px;
border: 1px solid var(--border-color-subtle,#c8ccd1);
}
#input-content-chars.disable-content-chars {
filter: opacity(0.5);
}
#input-content-chars.disable-content-chars a {
pointer-events: none;
cursor: default;
text-decoration: none;
}
/*
Tab-dependent styles
*/
.voy-listingeditor-tabs-list {
filter: none !important;
margin-top: 0.5em;
padding: 4px 4px 0;
background-color: var(--background-color-interactive,#eaecf0);
color: var(--color-base,#202122);
}
.voy-listingeditor-tabs-list-item {
filter: none !important;
margin: 4px 4px 0;
padding: 4px 12px;
border-radius: 0;
border-top-right-radius: 2px;
border-top-left-radius: 2px;
border: none !important;
background-color: transparent;
color: inherit !important;
font-weight: 700;
}
.voy-listingeditor-dialog #voy-listingeditor-form .voy-listingeditor-tabs-list-item:hover,
.voy-listingeditor-dialog #voy-listingeditor-form .voy-listingeditor-tabs-list-item:focus {
border: none !important;
}
.voy-listingeditor-tabs-list-item:enabled:hover {
background-color: #d0d0d0;
cursor: pointer;
}
.voy-listingeditor-tabs-list-item[aria-selected="true"],
.voy-listingeditor-tabs-list-item[aria-selected="true"]:hover {
background-color: #f2f5f7;
cursor: default;
}
@media screen {
html.skin-theme-clientpref-night .voy-listingeditor-tabs-list-item:enabled:hover {
background-color: #606060;
}
html.skin-theme-clientpref-night .voy-listingeditor-tabs-list-item[aria-selected="true"],
html.skin-theme-clientpref-night .voy-listingeditor-tabs-list-item[aria-selected="true"]:hover {
background-color: #333;
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .voy-listingeditor-tabs-list-item:enabled:hover {
background-color: #606060;
}
html.skin-theme-clientpref-os .voy-listingeditor-tabs-list-item[aria-selected="true"],
html.skin-theme-clientpref-os .voy-listingeditor-tabs-list-item[aria-selected="true"]:hover {
background-color: #333;
}
}
/* F[irst]/reduced tab */
.voy-vCard .voy-listingeditor-form-buttonF .voy-listingeditor-row-secondary,
.voy-listingeditor-form-buttonF #voy-listingeditor-preview {
display: none;
}
/* C[omplete]/expanded tab */
.voy-listingeditor-form-buttonC #div_description,
.voy-listingeditor-form-buttonC #voy-listingeditor-preview {
display: none;
}
/* D[escription]/content tab */
.voy-listingeditor-form-buttonD .voy-listingeditor-container,
.voy-listingeditor-form-buttonD #voy-listingeditor-preview {
display: none;
}
.voy-listingeditor-form-buttonD #div_description {
margin-top: 5px;
}
.voy-listingeditor-form-buttonD #input-description {
height: 20em;
}
/* P[review] tab */
.voy-listingeditor-form-buttonP .voy-listingeditor-container,
.voy-listingeditor-form-buttonP #div_description {
display: none;
}
.voy-listingeditor-form-buttonP #voy-listingeditor-preview {
margin-top: 5px;
}
.voy-listingeditor-form-buttonP .voy-listingeditor-preview-div {
height: 20em;
}
.voy-Marker .voy-listingeditor-form-buttonP .voy-listingeditor-preview-div {
height: 10em;
}
klcp5dqejl6yi27xd41dgl0s5kdywj2
Vigo
0
81768
1768991
1767974
2026-04-16T12:30:48Z
Qualitätssicherung
50648
/* Ausflüge */ + Islas Cíes
1768991
wikitext
text/x-wiki
{{quickbar Ort}}
'''Vigo''' ist eine Stadt in der [[Spanien|spanischen]] Region [[Galicien]], sie liegt in der [[Pontevedra (Provinz)|Provinz Pontevedra]]
== Hintergrund ==
Vigo liegt an der tief eingeschnittenen Meeresbucht Ría de Pontevedra und verfügt über einen bedeutenden Fischereihafen.
== Anreise ==
{{Mapframe|42.2317|-8.7211|zoom=12}}
=== Mit dem Flugzeug ===
Der {{Marker|type = airport|name = Flughafen Vigo|wikidata = Q1416876}} liegt etwa 10 km östlich der Stadt.
=== Mit der Bahn ===
Vom {{Marker|type = train|wikidata = Q3330602|name = Bahnhof Vigo Guixar}} gibt es Verbindungen des Regionalverkehrs nach [[Pontevedra]], [[Ourense]], [[Santiago de Compostela]] und [[Porto]]. Die Hochgeschwindigkeitszüge der '''[[w:Alta Velocidad Española|AVE]]''' fahren zum {{Marker|type=train|name = Bahnhof Vigo Urzáiz|wikidata = Q3320436}}.
=== Mit dem Bus ===
=== Auf der Straße ===
=== Mit dem Schiff ===
Der Hafen von Vigo wird regelmäßig von Kreuzfahrtschiffen angelaufen, diese legen am {{Marker|name=Kreuzfahrtterminal|type=ship|wikidata=Q126407032}} an.
<!-- === Mit dem Fahrrad (optional) === -->
<!-- === Zu Fuß (optional) === -->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard | type = church | name = Concatedral de Santa María | wikidata = Q2942858 | lastedit = 2017-08-31 | description = }}
* {{vCard | name = Rathaus | type = town hall | wikidata = Q112814204 | description = Gebäude im Stil des Brutalismus.
}}
* {{vCard | name = Monumento a Jules Verne | type = monument | wikidata = Q51954713 | description = Skulptur an der Hafenpromenade, zeigt den Schriftsteller Jules Verne auf einem Oktopus sitzend.
}}
* {{vCard | type = museum | alt = MARCO | name = Museo de Arte Contemporánea | wikidata = Q3395689 | url = http://www.marcovigo.com/ | address = Rúa do Príncipe, 54 | phone = +34 986 11 39 00 | lastedit = 2017-08-31 | description = }}
* {{vCard | type = museum | name = Museo de Mar de Galicia | wikidata = Q1394017| alt = Meeresmuseum | url = y | address = Av. da Atlántida, 160 | phone = +34 986 24 77 50 | lastedit = 2017-09-01 | description = }}
* {{vCard | type = castle | name = Castelo do Castro | wikidata = Q20547833 | url = https://hoxe.vigo.org/movemonos/np_castro.php?lang=cas | address = Paseo Rosalía de Castro, 5 | phone = +34 986 81 01 00 | lastedit = 2017-08-31 | description = }}
* {{vCard | type = zoo | name = ZOO Vigo | wikidata = Q933612 | url = http://www.vigozoo.com/spa/default.asp | address = Plaza de Los Leones, s/n | phone = +34 986 26 77 83 | lastedit = 2017-08-31 | description = }}
* {{vCard | type = church | name = Nosa Señora da Guía | alt = Wallfahrtskapelle | lat = 42.255542 | long = -8.701848 | lastedit = 2017-09-01 | description = Erbaut 1952 auf der Hügelkuppe des Monte da Guía }}
== Aktivitäten ==
* {{vCard | type = beach | name = Praia do Cocho | lat = 42.224227 | long = -8.769164 | lastedit = 2017-09-01 | description = }}
* {{vCard | type = beach | name = Praia de Santa Baia | lat = 42.223107 | long = -8.767136 | lastedit = 2017-09-01 | description = }}
* {{vCard | type = beach | name = Praia de Alcabre | lat = 42.223369 | long = -8.764218 | lastedit = 2017-09-01 | description = }}
* {{vCard | name = Praia da Manquiña | type = beach | wikidata = Q28119364
}}
* {{vCard | name = Praia da Logos | type = beach | wikidata = Q28119363
}}
== Einkaufen ==
* {{vCard | name = A Laxe | type = mall | wikidata = Q73137913 | description = Einkaufszentrum am Hafen, u.a. MediaMarkt, BurgerKing etc.
}}
== Küche ==
== Nachtleben ==
== Unterkunft ==
* {{vCard | type = hotel | name = Hotel Aguila | url = http://www.hotelaguila.com/ | address = Calle Victoria, 6 | lat = 42.238862 | long = -8.724266 | phone = +34 986 43 13 98 | lastedit = 2017-09-01 | description = }}
* {{vCard | type = hotel | name = Hotel Vigo Plaza | url = https://www.hotelvigoplaza.com/ | address = Calle del Progreso, 13 | lat = 42.235851 | long = -8.724255 | phone = +34 986 22 82 43 | lastedit = 2017-09-01 | description = }}
* {{vCard | name = Hotel Zenit Vigo | type = hotel | wikidata = Q111389342 | url = https://vigo.zenithoteles.com/de/ | address = Av. da Gran Vía, 1 | phone = +34 986 41 72 55 | lastedit = 2017-09-01
}}
== Gesundheit ==
== Praktische Hinweise ==
* {{vCard | type = tourist information | name = Centro de Recepción de Visitantes de Turismo de Vigo | url = https://www.turismodevigo.org/ | address = Rúa Cánovas del Castillo, 3 | lat = 42.240514 | long = -8.725897 | phone = +34 986 22 47 57 | lastedit = 2017-09-01 | description = }}
== Ausflüge ==
;in Spanien
* [[Pontevedra]] - 65 km.
* [[Santiago de Compostela]] - 90 km
* [[Ourense]] - 100 km
* {{marker|name=Nationalpark Islas Atlánticas de Galicia|type=nature reserve|lat=|long= |wikidata=Q1628126}}, Teil der Küstenlinie der [[Rías Baixas]] mit ihren vorgelagerten Inseln. Vor dem Besuch muß man eine [https://autorizacionillasatlanticas.xunta.gal/illasr/inicio kostenfreie Erlaubnis] beantragen, was maximal neunzig Tage im voraus möglich ist. Den Code muß man vorlegen, um die Fahrkarte der Fähre von Vigo auf die Insel {{marker|type=island|name=[[Pontevedra (Provinz)#Islas Cíes|Monteagudo]]|alt=Überfahrt 45 Min.|lat=|long=|name-local=y|wikidata=Q97477588}} kaufen zu dürfen.
;in Portugal
* [[Viana do Castelo]] - 100 km
* [[Braga]] - 110 km
== Literatur ==
== Weblinks ==
* {{Offizielle Webseite}}
{{class-2}}
{{GeoData| lat= 42.231356 | long= -8.712447 | radius= }}
{{IstInKat|Pontevedra (Provinz)}}
8itz0ke7p5ul1gia8fmuhfb7xgjnezs
Esperance
0
81909
1769007
1644714
2026-04-16T13:21:32Z
Wowo2024
53507
1769007
wikitext
text/x-wiki
{{Autoquickbar Ort
| Bild=
| Karte = au-wa
| TouriInfoWeb=
| TouriInfoTel=
}}
'''{{<includeonly>subst:</includeonly>PAGENAME}}''' ist eine Kleinstadt im [[Südliches Westaustralien|südlichen]] [[Westaustralien]], sie liegt in der Region '''[[w:Goldfields-Esperance|Goldfields-Esperance]]''' an der Küste der '''Esperance Bay'''
== Hintergrund ==
Der Name der Stadt geht zurück auf das französische Schiff „L'Espérance“, das im Jahr 1792 hier ankerte.
== Anreise ==
{{mapframe|-33.86|121.89|zoom= 14}}
=== Mit dem Flugzeug ===
* {{vCard|type= airport |name= Esperance Airport |wikidata=Q2339306 |address=Coolgardie-Esperance Hwy, Gibson WA 6448 |phone=|email=|fax=|url= https://www.esperance.wa.gov.au/airport |hours=|price=|lat= -33.682366|long= 121.830896|lastedit=|description= Es gibt täglich Flüge von und nach [[Perth]]}}
=== Mit der Bahn ===
=== Mit dem Bus ===
=== Auf der Straße ===
Von [[Albany (Australien)|Albany]] sind es auf dem [[National Highway 1]] ({{RSIGN|AU|NA|1}}) 485 km nach Esperance, von hier nach [[w:Norseman|Norseman]] Richtung Norden 204 km.
=== Mit dem Schiff ===
Esperance verfügt über einen Industriehafen, er liegt etwas südlich der Stadt. Hier können auch Kreuzfahrtschiffe anlegen, dann fahren die Besucher entweder mit Shuttle-Bussen oder mit Taxis in die Stadt. Wenn die Schiffe in der Bucht vor Anker gehen, müssen die Touristen mit Tenderbooten zum {{Marker|type = port|name = Taylor Street Pier|lat = -33.865884 |long = 121.894505}} gebracht werden.
<!-- === Mit dem Fahrrad (optional) === -->
<!-- === Zu Fuß (optional) === -->
== Mobilität ==
== Sehenswürdigkeiten ==
* {{vCard | type = museum | name = Esperance Museum | url = https://www.esperance.wa.gov.au/esperance-museum | address = 6 James St, Esperance WA 6450 | lat = -33.859335 | long = 121.894077 | phone = +61 8 9083 1580 | hours = tägl. 13:30 - 16:30 | price = Erw. 8,50 AUD | lastedit = 2019-06-21 | description = Sammlung von alten Maschinen und Gebrauchsgegenständen. Ein Highlight sind Überreste der 1979 abgestürzten Weltraumstation [[w:Skylab|Skylab]], deren Trümmer teilweise in der näheren Umgebung niedergingen. An das Museum schließt sich das ''Esperance Museum Village'' an, ein Freilandmuseum bestehend aus mehreren historischen Gebäuden. Zweimal im Monat findet hier ein Markt statt.}}
* Der '''Great Ocean Drive''' ist ein 40 km langer Rundkurs, er führt vom Stadtzentrum vorbei am ''Taylor Street Jetty'', weiter auf der ''Twilight Beach Road'' an der Küste entlang zum ''Observatory Point'', dann zum ''Eleven Mile Beach'' und landeinwärts zum ''Pink Lake Lookout'', schließlich auf der ''Pink Lake Road'' wieder zurück.
* {{vCard | type = monument | name = Observatory Point | lat = -33.907786 | long = 121.794126 | directions = an der Twilight Beach Road | lastedit = 2019-06-21 | description = Aussichtspunkt mit Blick über die Küste und zur Insel ''Observatory Island''. 1792 suchten die französischen Schiffe hier Schutz vor den Stürmen. }}
* '''Esplanade''': Die Uferstraße erstreckt sich an der Küste entlang und bietet gute Aussicht über den Hafen und die vorgelagerten Inseln. Sehenswert das Stück vom alten {{Marker|type = see|name = Tanker-Steg|lat = -33.851770|long = 121.900663}} bis zum {{Marker|type = park|name = Adventureland Park|lat = -33.867354, 121.892977}}. In der Nähe des Museums findet man eine Walschwanz-Skulptur.
* {{Marker | type = see | name = Pink Lake | lat = -33.844426 | long = 121.846935|zoom = 13}}. Salzsee, dessen Salz durch Algen einen pinkfarbenen Schimmer haben kann.
== Aktivitäten ==
;Baden, Schnorcheln, Surfen:
* {{vCard|type=beach |name=Blue Haven Beach |address= 309 Twilight Beach Rd, West Beach WA 6450 |phone=|email=|fax=|url=|hours=|price=|lat= -33.886831 |long= 121.861259 |lastedit=|description=}}
* {{vCard | type = beach | name = Twilight Cove | lat = -33.895368 | long = 121.822029 | lastedit = 2019-06-20 | description = }}
* {{vCard | type = beach | name = Fourth Beach | wikidata = Q21955712 | lat = -33.888279 | long = 121.849577 | lastedit = 2019-06-20 | description = }}
* {{vCard | type = beach | name = Observatory Beach | lat = -33.902609 | long = 121.779869 | lastedit = 2019-06-20 | description = }}
== Küche ==
<!-- evtl. unterteilen in günstig, mittel und gehoben -->
== Nachtleben ==
== Unterkunft ==
<!-- evtl. unterteilen in günstig, mittel und gehoben -->
<!-- == Lernen ==
== Arbeiten ==
== Sicherheit == -->
== Gesundheit ==
* {{vCard | type = clinic | name = Esperance Hospital | url = https://www.aihw.gov.au/reports-data/myhospitals/hospital/h0689 | address = Hicks St, Esperance WA 6450 | lat = -33.855861 | long = 121.892339 | phone = +61 8 9079 8000 | lastedit = 2019-06-20 | description = -33.855861, 121.892339 }}
== Praktische Hinweise ==
* {{vCard | type = tourist information | name = Esperance Visitor Centre | url = https://www.visitesperance.com/ | lat = -33.857241 | long = 121.895514 | phone = +61 8 9083 1555 | lastedit = 2019-06-20 | description = }}
=== Klima ===
Mediterranes Klima, die Sommer sind heiß und trocken, die Winter sind kühl und feucht
{{Klimatab-col
| sourcetext = Bureau of Meteorology, Australia, Daten: 1969–2002
| sourcelink = [http://wetterkontor.de/de/klima/klima2.asp?land=au&stat=94638 wetterkontor.de]
<!-- {{Internetquelle | url=http://worldweather.wmo.int/185/c00399.htm | titel=Klimainformationen Esperance| autor=Bureau of Meteorology, Australia | hrsg=World Meteorological Organization | zugriff=2012-04-06}}-->
| ort = Esperance, Westaustralien
<!-- durchschnittliche Höchsttemperatur für den jeweiligen Monat in °C -->
| xt=1 | xtjan = 26.3 | xtfeb = 26.2 | xtmar = 25.1 | xtapr = 23.2 | xtmai = 20.3 | xtjun = 17.9 | xtjul = 17.1 | xtaug = 17.7 | xtsep = 19.3 | xtoct = 21.0 | xtnov = 23.0 | xtdec = 24.5
<!-- durchschnittliche Niedrigsttemperatur für den jeweiligen Monat in °C -->
| nt = 1 | ntjan = 15.6 | ntfeb = 16.0 | ntmar = 15.0 | ntapr = 13.1 | ntmai = 11.0 | ntjun = 9.0 | ntjul = 8.3 | ntaug = 8.6 | ntsep = 9.6 | ntoct = 10.6 | ntnov = 12.6 | ntdec = 14.3
<!-- durchschnittliche Niederschlagsmenge für den jeweiligen Monat in mm -->
| rm = 1 | rmjan = 21.4 | rmfeb = 28.1 | rmmar = 30.0 | rmapr = 42.3 | rmmai = 76.1 | rmjun = 81.3 | rmjul = 97.8 | rmaug = 84.8 | rmsep = 58.2 | rmoct = 48.6 | rmnov = 35.1 | rmdec = 18.1
<!-- durchschnittliche Regentage für den jeweiligen Monat in d -->
| rd = 1 | rdjan = 5.8 | rdfeb = 5.6 | rdmar = 7.6 | rdapr = 10.4 | rdmai = 14.2 | rdjun = 16.1 | rdjul = 17.2 | rdaug = 16.8 | rdsep = 14.2 | rdoct = 12.0 | rdnov = 9.7 | rddec = 6.6
<!-- durchschnittliche Luftfeuchtigkeit für den jeweiligen Monat in % -->
| rh = 1 | rhjan = 67 | rhfeb = 68 | rhmar = 70 | rhapr = 72 | rhmai = 74 | rhjun = 75 | rhjul = 76 | rhaug = 74 | rhsep = 73 | rhoct = 71 | rhnov = 70
| rhdec = 67
}}
== Ausflüge ==
;Nationalparks
* {{vCard | type = national park | name = Fitzgerald River National Park |wikidata= Q1421348| directions = Etwa auf halber Strecke zwischen Albany und Esperance zwischen Highway 1 und dem Meer | description = 3300 km². Wegen zahlreicher autochtoner Orchideen, 200 Vogelarten sowie 22 Säugettierarten UNESCO Biosphärenreservat. Nur unbefestigte Straßen. Im Park zwei Campingplätze (A$ 12-15) und ein Motel. }}
* {{vCard | type = national park | name = Cape-Le-Grand-Nationalpark | wikidata = Q1034253 | description = }}
* {{vCard | type = national park | name = Cape-Arid-Nationalpark | wikidata = Q442279 | description = }}
* {{vCard | type = national park | name = Goldfields-Woodlands-Nationalpark | wikidata = Q1535662 | description = }}
* {{vCard | type = national park | name = Frank-Hann-Nationalpark | wikidata = Q1130061 | description = }}
== Literatur ==
== Weblinks ==
{{class-2}}
{{GeoData| lat= -33.866667 | long= 121.883333 | radius= }}
{{IstInKat|Südliches Westaustralien}}
pd61alv0otbj5wzwo0assy1mv6l2r3q
Kununurra
0
81934
1769006
1745553
2026-04-16T13:19:33Z
Wowo2024
53507
1769006
wikitext
text/x-wiki
{{quickbar Ort
| Höhe=
| Bild=[[Bild:Kununurra-town.png|292px|]]
| Provinz=Western Australia
| ProvinzLabel=
| Einwohner=
| TouriInfoWeb=[http://www.visitkununurra.com visitkununurra.com]
| TouriInfoTel=
}}
'''Kununurra''' ist eine Stadt in Kimberly-Region des [[Nördliches Westaustralien|nördlichen]] [[Westaustralien]]. Sie liegt am [[Victoria Highway (Australien)|Victoria Highway]].
== Hintergrund ==
[[Bild:Sandelholzplantagen Kununurra.JPG|thumb|[[w:Sandelholz|Sandelholzplantagen]] am Ord River bei Kununurra.]]
{{vCard | type = city | name = Visitor Centre | url = http://www.visitkununurra.com/ | lat = -15.772722 | long = 128.739083 | hours = 8.30-16.30, Sa.+So. bis 14.00 | description = }}
Beste Reisezeit ist die “Dry.” Im schwül-heißen November bieten Reiseveranstalter ihre Touren vielfach zum halben Preis. Viele regelmäßige Touren werden während der “Wet” komplett eingestellt. In dieser Region liegen die Tageshöchsttemperaturen ganzjährig bei 32-37 °C.
Wirtschaftlich bedeutend ist für dem Ort neben dem Tourismus, die [[w:Argyle-Diamantenmine|Argyle-Diamantenmine]]. Das große Loch kann in organisierten Tagesausflügen besichtigt werden (Buchung im Kununurra Visitor Centre).
== Anreise ==
{{Maps|-15.773842|128.738544|14|M|Kununurra.}}
=== Mit dem Flugzeug ===
{{vCard | type = airport | name = East Kimberley Regional Airport | lat = -15.783778 | long = 128.7125 | description = Hat Verbindungen nach [[Perth]], [[Darwin]] und [[Broome (Westaustralien)|Broome]]. }}
=== Mit dem Bus ===
'''[https://www.greyhound.com.au Greyhound Australia]''' hat das Monopol auf der Strecke Broome–Katherine–Darwin.
=== Auf der Straße ===
Die einzige Fernstraße ist der in Ost-West-Richtung verlaufende Victoria-Highway.
== Mobilität ==
Es gibt keinen öffentlichen Nahverkehr. Ziele in der Umgebung erreicht man nur als Selbstfahrer mit Allrad oder über Touren, die lokale Veranstalter anbieten.
== Sehenswürdigkeiten ==
* {{vCard | type = museum | name = Historical Museum | url = https://www.kununurra.org.au/ | lat = -15.775333 | long = 128.737389 | hours = tgl. 12-30-17.30 | description = }}
* {{vCard | type = viewpoint | name = Mount Cyril | address = 44 Weaber Plain Rd | lat = -15.771722 | long = 128.746417 | description = Aussichtspunkt }}
* {{vCard | type = lake | name = Lily Creek Lagoon | lat = -15.789528 | long = 128.737361 | description = Feuchtgebiet mit zahlreichen Vögeln, aber auch Krokodilen. }}
* {{vCard | type = botanical garden | name = Kununurra Arboretum | lat = -15.777583 | long = 128.729667 | description = }}
* {{vCard|type=see |name=Kelly’s Knob |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Aussichtspunkt auf einem Hügel ca. 3 km nördlich der City, mit schönem Blick über die Stadt.}}
* {{vCard|type=bridge |name=Ord River Bridge |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Straßenbrücke am westlichen Ende der Stadt mit schönem Blick auf den Ord River. Fotos sollte man allerdings nur vom Straßenrand vor/nach der Brücke schießen, weil Anhalten auf der Brücke (außer an Ampeln bei Baustellen) strafbar ist.}}
== Aktivitäten ==
Outdoor, Ausflüge in die Kimberly-Region mit ihren Nationalparks. '''Touren:''' Im Visitor Center sowie diversen, örtlichen Reiseunternehmen kann man Bootstouren, Flüge und ein- bis mehrtägige Allrad-Touren zur Zebra Stone Mine, dem Lake Argyle, dem Purnululu Nationalpark, zum Kimberley-Plateau, Angelausflüge, etc. buchen.
[[File:2012-10-Mirima-05.jpg|thumb|Mirima (Hidden Valley) Nationalpark.]]
Direkt am Stadtrand ist der {{vCard | type = national park | name = Hidden Valley (Mirima) Nationalpark | url = https://parks.dpaw.wa.gov.au/park/mirima | lat = -15.773056 | long = 128.762778 | description = 2086 Hektar ist ein kleines, verstecktes Tal am nordöstlichen Ende der Stadt mit einigen kurzen, überwiegend schattigen Wanderwegen (je ca. 15-40 Minuten). Sehenswert ist die Gebirgskette aus orangerotem Sandstein und einigen runden, Bienenkörben ähnlichen Sandsteinkuppen. Es fanden sich auch Felszeichnungen der ''Miriwoong''-Abos. Mindestens solte man 3-4 Stunden einplanen, aber man kann auch gut einen ganzen Tag hier verbringen. Große Teile des Parks sind auch per Rollstuhl zugänglich. }}
== Einkaufen ==
Kununurra ist das Versorgungszentrum einer großen Region. Neben Lebensmittelhändlern sind besonders Geschäfte für KfZ-Bedarf gut vertreten.
<!-- == Küche ==
-->
== Nachtleben ==
Pubs.
== Unterkunft ==
;Camping
* {{vCard | type = caravan site | name = Discovery Parks | url = https://www.discoveryholidayparks.com.au/wa/east_kimberley/lake_kununurra | address = Lakeview Dr. | lat = -15.791528 | long = 128.720972 | phone = +61 8 9168 1031 | price = Stellplätze A$ 36-53 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Hidden Valley Caravan Park | url = http://www.hiddenvalleytouristpark.com/ | address = 110 Weaber Plain Rd. | lat = -15.766222 | long = 128.747333 | hours = Rezeption 8.00-17.00 | price = Stellplätze: A$ 38, Hütten: A$ 125-150 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Ivanhoe Village Caravan Resort | address = 214 Coolibah Dr | lat = -15.770111 | long = 128.73075 | price = Stellplätze A$ 42-59; Hütten: A$ 200-350 | lastedit = 2017-09-10 | description = Mindestaufenthalt 2 Nächte. }} Auf der gegenüberliegenden Straßenseite ist der KAS Caravan Park.
;Jugendherbergen
* {{vCard | type = hostel | name = Kununurra Backpackers | url = http://www.kununurrabackpackers.com.au/ | address = 24 Nutwood Cres. | lat = -15.768667 | long = 128.743 | phone = +61 8 9169 1998 | price = Schlafsaal A$ 25-29, pro Woche 140-165. Doppel A$ 65 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hostel | name = Kimberley Croc (YHA) | url = http://kimberleycroc.com.au/ | address = 120 Konkerberry Dr. | lat = -15.768667 | long = 128.743 | phone = +61 8 9168 2702 | price = Schlafsaal A$ 24-28 (Nicht-Mitglieder +3 A$), Deluxe-Doppel: A$ 90-99. Günstigere Wochentarife | lastedit = 2017-09-10 | description = }}
;Gehoben
* {{vCard | type = hotel | name = Kununurra Lakeside Resort | url = http://lakeside.com.au | address = 50 Casuarina Way | lat = -15.783194 | long = 128.742861 | phone = +61 8 9169 1092 | price = A$ 160-230 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hotel | name = Kimberley Grande Resort | subtype = 4 | url = https://www.thekimberleygrande.com.au/ | address = 20 Victoria Hwy | lat = -15.782806 | long = 128.737056 | phone = +61 8 9166 5688 | price = online A$ 205-249 | lastedit = 2017-09-10 | description = }}
== Gesundheit ==
{{vCard | type = hospital | name = Kununurra District Hospital | address = 96 Coolibah Dr | lat = -15.775278 | long = 128.734333 | phone = +61 8 9166 4222 | description = }}
== Praktische Hinweise ==
Postleitzahl: 6743<br />
{{vCard | type = post | name = Postamt | lat = -15.773889 | long = 128.738694 | hours = Mo.-Fr. 9.00-17.00 | description = }}
== Ausflüge ==
[[File:2012-10-Ivanhoe-08.jpg|thumb|Ivanhoe Crossing]]
[[File:2012-15-LA-Pool-04.jpg|thumb|Lake Argyle, Infinity Pool]]
* {{vCard | type = lake | name = Lake Argyle | lat = -16.319472 | long = 128.799583 | directions = Die Lake Argyle Road zweigt ca. 3 km vor der Grenze zum Northern Territory nach Süden ab. Sie ist ca. 38 km lang, zwar nur schmal aber durchgehend asphaltiert und wenig befahren. Außer zwei Rastplätzen gibt es unterwegs nur schöne Landschaft. Insgesamt 70 km von Kunumurra. | description = ist der größte Stausee von Australien (bzgl. Oberfläche und Wasservolumen über doppelt so groß wie der [[Bodensee]]), der ein Gebiet größer als Bayern ganzjährig mit Strom und Wasser versorgt. Umgeben von mehreren Gebirgsketten, mit über hundert Inseln und Inselchen im See und einer nahezu unberührten, einmaligen Flora und Fauna, ist er ein Muß für jeden Naturliebhaber. Das Nordufer um die Staumauer ist gut erschlossen und bietet neben einsamen Badebuchten (Vorsicht, immer ein paar Meter Abstand zu Süßwasserkrokodilen halten, wenn sie sich belästigt fühlen, können sie bissig werden!) auch Seerundfahrten (besonders eindrucksvoll sind die Sunrise- und Sunset-Cruises, bei denen neben fantastischen Sonnenauf- und Untergängen besonders viele Tiere beobachtet werden können) und Angeltouren. Am Ufer gibt es das luxuriöse ''Lake Argyle Resort'' (2-Bett-Hütten A$ 259-359). ''[https://www.lakeargyle.com/ Lake Argyle Tourist Village]'' (mit Hotel, Motel, Campground, Restaurant, Minimarket, Tankstelle, Tour-Bookings) liegt auf einem Hügel oberhalb der Staumauer und bietet auf etlichen kurzen Wanderwegen fantastische Ausblicke auf den See und die umgebenden Bergketten. Besonders erwähnenswert sind der ''Infinity Pool'' (übersetzt etwa: „Becken der Unendlichkeit“), der den Eindruck erweckt, man könne direkt hinaus in die Weiten des Stausees schwimmen und die Durack Homestead, ein 1894 von den ersten Siedlern in dieser Region errichtetes Wohngebäude, das heute als Regionalmuseum dient. }}
* '''Ord River:''' Im Abschnitt zwischen Lake Argyle und Lake Kununurra ist der Ord River ein beliebtes Ziel für organisierte River Cruises und Angeltouren in einer einmaligen Landschaft. <br />'''Ivanhoe Crossing:''' Die Ivanhoe-Furt durch den Ord River ist ein sehr beliebtes Fotomotiv. Sie liegt nordöstlich der Stadt und ist über eine 12 km lange asphaltierte Straße gut erreichbar. Die Furt ist zwar ebenfalls asphaltiert, steht aber ganzjährig unter Wasser (20 bis 150 cm), ist nur zur Trockenzeit geöffnet und sollte nur mit Allradantrieb befahren werden. Hier ist ein beliebter Angelplatz, aber, no swimming, Salzwasserkrokodile! Auf der anderen Seite des Ord River geht es nur über Allradpisten weiter (teilweise auf Privatland, u.U. muss vorher eine Fahrerlaubnis eingeholt werden).
* '''Zebra Stone Mines:''' Weltweit einmalig ist der ausschließlich in der Gegend um Kununurra und den Lake Argyle vorkommende Zebra Stone, eine Sandsteinart, die alle paar Milli- bzw. Zentimeter Schichten einer anderen Färbung aufweist. Die Steine sind ein beliebtes Ausgangsmaterial für Kunstgegenstände aller Art. Die Zufahrt zu mehreren Zebra Stone Mines ist nur über Allradpisten oder gebuchte Touren möglich.
* [[Nördliches Westaustralien#Abstecher in die „unberührten” Kimberleys|Purnululu Nationalpark]] (''Bungle Bungles'').
<!--
== Literatur ==
-->
== Weblinks ==
* [https://www.accesswa.com.au/ Barrierfreies Reisen in WA] (engl.)
* [https://www.kimberleyaustralia.com/ Kimberley Region] (engl.)
{{class-3}}
{{GeoData| lat=-15.773842| long=128.738544 | radius= }}
{{IstInKat|Westaustralien}}
65yy63xldkqewrfeuj8mnsh7aaul9he
1769025
1769006
2026-04-16T15:11:54Z
Wowo2024
53507
/* Anreise */ +N1.
1769025
wikitext
text/x-wiki
{{quickbar Ort
| Höhe=
| Bild=[[Bild:Kununurra-town.png|292px|]]
| Provinz=Western Australia
| ProvinzLabel=
| Einwohner=
| TouriInfoWeb=[http://www.visitkununurra.com visitkununurra.com]
| TouriInfoTel=
}}
'''Kununurra''' ist eine Stadt in Kimberly-Region des [[Nördliches Westaustralien|nördlichen]] [[Westaustralien]]. Sie liegt am [[Victoria Highway (Australien)|Victoria Highway]].
== Hintergrund ==
[[Bild:Sandelholzplantagen Kununurra.JPG|thumb|[[w:Sandelholz|Sandelholzplantagen]] am Ord River bei Kununurra.]]
{{vCard | type = city | name = Visitor Centre | url = http://www.visitkununurra.com/ | lat = -15.772722 | long = 128.739083 | hours = 8.30-16.30, Sa.+So. bis 14.00 | description = }}
Beste Reisezeit ist die “Dry.” Im schwül-heißen November bieten Reiseveranstalter ihre Touren vielfach zum halben Preis. Viele regelmäßige Touren werden während der “Wet” komplett eingestellt. In dieser Region liegen die Tageshöchsttemperaturen ganzjährig bei 32-37 °C.
Wirtschaftlich bedeutend ist für dem Ort neben dem Tourismus, die [[w:Argyle-Diamantenmine|Argyle-Diamantenmine]]. Das große Loch kann in organisierten Tagesausflügen besichtigt werden (Buchung im Kununurra Visitor Centre).
== Anreise ==
{{Maps|-15.773842|128.738544|14|M|Kununurra.}}
=== Mit dem Flugzeug ===
{{vCard | type = airport | name = East Kimberley Regional Airport | lat = -15.783778 | long = 128.7125 | description = Hat Verbindungen nach [[Perth]], [[Darwin]] und [[Broome (Westaustralien)|Broome]]. }}
=== Mit dem Bus ===
'''[https://www.greyhound.com.au Greyhound Australia]''' hat das Monopol auf der Strecke Broome–Katherine–Darwin.
=== Auf der Straße ===
Die einzige Fernstraße ist der in Ost-West-Richtung verlaufende ''Victoria-Highway'' als Teil des ganz Australien umspannenden {{Marker | name =[[National Highway 1]] | type =road | lat =-15.778348 | long =128.743900 | wikidata =Q17871565}} ({{RSIGN|AU|NA|1}}).
== Mobilität ==
Es gibt keinen öffentlichen Nahverkehr. Ziele in der Umgebung erreicht man nur als Selbstfahrer mit Allrad oder über Touren, die lokale Veranstalter anbieten.
== Sehenswürdigkeiten ==
* {{vCard | type = museum | name = Historical Museum | url = https://www.kununurra.org.au/ | lat = -15.775333 | long = 128.737389 | hours = tgl. 12-30-17.30 | description = }}
* {{vCard | type = viewpoint | name = Mount Cyril | address = 44 Weaber Plain Rd | lat = -15.771722 | long = 128.746417 | description = Aussichtspunkt }}
* {{vCard | type = lake | name = Lily Creek Lagoon | lat = -15.789528 | long = 128.737361 | description = Feuchtgebiet mit zahlreichen Vögeln, aber auch Krokodilen. }}
* {{vCard | type = botanical garden | name = Kununurra Arboretum | lat = -15.777583 | long = 128.729667 | description = }}
* {{vCard|type=see |name=Kelly’s Knob |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Aussichtspunkt auf einem Hügel ca. 3 km nördlich der City, mit schönem Blick über die Stadt.}}
* {{vCard|type=bridge |name=Ord River Bridge |address=|phone=|email=|fax=|url=|hours=|price=|lat=|long=|lastedit=|description=Straßenbrücke am westlichen Ende der Stadt mit schönem Blick auf den Ord River. Fotos sollte man allerdings nur vom Straßenrand vor/nach der Brücke schießen, weil Anhalten auf der Brücke (außer an Ampeln bei Baustellen) strafbar ist.}}
== Aktivitäten ==
Outdoor, Ausflüge in die Kimberly-Region mit ihren Nationalparks. '''Touren:''' Im Visitor Center sowie diversen, örtlichen Reiseunternehmen kann man Bootstouren, Flüge und ein- bis mehrtägige Allrad-Touren zur Zebra Stone Mine, dem Lake Argyle, dem Purnululu Nationalpark, zum Kimberley-Plateau, Angelausflüge, etc. buchen.
[[File:2012-10-Mirima-05.jpg|thumb|Mirima (Hidden Valley) Nationalpark.]]
Direkt am Stadtrand ist der {{vCard | type = national park | name = Hidden Valley (Mirima) Nationalpark | url = https://parks.dpaw.wa.gov.au/park/mirima | lat = -15.773056 | long = 128.762778 | description = 2086 Hektar ist ein kleines, verstecktes Tal am nordöstlichen Ende der Stadt mit einigen kurzen, überwiegend schattigen Wanderwegen (je ca. 15-40 Minuten). Sehenswert ist die Gebirgskette aus orangerotem Sandstein und einigen runden, Bienenkörben ähnlichen Sandsteinkuppen. Es fanden sich auch Felszeichnungen der ''Miriwoong''-Abos. Mindestens solte man 3-4 Stunden einplanen, aber man kann auch gut einen ganzen Tag hier verbringen. Große Teile des Parks sind auch per Rollstuhl zugänglich. }}
== Einkaufen ==
Kununurra ist das Versorgungszentrum einer großen Region. Neben Lebensmittelhändlern sind besonders Geschäfte für KfZ-Bedarf gut vertreten.
<!-- == Küche ==
-->
== Nachtleben ==
Pubs.
== Unterkunft ==
;Camping
* {{vCard | type = caravan site | name = Discovery Parks | url = https://www.discoveryholidayparks.com.au/wa/east_kimberley/lake_kununurra | address = Lakeview Dr. | lat = -15.791528 | long = 128.720972 | phone = +61 8 9168 1031 | price = Stellplätze A$ 36-53 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Hidden Valley Caravan Park | url = http://www.hiddenvalleytouristpark.com/ | address = 110 Weaber Plain Rd. | lat = -15.766222 | long = 128.747333 | hours = Rezeption 8.00-17.00 | price = Stellplätze: A$ 38, Hütten: A$ 125-150 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Ivanhoe Village Caravan Resort | address = 214 Coolibah Dr | lat = -15.770111 | long = 128.73075 | price = Stellplätze A$ 42-59; Hütten: A$ 200-350 | lastedit = 2017-09-10 | description = Mindestaufenthalt 2 Nächte. }} Auf der gegenüberliegenden Straßenseite ist der KAS Caravan Park.
;Jugendherbergen
* {{vCard | type = hostel | name = Kununurra Backpackers | url = http://www.kununurrabackpackers.com.au/ | address = 24 Nutwood Cres. | lat = -15.768667 | long = 128.743 | phone = +61 8 9169 1998 | price = Schlafsaal A$ 25-29, pro Woche 140-165. Doppel A$ 65 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hostel | name = Kimberley Croc (YHA) | url = http://kimberleycroc.com.au/ | address = 120 Konkerberry Dr. | lat = -15.768667 | long = 128.743 | phone = +61 8 9168 2702 | price = Schlafsaal A$ 24-28 (Nicht-Mitglieder +3 A$), Deluxe-Doppel: A$ 90-99. Günstigere Wochentarife | lastedit = 2017-09-10 | description = }}
;Gehoben
* {{vCard | type = hotel | name = Kununurra Lakeside Resort | url = http://lakeside.com.au | address = 50 Casuarina Way | lat = -15.783194 | long = 128.742861 | phone = +61 8 9169 1092 | price = A$ 160-230 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hotel | name = Kimberley Grande Resort | subtype = 4 | url = https://www.thekimberleygrande.com.au/ | address = 20 Victoria Hwy | lat = -15.782806 | long = 128.737056 | phone = +61 8 9166 5688 | price = online A$ 205-249 | lastedit = 2017-09-10 | description = }}
== Gesundheit ==
{{vCard | type = hospital | name = Kununurra District Hospital | address = 96 Coolibah Dr | lat = -15.775278 | long = 128.734333 | phone = +61 8 9166 4222 | description = }}
== Praktische Hinweise ==
Postleitzahl: 6743<br />
{{vCard | type = post | name = Postamt | lat = -15.773889 | long = 128.738694 | hours = Mo.-Fr. 9.00-17.00 | description = }}
== Ausflüge ==
[[File:2012-10-Ivanhoe-08.jpg|thumb|Ivanhoe Crossing]]
[[File:2012-15-LA-Pool-04.jpg|thumb|Lake Argyle, Infinity Pool]]
* {{vCard | type = lake | name = Lake Argyle | lat = -16.319472 | long = 128.799583 | directions = Die Lake Argyle Road zweigt ca. 3 km vor der Grenze zum Northern Territory nach Süden ab. Sie ist ca. 38 km lang, zwar nur schmal aber durchgehend asphaltiert und wenig befahren. Außer zwei Rastplätzen gibt es unterwegs nur schöne Landschaft. Insgesamt 70 km von Kunumurra. | description = ist der größte Stausee von Australien (bzgl. Oberfläche und Wasservolumen über doppelt so groß wie der [[Bodensee]]), der ein Gebiet größer als Bayern ganzjährig mit Strom und Wasser versorgt. Umgeben von mehreren Gebirgsketten, mit über hundert Inseln und Inselchen im See und einer nahezu unberührten, einmaligen Flora und Fauna, ist er ein Muß für jeden Naturliebhaber. Das Nordufer um die Staumauer ist gut erschlossen und bietet neben einsamen Badebuchten (Vorsicht, immer ein paar Meter Abstand zu Süßwasserkrokodilen halten, wenn sie sich belästigt fühlen, können sie bissig werden!) auch Seerundfahrten (besonders eindrucksvoll sind die Sunrise- und Sunset-Cruises, bei denen neben fantastischen Sonnenauf- und Untergängen besonders viele Tiere beobachtet werden können) und Angeltouren. Am Ufer gibt es das luxuriöse ''Lake Argyle Resort'' (2-Bett-Hütten A$ 259-359). ''[https://www.lakeargyle.com/ Lake Argyle Tourist Village]'' (mit Hotel, Motel, Campground, Restaurant, Minimarket, Tankstelle, Tour-Bookings) liegt auf einem Hügel oberhalb der Staumauer und bietet auf etlichen kurzen Wanderwegen fantastische Ausblicke auf den See und die umgebenden Bergketten. Besonders erwähnenswert sind der ''Infinity Pool'' (übersetzt etwa: „Becken der Unendlichkeit“), der den Eindruck erweckt, man könne direkt hinaus in die Weiten des Stausees schwimmen und die Durack Homestead, ein 1894 von den ersten Siedlern in dieser Region errichtetes Wohngebäude, das heute als Regionalmuseum dient. }}
* '''Ord River:''' Im Abschnitt zwischen Lake Argyle und Lake Kununurra ist der Ord River ein beliebtes Ziel für organisierte River Cruises und Angeltouren in einer einmaligen Landschaft. <br />'''Ivanhoe Crossing:''' Die Ivanhoe-Furt durch den Ord River ist ein sehr beliebtes Fotomotiv. Sie liegt nordöstlich der Stadt und ist über eine 12 km lange asphaltierte Straße gut erreichbar. Die Furt ist zwar ebenfalls asphaltiert, steht aber ganzjährig unter Wasser (20 bis 150 cm), ist nur zur Trockenzeit geöffnet und sollte nur mit Allradantrieb befahren werden. Hier ist ein beliebter Angelplatz, aber, no swimming, Salzwasserkrokodile! Auf der anderen Seite des Ord River geht es nur über Allradpisten weiter (teilweise auf Privatland, u.U. muss vorher eine Fahrerlaubnis eingeholt werden).
* '''Zebra Stone Mines:''' Weltweit einmalig ist der ausschließlich in der Gegend um Kununurra und den Lake Argyle vorkommende Zebra Stone, eine Sandsteinart, die alle paar Milli- bzw. Zentimeter Schichten einer anderen Färbung aufweist. Die Steine sind ein beliebtes Ausgangsmaterial für Kunstgegenstände aller Art. Die Zufahrt zu mehreren Zebra Stone Mines ist nur über Allradpisten oder gebuchte Touren möglich.
* [[Nördliches Westaustralien#Abstecher in die „unberührten” Kimberleys|Purnululu Nationalpark]] (''Bungle Bungles'').
<!--
== Literatur ==
-->
== Weblinks ==
* [https://www.accesswa.com.au/ Barrierfreies Reisen in WA] (engl.)
* [https://www.kimberleyaustralia.com/ Kimberley Region] (engl.)
{{class-3}}
{{GeoData| lat=-15.773842| long=128.738544 | radius= }}
{{IstInKat|Westaustralien}}
1agqe2mjpdfgt5nnnhgh4740akp4ui0
1769027
1769025
2026-04-16T15:35:17Z
Wowo2024
53507
+Marker.
1769027
wikitext
text/x-wiki
{{quickbar Ort
| Höhe=
| Bild=[[Bild:Kununurra-town.png|292px|]]
| Provinz=Western Australia
| ProvinzLabel=
| Einwohner=
| TouriInfoWeb=[http://www.visitkununurra.com visitkununurra.com]
| TouriInfoTel=
}}
'''Kununurra''' ist eine Stadt in Kimberly-Region des [[Nördliches Westaustralien|nördlichen]] [[Westaustralien]]. Sie liegt am [[Victoria Highway (Australien)|Victoria Highway]].
== Hintergrund ==
[[Bild:Sandelholzplantagen Kununurra.JPG|thumb|[[w:Sandelholz|Sandelholzplantagen]] am Ord River bei Kununurra.]]
Das {{vCard | type =tourist information | name = Visitor Centre | url =http://www.visitkununurra.com/ | lat =-15.772722 | long =128.739083 | hours =08:30-16:30 Uhr, Sa.+So. bis 14:00 Uhr | description = }} befindet sich in {{Marker | name =Kununurra | type =town | wikidata =Q1110973}} im ''Lot 75 Coolibah Drive''.
Beste Reisezeit ist die “Dry” (Trockenzeit). Im schwül-heißen November bieten Reiseveranstalter ihre Touren vielfach zum halben Preis. Viele regelmäßige Touren werden während der “Wet” (Regenzeit) komplett eingestellt. In dieser Region liegen die Tageshöchsttemperaturen ganzjährig bei 32-37 °C.
Wirtschaftlich bedeutend ist für dem Ort neben dem Tourismus die {{Marker | name =[[w:Argyle-Diamantenmine|Argyle-Diamantenmine]] | type =mine | wikidata =Q652475}}, die weltweit größte Diamantenmine. Das große Loch kann in organisierten Tagesausflügen besichtigt werden (Buchung im Kununurra Visitor Centre).
== Anreise ==
{{Maps|-15.773842|128.738544|14|M|Kununurra.}}
=== Mit dem Flugzeug ===
{{vCard | type = airport | name = East Kimberley Regional Airport | lat = -15.783778 | long = 128.7125 | description = Hat Verbindungen nach [[Perth]], [[Darwin]] und [[Broome (Westaustralien)|Broome]]. }}
=== Mit dem Bus ===
'''[https://www.greyhound.com.au Greyhound Australia]''' hat das Monopol auf der Strecke Broome–Katherine–Darwin.
=== Auf der Straße ===
Die einzige Fernstraße ist der in Ost-West-Richtung verlaufende ''Victoria-Highway'' als Teil des ganz Australien umspannenden {{Marker | name =[[National Highway 1]] | type =road | lat =-15.778348 | long =128.743900 | wikidata =Q17871565}} ({{RSIGN|AU|NA|1}}).
== Mobilität ==
Es gibt keinen öffentlichen Nahverkehr. Ziele in der Umgebung erreicht man nur als Selbstfahrer mit Allrad oder über Touren, die lokale Veranstalter anbieten.
== Sehenswürdigkeiten ==
* {{vCard | type = museum | name = Historical Museum | url = https://www.kununurra.org.au/ | lat = -15.775333 | long = 128.737389 | hours = tgl. 12-30-17.30 | description = }}
* {{vCard | type = viewpoint | name = Mount Cyril | address = 44 Weaber Plain Rd | lat = -15.771722 | long = 128.746417 | description = Aussichtspunkt }}
* {{vCard | type = lake | name = Lily Creek Lagoon | lat = -15.789528 | long = 128.737361 | description = Feuchtgebiet mit zahlreichen Vögeln, aber auch Krokodilen. }}
* {{vCard | type = botanical garden | name = Kununurra Arboretum | lat = -15.777583 | long = 128.729667 | description = }}
* {{vCard|type=see |name=Kelly’s Knob |address=|phone=|email=|fax=|url=|hours=|price=|lat=-15.764891|long=128.742604|lastedit=|description=Aussichtspunkt auf einem Hügel ca. 3 km nördlich der City, mit schönem Blick über die Stadt.}}
* {{vCard|type=bridge |name=Ord River Diversion dam |address=|phone=|email=|fax=|url=|hours=|price=|lat=-15.791758|long=128.695537|lastedit=|description=Straßenbrücke am westlichen Ende der Stadt mit schönem Blick auf den Ord River. Fotos sollte man allerdings nur vom Straßenrand vor/nach der Brücke schießen, weil Anhalten auf der Brücke (außer an Ampeln bei Baustellen) strafbar ist.}}
* {{vCard | name =Ivanhoe Crossing | type =bridge | lat =15.689520 | long =128.688170 | description =ein beliebter, aber gefährlicher Aussichtspunkt für Krokodile.}}
== Aktivitäten ==
Outdoor, Ausflüge in die Kimberly-Region mit ihren Nationalparks. '''Touren:''' Im Visitor Center sowie diversen, örtlichen Reiseunternehmen kann man Bootstouren, Flüge und ein- bis mehrtägige Allrad-Touren zur Zebra Stone Mine, dem Lake Argyle, dem Purnululu Nationalpark, zum Kimberley-Plateau, Angelausflüge, etc. buchen.
[[File:2012-10-Mirima-05.jpg|thumb|Mirima (Hidden Valley) Nationalpark.]]
Direkt am Stadtrand ist der {{vCard | type = national park | name = Hidden Valley (Mirima) Nationalpark | url = https://parks.dpaw.wa.gov.au/park/mirima | lat = -15.773056 | long = 128.762778 | wikidata =Q1560973 | description = 2086 Hektar ist ein kleines, verstecktes Tal am nordöstlichen Ende der Stadt mit einigen kurzen, überwiegend schattigen Wanderwegen (je ca. 15-40 Minuten). Sehenswert ist die Gebirgskette aus orangerotem Sandstein und einigen runden, Bienenkörben ähnlichen Sandsteinkuppen. Es fanden sich auch Felszeichnungen der ''Miriwoong''-Aborigines. Mindestens sollte man 3-4 Stunden einplanen, aber man kann auch gut einen ganzen Tag hier verbringen. Große Teile des Parks sind auch per Rollstuhl zugänglich. }}
== Einkaufen ==
Kununurra ist das Versorgungszentrum einer großen Region. Neben Lebensmittelhändlern sind besonders Geschäfte für KfZ-Bedarf gut vertreten.
<!-- == Küche ==
-->
== Nachtleben ==
Pubs.
== Unterkunft ==
;Camping
* {{vCard | type = caravan site | name = Discovery Parks | url = https://www.discoveryholidayparks.com.au/wa/east_kimberley/lake_kununurra | address = Lakeview Dr. | lat = -15.791528 | long = 128.720972 | phone = +61 8 9168 1031 | price = Stellplätze A$ 36-53 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Hidden Valley Caravan Park | url = http://www.hiddenvalleytouristpark.com/ | address = 110 Weaber Plain Rd. | lat = -15.766222 | long = 128.747333 | hours = Rezeption 8.00-17.00 | price = Stellplätze: A$ 38, Hütten: A$ 125-150 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Ivanhoe Village Caravan Resort | address = 214 Coolibah Dr | lat = -15.770111 | long = 128.73075 | price = Stellplätze A$ 42-59; Hütten: A$ 200-350 | lastedit = 2017-09-10 | description = Mindestaufenthalt 2 Nächte. }} Auf der gegenüberliegenden Straßenseite ist der KAS Caravan Park.
;Jugendherbergen
* {{vCard | type = hostel | name = Kununurra Backpackers | url = http://www.kununurrabackpackers.com.au/ | address = 24 Nutwood Cres. | lat = -15.768667 | long = 128.743 | phone = +61 8 9169 1998 | price = Schlafsaal A$ 25-29, pro Woche 140-165. Doppel A$ 65 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hostel | name = Kimberley Croc (YHA) | url = http://kimberleycroc.com.au/ | address = 120 Konkerberry Dr. | lat = -15.768667 | long = 128.743 | phone = +61 8 9168 2702 | price = Schlafsaal A$ 24-28 (Nicht-Mitglieder +3 A$), Deluxe-Doppel: A$ 90-99. Günstigere Wochentarife | lastedit = 2017-09-10 | description = }}
;Gehoben
* {{vCard | type = hotel | name = Kununurra Lakeside Resort | url = http://lakeside.com.au | address = 50 Casuarina Way | lat = -15.783194 | long = 128.742861 | phone = +61 8 9169 1092 | price = A$ 160-230 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hotel | name = Kimberley Grande Resort | subtype = 4 | url = https://www.thekimberleygrande.com.au/ | address = 20 Victoria Hwy | lat = -15.782806 | long = 128.737056 | phone = +61 8 9166 5688 | price = online A$ 205-249 | lastedit = 2017-09-10 | description = }}
== Gesundheit ==
{{vCard | type = hospital | name = Kununurra District Hospital | address = 96 Coolibah Dr | lat = -15.775278 | long = 128.734333 | phone = +61 8 9166 4222 | description = }}
== Praktische Hinweise ==
Postleitzahl: 6743<br />
{{vCard | type = post | name = Postamt | lat = -15.773889 | long = 128.738694 | hours = Mo.-Fr. 9.00-17.00 | description = }}
== Ausflüge ==
[[File:2012-10-Ivanhoe-08.jpg|thumb|Ivanhoe Crossing]]
[[File:2012-15-LA-Pool-04.jpg|thumb|Lake Argyle, Infinity Pool]]
* {{vCard | type = lake | name = Lake Argyle | lat = -16.319472 | long = 128.799583 | directions = Die Lake Argyle Road zweigt ca. 3 km vor der Grenze zum Northern Territory nach Süden ab. Sie ist ca. 38 km lang, zwar nur schmal aber durchgehend asphaltiert und wenig befahren. Außer zwei Rastplätzen gibt es unterwegs nur schöne Landschaft. Insgesamt 70 km von Kunumurra. | description = ist der größte Stausee von Australien (bzgl. Oberfläche und Wasservolumen über doppelt so groß wie der [[Bodensee]]), der ein Gebiet größer als Bayern ganzjährig mit Strom und Wasser versorgt. Umgeben von mehreren Gebirgsketten, mit über hundert Inseln und Inselchen im See und einer nahezu unberührten, einmaligen Flora und Fauna, ist er ein Muß für jeden Naturliebhaber. Das Nordufer um die Staumauer ist gut erschlossen und bietet neben einsamen Badebuchten (Vorsicht, immer ein paar Meter Abstand zu Süßwasserkrokodilen halten, wenn sie sich belästigt fühlen, können sie bissig werden!) auch Seerundfahrten (besonders eindrucksvoll sind die Sunrise- und Sunset-Cruises, bei denen neben fantastischen Sonnenauf- und Untergängen besonders viele Tiere beobachtet werden können) und Angeltouren. Am Ufer gibt es das luxuriöse ''Lake Argyle Resort'' (2-Bett-Hütten A$ 259-359). ''[https://www.lakeargyle.com/ Lake Argyle Tourist Village]'' (mit Hotel, Motel, Campground, Restaurant, Minimarket, Tankstelle, Tour-Bookings) liegt auf einem Hügel oberhalb der Staumauer und bietet auf etlichen kurzen Wanderwegen fantastische Ausblicke auf den See und die umgebenden Bergketten. Besonders erwähnenswert sind der ''Infinity Pool'' (übersetzt etwa: „Becken der Unendlichkeit“), der den Eindruck erweckt, man könne direkt hinaus in die Weiten des Stausees schwimmen und die Durack Homestead, ein 1894 von den ersten Siedlern in dieser Region errichtetes Wohngebäude, das heute als Regionalmuseum dient. }}
* '''Ord River:''' Im Abschnitt zwischen Lake Argyle und Lake Kununurra ist der Ord River ein beliebtes Ziel für organisierte River Cruises und Angeltouren in einer einmaligen Landschaft. <br />'''Ivanhoe Crossing:''' Die Ivanhoe-Furt durch den Ord River ist ein sehr beliebtes Fotomotiv. Sie liegt nordöstlich der Stadt und ist über eine 12 km lange asphaltierte Straße gut erreichbar. Die Furt ist zwar ebenfalls asphaltiert, steht aber ganzjährig unter Wasser (20 bis 150 cm), ist nur zur Trockenzeit geöffnet und sollte nur mit Allradantrieb befahren werden. Hier ist ein beliebter Angelplatz, aber, no swimming, Salzwasserkrokodile! Auf der anderen Seite des Ord River geht es nur über Allradpisten weiter (teilweise auf Privatland, u.U. muss vorher eine Fahrerlaubnis eingeholt werden).
* '''Zebra Stone Mines:''' Weltweit einmalig ist der ausschließlich in der Gegend um Kununurra und den Lake Argyle vorkommende Zebra Stone, eine Sandsteinart, die alle paar Milli- bzw. Zentimeter Schichten einer anderen Färbung aufweist. Die Steine sind ein beliebtes Ausgangsmaterial für Kunstgegenstände aller Art. Die Zufahrt zu mehreren Zebra Stone Mines ist nur über Allradpisten oder gebuchte Touren möglich.
* [[Nördliches Westaustralien#Abstecher in die „unberührten” Kimberleys|Purnululu Nationalpark]] (''Bungle Bungles'').
<!--
== Literatur ==
-->
== Weblinks ==
* [https://www.accesswa.com.au/ Barrierfreies Reisen in WA] (engl.)
* [https://www.kimberleyaustralia.com/ Kimberley Region] (engl.)
{{class-3}}
{{GeoData| lat=-15.773842| long=128.738544 | radius= }}
{{IstInKat|Westaustralien}}
kuyjtt54pjiryqjmp57dk8mstjsrldq
1769028
1769027
2026-04-16T15:41:24Z
Wowo2024
53507
+geoline-mapframe.
1769028
wikitext
text/x-wiki
{{quickbar Ort
| Höhe=
| Bild=[[Bild:Kununurra-town.png|292px|]]
| Provinz=Western Australia
| ProvinzLabel=
| Einwohner=
| TouriInfoWeb=[http://www.visitkununurra.com visitkununurra.com]
| TouriInfoTel=
}}
'''Kununurra''' ist eine Stadt in Kimberly-Region des [[Nördliches Westaustralien|nördlichen]] [[Westaustralien]]. Sie liegt am [[Victoria Highway (Australien)|Victoria Highway]].
== Hintergrund ==
[[Bild:Sandelholzplantagen Kununurra.JPG|thumb|[[w:Sandelholz|Sandelholzplantagen]] am Ord River bei Kununurra.]]
{{vCard | type =tourist information | before =Das | name = Visitor Centre | url =http://www.visitkununurra.com/ | lat =-15.772722 | long =128.739083 | hours =08:30-16:30 Uhr, Sa.+So. bis 14:00 Uhr | description = }}{{nnbsp}}befindet sich in {{Marker | name =Kununurra | type =town | wikidata =Q1110973}} im ''Lot 75 Coolibah Drive''.
Beste Reisezeit ist die “Dry” (Trockenzeit). Im schwül-heißen November bieten Reiseveranstalter ihre Touren vielfach zum halben Preis. Viele regelmäßige Touren werden während der “Wet” (Regenzeit) komplett eingestellt. In dieser Region liegen die Tageshöchsttemperaturen ganzjährig bei 32-37 °C.
Wirtschaftlich bedeutend ist für dem Ort neben dem Tourismus die {{Marker | name =[[w:Argyle-Diamantenmine|Argyle-Diamantenmine]] | type =mine | wikidata =Q652475}}, die weltweit größte Diamantenmine. Das große Loch kann in organisierten Tagesausflügen besichtigt werden (Buchung im Kununurra Visitor Centre).
== Anreise ==
{{mapframe | type= geoline | stroke= #FF0000 | stroke-width= 2 | stroke-opacity= 1 | id =Q1110973}}
=== Mit dem Flugzeug ===
{{vCard | type = airport | name = East Kimberley Regional Airport | lat = -15.783778 | long = 128.7125 | description = Hat Verbindungen nach [[Perth]], [[Darwin]] und [[Broome (Westaustralien)|Broome]]. }}
=== Mit dem Bus ===
'''[https://www.greyhound.com.au Greyhound Australia]''' hat das Monopol auf der Strecke Broome–Katherine–Darwin.
=== Auf der Straße ===
Die einzige Fernstraße ist der in Ost-West-Richtung verlaufende ''Victoria-Highway'' als Teil des ganz Australien umspannenden {{Marker | name =[[National Highway 1]] | type =road | lat =-15.778348 | long =128.743900 | wikidata =Q17871565}} ({{RSIGN|AU|NA|1}}).
== Mobilität ==
Es gibt keinen öffentlichen Nahverkehr. Ziele in der Umgebung erreicht man nur als Selbstfahrer mit Allrad oder über Touren, die lokale Veranstalter anbieten.
== Sehenswürdigkeiten ==
* {{vCard | type = museum | name = Historical Museum | url = https://www.kununurra.org.au/ | lat = -15.775333 | long = 128.737389 | hours = tgl. 12-30-17.30 | description = }}
* {{vCard | type = viewpoint | name = Mount Cyril | address = 44 Weaber Plain Rd | lat = -15.771722 | long = 128.746417 | description = Aussichtspunkt }}
* {{vCard | type = lake | name = Lily Creek Lagoon | lat = -15.789528 | long = 128.737361 | description = Feuchtgebiet mit zahlreichen Vögeln, aber auch Krokodilen. }}
* {{vCard | type = botanical garden | name = Kununurra Arboretum | lat = -15.777583 | long = 128.729667 | description = }}
* {{vCard|type=see |name=Kelly’s Knob |address=|phone=|email=|fax=|url=|hours=|price=|lat=-15.764891|long=128.742604|lastedit=|description=Aussichtspunkt auf einem Hügel ca. 3 km nördlich der City, mit schönem Blick über die Stadt.}}
* {{vCard|type=bridge |name=Ord River Diversion dam |address=|phone=|email=|fax=|url=|hours=|price=|lat=-15.791758|long=128.695537|lastedit=|description=Straßenbrücke am westlichen Ende der Stadt mit schönem Blick auf den Ord River. Fotos sollte man allerdings nur vom Straßenrand vor/nach der Brücke schießen, weil Anhalten auf der Brücke (außer an Ampeln bei Baustellen) strafbar ist.}}
* {{vCard | name =Ivanhoe Crossing | type =bridge | lat =-15.689520 | long =128.688170 | description =ein beliebter, aber gefährlicher Aussichtspunkt für Krokodile.}}
== Aktivitäten ==
Outdoor, Ausflüge in die Kimberly-Region mit ihren Nationalparks. '''Touren:''' Im Visitor Center sowie diversen, örtlichen Reiseunternehmen kann man Bootstouren, Flüge und ein- bis mehrtägige Allrad-Touren zur Zebra Stone Mine, dem Lake Argyle, dem Purnululu Nationalpark, zum Kimberley-Plateau, Angelausflüge, etc. buchen.
[[File:2012-10-Mirima-05.jpg|thumb|Mirima (Hidden Valley) Nationalpark.]]
Direkt am Stadtrand ist der {{vCard | type = national park | name = Hidden Valley (Mirima) Nationalpark | url = https://parks.dpaw.wa.gov.au/park/mirima | lat = -15.773056 | long = 128.762778 | wikidata =Q1560973 | description = 2086 Hektar ist ein kleines, verstecktes Tal am nordöstlichen Ende der Stadt mit einigen kurzen, überwiegend schattigen Wanderwegen (je ca. 15-40 Minuten). Sehenswert ist die Gebirgskette aus orangerotem Sandstein und einigen runden, Bienenkörben ähnlichen Sandsteinkuppen. Es fanden sich auch Felszeichnungen der ''Miriwoong''-Aborigines. Mindestens sollte man 3-4 Stunden einplanen, aber man kann auch gut einen ganzen Tag hier verbringen. Große Teile des Parks sind auch per Rollstuhl zugänglich. }}
== Einkaufen ==
Kununurra ist das Versorgungszentrum einer großen Region. Neben Lebensmittelhändlern sind besonders Geschäfte für KfZ-Bedarf gut vertreten.
<!-- == Küche ==
-->
== Nachtleben ==
Pubs.
== Unterkunft ==
;Camping
* {{vCard | type = caravan site | name = Discovery Parks | url = https://www.discoveryholidayparks.com.au/wa/east_kimberley/lake_kununurra | address = Lakeview Dr. | lat = -15.791528 | long = 128.720972 | phone = +61 8 9168 1031 | price = Stellplätze A$ 36-53 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Hidden Valley Caravan Park | url = http://www.hiddenvalleytouristpark.com/ | address = 110 Weaber Plain Rd. | lat = -15.766222 | long = 128.747333 | hours = Rezeption 8.00-17.00 | price = Stellplätze: A$ 38, Hütten: A$ 125-150 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Ivanhoe Village Caravan Resort | address = 214 Coolibah Dr | lat = -15.770111 | long = 128.73075 | price = Stellplätze A$ 42-59; Hütten: A$ 200-350 | lastedit = 2017-09-10 | description = Mindestaufenthalt 2 Nächte. }} Auf der gegenüberliegenden Straßenseite ist der KAS Caravan Park.
;Jugendherbergen
* {{vCard | type = hostel | name = Kununurra Backpackers | url = http://www.kununurrabackpackers.com.au/ | address = 24 Nutwood Cres. | lat = -15.768667 | long = 128.743 | phone = +61 8 9169 1998 | price = Schlafsaal A$ 25-29, pro Woche 140-165. Doppel A$ 65 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hostel | name = Kimberley Croc (YHA) | url = http://kimberleycroc.com.au/ | address = 120 Konkerberry Dr. | lat = -15.768667 | long = 128.743 | phone = +61 8 9168 2702 | price = Schlafsaal A$ 24-28 (Nicht-Mitglieder +3 A$), Deluxe-Doppel: A$ 90-99. Günstigere Wochentarife | lastedit = 2017-09-10 | description = }}
;Gehoben
* {{vCard | type = hotel | name = Kununurra Lakeside Resort | url = http://lakeside.com.au | address = 50 Casuarina Way | lat = -15.783194 | long = 128.742861 | phone = +61 8 9169 1092 | price = A$ 160-230 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hotel | name = Kimberley Grande Resort | subtype = 4 | url = https://www.thekimberleygrande.com.au/ | address = 20 Victoria Hwy | lat = -15.782806 | long = 128.737056 | phone = +61 8 9166 5688 | price = online A$ 205-249 | lastedit = 2017-09-10 | description = }}
== Gesundheit ==
{{vCard | type = hospital | name = Kununurra District Hospital | address = 96 Coolibah Dr | lat = -15.775278 | long = 128.734333 | phone = +61 8 9166 4222 | description = }}
== Praktische Hinweise ==
Postleitzahl: 6743<br />
{{vCard | type = post | name = Postamt | lat = -15.773889 | long = 128.738694 | hours = Mo.-Fr. 9.00-17.00 | description = }}
== Ausflüge ==
[[File:2012-10-Ivanhoe-08.jpg|thumb|Ivanhoe Crossing]]
[[File:2012-15-LA-Pool-04.jpg|thumb|Lake Argyle, Infinity Pool]]
* {{vCard | type = lake | name = Lake Argyle | lat = -16.319472 | long = 128.799583 | directions = Die Lake Argyle Road zweigt ca. 3 km vor der Grenze zum Northern Territory nach Süden ab. Sie ist ca. 38 km lang, zwar nur schmal aber durchgehend asphaltiert und wenig befahren. Außer zwei Rastplätzen gibt es unterwegs nur schöne Landschaft. Insgesamt 70 km von Kunumurra. | description = ist der größte Stausee von Australien (bzgl. Oberfläche und Wasservolumen über doppelt so groß wie der [[Bodensee]]), der ein Gebiet größer als Bayern ganzjährig mit Strom und Wasser versorgt. Umgeben von mehreren Gebirgsketten, mit über hundert Inseln und Inselchen im See und einer nahezu unberührten, einmaligen Flora und Fauna, ist er ein Muß für jeden Naturliebhaber. Das Nordufer um die Staumauer ist gut erschlossen und bietet neben einsamen Badebuchten (Vorsicht, immer ein paar Meter Abstand zu Süßwasserkrokodilen halten, wenn sie sich belästigt fühlen, können sie bissig werden!) auch Seerundfahrten (besonders eindrucksvoll sind die Sunrise- und Sunset-Cruises, bei denen neben fantastischen Sonnenauf- und Untergängen besonders viele Tiere beobachtet werden können) und Angeltouren. Am Ufer gibt es das luxuriöse ''Lake Argyle Resort'' (2-Bett-Hütten A$ 259-359). ''[https://www.lakeargyle.com/ Lake Argyle Tourist Village]'' (mit Hotel, Motel, Campground, Restaurant, Minimarket, Tankstelle, Tour-Bookings) liegt auf einem Hügel oberhalb der Staumauer und bietet auf etlichen kurzen Wanderwegen fantastische Ausblicke auf den See und die umgebenden Bergketten. Besonders erwähnenswert sind der ''Infinity Pool'' (übersetzt etwa: „Becken der Unendlichkeit“), der den Eindruck erweckt, man könne direkt hinaus in die Weiten des Stausees schwimmen und die Durack Homestead, ein 1894 von den ersten Siedlern in dieser Region errichtetes Wohngebäude, das heute als Regionalmuseum dient. }}
* '''Ord River:''' Im Abschnitt zwischen Lake Argyle und Lake Kununurra ist der Ord River ein beliebtes Ziel für organisierte River Cruises und Angeltouren in einer einmaligen Landschaft. <br />'''Ivanhoe Crossing:''' Die Ivanhoe-Furt durch den Ord River ist ein sehr beliebtes Fotomotiv. Sie liegt nordöstlich der Stadt und ist über eine 12 km lange asphaltierte Straße gut erreichbar. Die Furt ist zwar ebenfalls asphaltiert, steht aber ganzjährig unter Wasser (20 bis 150 cm), ist nur zur Trockenzeit geöffnet und sollte nur mit Allradantrieb befahren werden. Hier ist ein beliebter Angelplatz, aber, no swimming, Salzwasserkrokodile! Auf der anderen Seite des Ord River geht es nur über Allradpisten weiter (teilweise auf Privatland, u.U. muss vorher eine Fahrerlaubnis eingeholt werden).
* '''Zebra Stone Mines:''' Weltweit einmalig ist der ausschließlich in der Gegend um Kununurra und den Lake Argyle vorkommende Zebra Stone, eine Sandsteinart, die alle paar Milli- bzw. Zentimeter Schichten einer anderen Färbung aufweist. Die Steine sind ein beliebtes Ausgangsmaterial für Kunstgegenstände aller Art. Die Zufahrt zu mehreren Zebra Stone Mines ist nur über Allradpisten oder gebuchte Touren möglich.
* [[Nördliches Westaustralien#Abstecher in die „unberührten” Kimberleys|Purnululu Nationalpark]] (''Bungle Bungles'').
<!--
== Literatur ==
-->
== Weblinks ==
* [https://www.accesswa.com.au/ Barrierfreies Reisen in WA] (engl.)
* [https://www.kimberleyaustralia.com/ Kimberley Region] (engl.)
{{class-3}}
{{GeoData| lat=-15.773842| long=128.738544 | radius= }}
{{IstInKat|Westaustralien}}
ca0a8k07u95bmo071v9rz7opjyq0b00
1769030
1769028
2026-04-16T15:48:09Z
Wowo2024
53507
/* Hintergrund */ korr.
1769030
wikitext
text/x-wiki
{{quickbar Ort
| Höhe=
| Bild=[[Bild:Kununurra-town.png|292px|]]
| Provinz=Western Australia
| ProvinzLabel=
| Einwohner=
| TouriInfoWeb=[http://www.visitkununurra.com visitkununurra.com]
| TouriInfoTel=
}}
'''Kununurra''' ist eine Stadt in Kimberly-Region des [[Nördliches Westaustralien|nördlichen]] [[Westaustralien]]. Sie liegt am [[Victoria Highway (Australien)|Victoria Highway]].
== Hintergrund ==
[[Bild:Sandelholzplantagen Kununurra.JPG|thumb|[[w:Sandelholz|Sandelholzplantagen]] am Ord River bei Kununurra.]]
Über {{Marker | name =Kununurra | type =town | wikidata =Q1110973}} und seine nähere Umgebung gibt das {{Marker | type =tourist information | name =Visitor Centre | url =http://www.visitkununurra.com/ | lat =-15.772722 | long =128.739083}} Auskunft. Adresse: ''Lot 75 Coolibah Drive'', geöffnet werktags 08:30-16:30 Uhr, Sa.+So. bis 14:00 Uhr.
Beste Reisezeit ist die “Dry” (Trockenzeit). Im schwül-heißen November bieten Reiseveranstalter ihre Touren vielfach zum halben Preis. Viele regelmäßige Touren werden während der “Wet” (Regenzeit) komplett eingestellt. In dieser Region liegen die Tageshöchsttemperaturen ganzjährig bei 32-37 °C.
Wirtschaftlich bedeutend ist für dem Ort neben dem Tourismus die {{Marker | name =[[w:Argyle-Diamantenmine|Argyle-Diamantenmine]] | type =mine | wikidata =Q652475}}, die weltweit größte Diamantenmine. Das große Loch kann in organisierten Tagesausflügen besichtigt werden (Buchung im Kununurra Visitor Centre).
== Anreise ==
{{mapframe | type= geoline | stroke= #FF0000 | stroke-width= 2 | stroke-opacity= 1 | id =Q1110973}}
=== Mit dem Flugzeug ===
{{vCard | type = airport | name = East Kimberley Regional Airport | lat = -15.783778 | long = 128.7125 | description = Hat Verbindungen nach [[Perth]], [[Darwin]] und [[Broome (Westaustralien)|Broome]]. }}
=== Mit dem Bus ===
'''[https://www.greyhound.com.au Greyhound Australia]''' hat das Monopol auf der Strecke Broome–Katherine–Darwin.
=== Auf der Straße ===
Die einzige Fernstraße ist der in Ost-West-Richtung verlaufende ''Victoria-Highway'' als Teil des ganz Australien umspannenden {{Marker | name =[[National Highway 1]] | type =road | lat =-15.778348 | long =128.743900 | wikidata =Q17871565}} ({{RSIGN|AU|NA|1}}).
== Mobilität ==
Es gibt keinen öffentlichen Nahverkehr. Ziele in der Umgebung erreicht man nur als Selbstfahrer mit Allrad oder über Touren, die lokale Veranstalter anbieten.
== Sehenswürdigkeiten ==
* {{vCard | type = museum | name = Historical Museum | url = https://www.kununurra.org.au/ | lat = -15.775333 | long = 128.737389 | hours = tgl. 12-30-17.30 | description = }}
* {{vCard | type = viewpoint | name = Mount Cyril | address = 44 Weaber Plain Rd | lat = -15.771722 | long = 128.746417 | description = Aussichtspunkt }}
* {{vCard | type = lake | name = Lily Creek Lagoon | lat = -15.789528 | long = 128.737361 | description = Feuchtgebiet mit zahlreichen Vögeln, aber auch Krokodilen. }}
* {{vCard | type = botanical garden | name = Kununurra Arboretum | lat = -15.777583 | long = 128.729667 | description = }}
* {{vCard|type=see |name=Kelly’s Knob |address=|phone=|email=|fax=|url=|hours=|price=|lat=-15.764891|long=128.742604|lastedit=|description=Aussichtspunkt auf einem Hügel ca. 3 km nördlich der City, mit schönem Blick über die Stadt.}}
* {{vCard|type=bridge |name=Ord River Diversion dam |address=|phone=|email=|fax=|url=|hours=|price=|lat=-15.791758|long=128.695537|lastedit=|description=Straßenbrücke am westlichen Ende der Stadt mit schönem Blick auf den Ord River. Fotos sollte man allerdings nur vom Straßenrand vor/nach der Brücke schießen, weil Anhalten auf der Brücke (außer an Ampeln bei Baustellen) strafbar ist.}}
* {{vCard | name =Ivanhoe Crossing | type =bridge | lat =-15.689520 | long =128.688170 | description =ein beliebter, aber gefährlicher Aussichtspunkt für Krokodile.}}
== Aktivitäten ==
Outdoor, Ausflüge in die Kimberly-Region mit ihren Nationalparks. '''Touren:''' Im Visitor Center sowie diversen, örtlichen Reiseunternehmen kann man Bootstouren, Flüge und ein- bis mehrtägige Allrad-Touren zur Zebra Stone Mine, dem Lake Argyle, dem Purnululu Nationalpark, zum Kimberley-Plateau, Angelausflüge, etc. buchen.
[[File:2012-10-Mirima-05.jpg|thumb|Mirima (Hidden Valley) Nationalpark.]]
Direkt am Stadtrand ist der {{vCard | type = national park | name = Hidden Valley (Mirima) Nationalpark | url = https://parks.dpaw.wa.gov.au/park/mirima | lat = -15.773056 | long = 128.762778 | wikidata =Q1560973 | description = 2086 Hektar ist ein kleines, verstecktes Tal am nordöstlichen Ende der Stadt mit einigen kurzen, überwiegend schattigen Wanderwegen (je ca. 15-40 Minuten). Sehenswert ist die Gebirgskette aus orangerotem Sandstein und einigen runden, Bienenkörben ähnlichen Sandsteinkuppen. Es fanden sich auch Felszeichnungen der ''Miriwoong''-Aborigines. Mindestens sollte man 3-4 Stunden einplanen, aber man kann auch gut einen ganzen Tag hier verbringen. Große Teile des Parks sind auch per Rollstuhl zugänglich. }}
== Einkaufen ==
Kununurra ist das Versorgungszentrum einer großen Region. Neben Lebensmittelhändlern sind besonders Geschäfte für KfZ-Bedarf gut vertreten.
<!-- == Küche ==
-->
== Nachtleben ==
Pubs.
== Unterkunft ==
;Camping
* {{vCard | type = caravan site | name = Discovery Parks | url = https://www.discoveryholidayparks.com.au/wa/east_kimberley/lake_kununurra | address = Lakeview Dr. | lat = -15.791528 | long = 128.720972 | phone = +61 8 9168 1031 | price = Stellplätze A$ 36-53 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Hidden Valley Caravan Park | url = http://www.hiddenvalleytouristpark.com/ | address = 110 Weaber Plain Rd. | lat = -15.766222 | long = 128.747333 | hours = Rezeption 8.00-17.00 | price = Stellplätze: A$ 38, Hütten: A$ 125-150 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Ivanhoe Village Caravan Resort | address = 214 Coolibah Dr | lat = -15.770111 | long = 128.73075 | price = Stellplätze A$ 42-59; Hütten: A$ 200-350 | lastedit = 2017-09-10 | description = Mindestaufenthalt 2 Nächte. }} Auf der gegenüberliegenden Straßenseite ist der KAS Caravan Park.
;Jugendherbergen
* {{vCard | type = hostel | name = Kununurra Backpackers | url = http://www.kununurrabackpackers.com.au/ | address = 24 Nutwood Cres. | lat = -15.768667 | long = 128.743 | phone = +61 8 9169 1998 | price = Schlafsaal A$ 25-29, pro Woche 140-165. Doppel A$ 65 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hostel | name = Kimberley Croc (YHA) | url = http://kimberleycroc.com.au/ | address = 120 Konkerberry Dr. | lat = -15.768667 | long = 128.743 | phone = +61 8 9168 2702 | price = Schlafsaal A$ 24-28 (Nicht-Mitglieder +3 A$), Deluxe-Doppel: A$ 90-99. Günstigere Wochentarife | lastedit = 2017-09-10 | description = }}
;Gehoben
* {{vCard | type = hotel | name = Kununurra Lakeside Resort | url = http://lakeside.com.au | address = 50 Casuarina Way | lat = -15.783194 | long = 128.742861 | phone = +61 8 9169 1092 | price = A$ 160-230 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hotel | name = Kimberley Grande Resort | subtype = 4 | url = https://www.thekimberleygrande.com.au/ | address = 20 Victoria Hwy | lat = -15.782806 | long = 128.737056 | phone = +61 8 9166 5688 | price = online A$ 205-249 | lastedit = 2017-09-10 | description = }}
== Gesundheit ==
{{vCard | type = hospital | name = Kununurra District Hospital | address = 96 Coolibah Dr | lat = -15.775278 | long = 128.734333 | phone = +61 8 9166 4222 | description = }}
== Praktische Hinweise ==
Postleitzahl: 6743<br />
{{vCard | type = post | name = Postamt | lat = -15.773889 | long = 128.738694 | hours = Mo.-Fr. 9.00-17.00 | description = }}
== Ausflüge ==
[[File:2012-10-Ivanhoe-08.jpg|thumb|Ivanhoe Crossing]]
[[File:2012-15-LA-Pool-04.jpg|thumb|Lake Argyle, Infinity Pool]]
* {{vCard | type = lake | name = Lake Argyle | lat = -16.319472 | long = 128.799583 | directions = Die Lake Argyle Road zweigt ca. 3 km vor der Grenze zum Northern Territory nach Süden ab. Sie ist ca. 38 km lang, zwar nur schmal aber durchgehend asphaltiert und wenig befahren. Außer zwei Rastplätzen gibt es unterwegs nur schöne Landschaft. Insgesamt 70 km von Kunumurra. | description = ist der größte Stausee von Australien (bzgl. Oberfläche und Wasservolumen über doppelt so groß wie der [[Bodensee]]), der ein Gebiet größer als Bayern ganzjährig mit Strom und Wasser versorgt. Umgeben von mehreren Gebirgsketten, mit über hundert Inseln und Inselchen im See und einer nahezu unberührten, einmaligen Flora und Fauna, ist er ein Muß für jeden Naturliebhaber. Das Nordufer um die Staumauer ist gut erschlossen und bietet neben einsamen Badebuchten (Vorsicht, immer ein paar Meter Abstand zu Süßwasserkrokodilen halten, wenn sie sich belästigt fühlen, können sie bissig werden!) auch Seerundfahrten (besonders eindrucksvoll sind die Sunrise- und Sunset-Cruises, bei denen neben fantastischen Sonnenauf- und Untergängen besonders viele Tiere beobachtet werden können) und Angeltouren. Am Ufer gibt es das luxuriöse ''Lake Argyle Resort'' (2-Bett-Hütten A$ 259-359). ''[https://www.lakeargyle.com/ Lake Argyle Tourist Village]'' (mit Hotel, Motel, Campground, Restaurant, Minimarket, Tankstelle, Tour-Bookings) liegt auf einem Hügel oberhalb der Staumauer und bietet auf etlichen kurzen Wanderwegen fantastische Ausblicke auf den See und die umgebenden Bergketten. Besonders erwähnenswert sind der ''Infinity Pool'' (übersetzt etwa: „Becken der Unendlichkeit“), der den Eindruck erweckt, man könne direkt hinaus in die Weiten des Stausees schwimmen und die Durack Homestead, ein 1894 von den ersten Siedlern in dieser Region errichtetes Wohngebäude, das heute als Regionalmuseum dient. }}
* '''Ord River:''' Im Abschnitt zwischen Lake Argyle und Lake Kununurra ist der Ord River ein beliebtes Ziel für organisierte River Cruises und Angeltouren in einer einmaligen Landschaft. <br />'''Ivanhoe Crossing:''' Die Ivanhoe-Furt durch den Ord River ist ein sehr beliebtes Fotomotiv. Sie liegt nordöstlich der Stadt und ist über eine 12 km lange asphaltierte Straße gut erreichbar. Die Furt ist zwar ebenfalls asphaltiert, steht aber ganzjährig unter Wasser (20 bis 150 cm), ist nur zur Trockenzeit geöffnet und sollte nur mit Allradantrieb befahren werden. Hier ist ein beliebter Angelplatz, aber, no swimming, Salzwasserkrokodile! Auf der anderen Seite des Ord River geht es nur über Allradpisten weiter (teilweise auf Privatland, u.U. muss vorher eine Fahrerlaubnis eingeholt werden).
* '''Zebra Stone Mines:''' Weltweit einmalig ist der ausschließlich in der Gegend um Kununurra und den Lake Argyle vorkommende Zebra Stone, eine Sandsteinart, die alle paar Milli- bzw. Zentimeter Schichten einer anderen Färbung aufweist. Die Steine sind ein beliebtes Ausgangsmaterial für Kunstgegenstände aller Art. Die Zufahrt zu mehreren Zebra Stone Mines ist nur über Allradpisten oder gebuchte Touren möglich.
* [[Nördliches Westaustralien#Abstecher in die „unberührten” Kimberleys|Purnululu Nationalpark]] (''Bungle Bungles'').
<!--
== Literatur ==
-->
== Weblinks ==
* [https://www.accesswa.com.au/ Barrierfreies Reisen in WA] (engl.)
* [https://www.kimberleyaustralia.com/ Kimberley Region] (engl.)
{{class-3}}
{{GeoData| lat=-15.773842| long=128.738544 | radius= }}
{{IstInKat|Westaustralien}}
akfdm9nd5140cg2rez4bf8sd0xhvdt2
1769031
1769030
2026-04-16T15:59:15Z
Wowo2024
53507
1769031
wikitext
text/x-wiki
{{quickbar Ort
| Höhe=
| Bild=[[Bild:Kununurra-town.png|292px|]]
| Provinz=Western Australia
| ProvinzLabel=
| Einwohner=
| TouriInfoWeb=[http://www.visitkununurra.com visitkununurra.com]
| TouriInfoTel=
}}
'''Kununurra''' ist eine Stadt in Kimberly-Region des [[Nördliches Westaustralien|nördlichen]] [[Westaustralien]]. Sie liegt am [[Victoria Highway (Australien)|Victoria Highway]].
== Hintergrund ==
[[Bild:Sandelholzplantagen Kununurra.JPG|thumb|[[w:Sandelholz|Sandelholzplantagen]] am Ord River bei Kununurra.]]
Über {{Marker | name =Kununurra | type =town | wikidata =Q1110973}} und seine nähere Umgebung gibt das {{Marker | type =tourist information | name =Visitor Centre | url =http://www.visitkununurra.com/ | lat =-15.772722 | long =128.739083}} Auskunft. Adresse: ''Lot 75 Coolibah Drive'', geöffnet werktags 08:30-16:30 Uhr, Sa.+So. bis 14:00 Uhr. Die Stadt grenzt im Osten direkt an den Bundesstaat [[Northern Territory]] an.
Beste Reisezeit ist die “Dry” (Trockenzeit). Im schwül-heißen November bieten Reiseveranstalter ihre Touren vielfach zum halben Preis. Viele regelmäßige Touren werden während der “Wet” (Regenzeit) komplett eingestellt. In dieser Region liegen die Tageshöchsttemperaturen ganzjährig bei 32-37 °C.
Wirtschaftlich bedeutend ist für dem Ort neben dem Tourismus die {{Marker | name =[[w:Argyle-Diamantenmine|Argyle-Diamantenmine]] | type =mine | wikidata =Q652475}}, die weltweit größte Diamantenmine. Das große Loch kann in organisierten Tagesausflügen besichtigt werden (Buchung im Kununurra Visitor Centre).
== Anreise ==
{{mapframe | type= geoline | stroke= #FF0000 | stroke-width= 2 | stroke-opacity= 1 | id =Q1110973}}
=== Mit dem Flugzeug ===
{{vCard | type = airport | name = East Kimberley Regional Airport | lat = -15.783778 | long = 128.7125 | description = Hat Verbindungen nach [[Perth]], [[Darwin]] und [[Broome (Westaustralien)|Broome]]. }}
=== Mit dem Bus ===
'''[https://www.greyhound.com.au Greyhound Australia]''' hat das Monopol auf der Strecke Broome–Katherine–Darwin.
=== Auf der Straße ===
Die einzige Fernstraße ist der in Ost-West-Richtung verlaufende ''Victoria-Highway'' als Teil des ganz Australien umspannenden {{Marker | name =[[National Highway 1]] | type =road | lat =-15.778348 | long =128.743900 | wikidata =Q17871565}} ({{RSIGN|AU|NA|1}}).
== Mobilität ==
Es gibt keinen öffentlichen Nahverkehr. Ziele in der Umgebung erreicht man nur als Selbstfahrer mit Allrad oder über Touren, die lokale Veranstalter anbieten.
== Sehenswürdigkeiten ==
* {{vCard | type = museum | name = Historical Museum | url = https://www.kununurra.org.au/ | lat = -15.775333 | long = 128.737389 | hours = tgl. 12-30-17.30 | description = }}
* {{vCard | type = viewpoint | name = Mount Cyril | address = 44 Weaber Plain Rd | lat = -15.771722 | long = 128.746417 | description = Aussichtspunkt }}
* {{vCard | type = lake | name = Lily Creek Lagoon | lat = -15.789528 | long = 128.737361 | description = Feuchtgebiet mit zahlreichen Vögeln, aber auch Krokodilen. }}
* {{vCard | type = botanical garden | name = Kununurra Arboretum | lat = -15.777583 | long = 128.729667 | description = }}
* {{vCard|type=see |name=Kelly’s Knob |address=|phone=|email=|fax=|url=|hours=|price=|lat=-15.764891|long=128.742604|lastedit=|description=Aussichtspunkt auf einem Hügel ca. 3 km nördlich der City, mit schönem Blick über die Stadt.}}
* {{vCard|type=bridge |name=Ord River Diversion dam |address=|phone=|email=|fax=|url=|hours=|price=|lat=-15.791758|long=128.695537|lastedit=|description=Straßenbrücke am westlichen Ende der Stadt mit schönem Blick auf den Ord River. Fotos sollte man allerdings nur vom Straßenrand vor/nach der Brücke schießen, weil Anhalten auf der Brücke (außer an Ampeln bei Baustellen) strafbar ist.}}
* {{vCard | name =Lake Kununurra | type =lake | wikidata =Q1800974 | description =ein Naherholungsgebiet.}}
== Aktivitäten ==
Outdoor, Ausflüge in die Kimberly-Region mit ihren Nationalparks. '''Touren:''' Im Visitor Center sowie diversen, örtlichen Reiseunternehmen kann man Bootstouren, Flüge und ein- bis mehrtägige Allrad-Touren zur Zebra Stone Mine, dem Lake Argyle, dem Purnululu Nationalpark, zum Kimberley-Plateau, Angelausflüge, etc. buchen.
[[File:2012-10-Mirima-05.jpg|thumb|Mirima (Hidden Valley) Nationalpark.]]
Direkt am Stadtrand ist der {{vCard | type = national park | name = Hidden Valley (Mirima) Nationalpark | url = https://parks.dpaw.wa.gov.au/park/mirima | lat = -15.773056 | long = 128.762778 | wikidata =Q1560973 | description = 2086 Hektar ist ein kleines, verstecktes Tal am nordöstlichen Ende der Stadt mit einigen kurzen, überwiegend schattigen Wanderwegen (je ca. 15-40 Minuten). Sehenswert ist die Gebirgskette aus orangerotem Sandstein und einigen runden, Bienenkörben ähnlichen Sandsteinkuppen. Es fanden sich auch Felszeichnungen der ''Miriwoong''-Aborigines. Mindestens sollte man 3-4 Stunden einplanen, aber man kann auch gut einen ganzen Tag hier verbringen. Große Teile des Parks sind auch per Rollstuhl zugänglich. }}
== Einkaufen ==
Kununurra ist das Versorgungszentrum einer großen Region. Neben Lebensmittelhändlern sind besonders Geschäfte für KfZ-Bedarf gut vertreten.
<!-- == Küche ==
-->
== Nachtleben ==
Pubs.
== Unterkunft ==
;Camping
* {{vCard | type = caravan site | name = Discovery Parks | url = https://www.discoveryholidayparks.com.au/wa/east_kimberley/lake_kununurra | address = Lakeview Dr. | lat = -15.791528 | long = 128.720972 | phone = +61 8 9168 1031 | price = Stellplätze A$ 36-53 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Hidden Valley Caravan Park | url = http://www.hiddenvalleytouristpark.com/ | address = 110 Weaber Plain Rd. | lat = -15.766222 | long = 128.747333 | hours = Rezeption 8.00-17.00 | price = Stellplätze: A$ 38, Hütten: A$ 125-150 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Ivanhoe Village Caravan Resort | address = 214 Coolibah Dr | lat = -15.770111 | long = 128.73075 | price = Stellplätze A$ 42-59; Hütten: A$ 200-350 | lastedit = 2017-09-10 | description = Mindestaufenthalt 2 Nächte. }} Auf der gegenüberliegenden Straßenseite ist der KAS Caravan Park.
;Jugendherbergen
* {{vCard | type = hostel | name = Kununurra Backpackers | url = http://www.kununurrabackpackers.com.au/ | address = 24 Nutwood Cres. | lat = -15.768667 | long = 128.743 | phone = +61 8 9169 1998 | price = Schlafsaal A$ 25-29, pro Woche 140-165. Doppel A$ 65 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hostel | name = Kimberley Croc (YHA) | url = http://kimberleycroc.com.au/ | address = 120 Konkerberry Dr. | lat = -15.768667 | long = 128.743 | phone = +61 8 9168 2702 | price = Schlafsaal A$ 24-28 (Nicht-Mitglieder +3 A$), Deluxe-Doppel: A$ 90-99. Günstigere Wochentarife | lastedit = 2017-09-10 | description = }}
;Gehoben
* {{vCard | type = hotel | name = Kununurra Lakeside Resort | url = http://lakeside.com.au | address = 50 Casuarina Way | lat = -15.783194 | long = 128.742861 | phone = +61 8 9169 1092 | price = A$ 160-230 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hotel | name = Kimberley Grande Resort | subtype = 4 | url = https://www.thekimberleygrande.com.au/ | address = 20 Victoria Hwy | lat = -15.782806 | long = 128.737056 | phone = +61 8 9166 5688 | price = online A$ 205-249 | lastedit = 2017-09-10 | description = }}
== Gesundheit ==
{{vCard | type = hospital | name = Kununurra District Hospital | address = 96 Coolibah Dr | lat = -15.775278 | long = 128.734333 | phone = +61 8 9166 4222 | description = }}
== Praktische Hinweise ==
Postleitzahl: 6743<br />
{{vCard | type = post | name = Postamt | lat = -15.773889 | long = 128.738694 | hours = Mo.-Fr. 09:00-17:00 | description = }}
== Ausflüge ==
[[File:2012-10-Ivanhoe-08.jpg|thumb|Ivanhoe Crossing]]
[[File:2012-15-LA-Pool-04.jpg|thumb|Lake Argyle, Infinity Pool]]
* {{vCard | type = lake | name = Lake Argyle | lat = -16.319472 | long = 128.799583 | directions = Die Lake Argyle Road zweigt ca. 3 km vor der Grenze zum Northern Territory nach Süden ab. Sie ist ca. 38 km lang, zwar nur schmal aber durchgehend asphaltiert und wenig befahren. Außer zwei Rastplätzen gibt es unterwegs nur schöne Landschaft. Insgesamt 70 km von Kunumurra. | description = ist der größte Stausee von Australien (bzgl. Oberfläche und Wasservolumen über doppelt so groß wie der [[Bodensee]]), der ein Gebiet größer als Bayern ganzjährig mit Strom und Wasser versorgt. Umgeben von mehreren Gebirgsketten, mit über hundert Inseln und Inselchen im See und einer nahezu unberührten, einmaligen Flora und Fauna, ist er ein Muß für jeden Naturliebhaber. Das Nordufer um die Staumauer ist gut erschlossen und bietet neben einsamen Badebuchten (Vorsicht, immer ein paar Meter Abstand zu Süßwasserkrokodilen halten, wenn sie sich belästigt fühlen, können sie bissig werden!) auch Seerundfahrten (besonders eindrucksvoll sind die Sunrise- und Sunset-Cruises, bei denen neben fantastischen Sonnenauf- und Untergängen besonders viele Tiere beobachtet werden können) und Angeltouren. Am Ufer gibt es das luxuriöse ''Lake Argyle Resort'' (2-Bett-Hütten A$ 259-359). ''[https://www.lakeargyle.com/ Lake Argyle Tourist Village]'' (mit Hotel, Motel, Campground, Restaurant, Minimarket, Tankstelle, Tour-Bookings) liegt auf einem Hügel oberhalb der Staumauer und bietet auf etlichen kurzen Wanderwegen fantastische Ausblicke auf den See und die umgebenden Bergketten. Besonders erwähnenswert sind der ''Infinity Pool'' (übersetzt etwa: „Becken der Unendlichkeit“), der den Eindruck erweckt, man könne direkt hinaus in die Weiten des Stausees schwimmen und die Durack Homestead, ein 1894 von den ersten Siedlern in dieser Region errichtetes Wohngebäude, das heute als Regionalmuseum dient. }}
* '''Ord River:''' Im Abschnitt zwischen Lake Argyle und Lake Kununurra ist der Ord River ein beliebtes Ziel für organisierte River Cruises und Angeltouren in einer einmaligen Landschaft.
* {{vCard | name =Ivanhoe Crossing | type =bridge | lat =-15.689520 | long =128.688170 | description =ein beliebter, aber gefährlicher Aussichtspunkt für Krokodile. Die Ivanhoe-Furt durch den Ord River ist ein sehr beliebtes Fotomotiv. Sie liegt nordöstlich der Stadt und ist über eine 12 km lange asphaltierte Straße gut erreichbar. Die Furt ist zwar ebenfalls asphaltiert, steht aber ganzjährig unter Wasser (20 bis 150 cm), ist nur zur Trockenzeit geöffnet und sollte nur mit Allradantrieb befahren werden. Hier ist ein beliebter Angelplatz, aber, no swimming, Salzwasserkrokodile! Auf der anderen Seite des Ord River geht es nur über Allradpisten weiter (teilweise auf Privatland, u.U. muss vorher eine Fahrerlaubnis eingeholt werden).}}
* '''Zebra Stone Mines:''' Weltweit einmalig ist der ausschließlich in der Gegend um Kununurra und den Lake Argyle vorkommende Zebra Stone, eine Sandsteinart, die alle paar Milli- bzw. Zentimeter Schichten einer anderen Färbung aufweist. Die Steine sind ein beliebtes Ausgangsmaterial für Kunstgegenstände aller Art. Die Zufahrt zu mehreren Zebra Stone Mines ist nur über Allradpisten oder gebuchte Touren möglich.
* [[Nördliches Westaustralien#Abstecher in die „unberührten” Kimberleys|Purnululu Nationalpark]] (''Bungle Bungles'').
<!--
== Literatur ==
-->
== Weblinks ==
* [https://www.accesswa.com.au/ Barrierfreies Reisen in WA] (engl.)
* [https://www.kimberleyaustralia.com/ Kimberley Region] (engl.)
{{class-3}}
{{GeoData| lat=-15.773842| long=128.738544 | radius= }}
{{IstInKat|Westaustralien}}
flddy5wbo1jv619lkz0co3ep0pymmjx
1769039
1769031
2026-04-16T18:29:14Z
Qualitätssicherung
50648
wikilink
1769039
wikitext
text/x-wiki
{{quickbar Ort
| Höhe=
| Bild=[[Bild:Kununurra-town.png|292px|]]
| Provinz=Western Australia
| ProvinzLabel=
| Einwohner=
| TouriInfoWeb=[http://www.visitkununurra.com visitkununurra.com]
| TouriInfoTel=
}}
'''Kununurra''' ist eine Stadt in Kimberly-Region des [[Nördliches Westaustralien|nördlichen Westaustralien]]. Sie liegt am [[Victoria Highway (Australien)|Victoria Highway]].
== Hintergrund ==
[[Bild:Sandelholzplantagen Kununurra.JPG|thumb|[[w:Sandelholz|Sandelholzplantagen]] am Ord River bei Kununurra.]]
Über {{Marker | name =Kununurra | type =town | wikidata =Q1110973}} und seine nähere Umgebung gibt das {{Marker | type =tourist information | name =Visitor Centre | url =http://www.visitkununurra.com/ | lat =-15.772722 | long =128.739083}} Auskunft. Adresse: ''Lot 75 Coolibah Drive'', geöffnet werktags 08:30-16:30 Uhr, Sa.+So. bis 14:00 Uhr. Die Stadt grenzt im Osten direkt an den Bundesstaat [[Northern Territory]] an.
Beste Reisezeit ist die “Dry” (Trockenzeit). Im schwül-heißen November bieten Reiseveranstalter ihre Touren vielfach zum halben Preis. Viele regelmäßige Touren werden während der “Wet” (Regenzeit) komplett eingestellt. In dieser Region liegen die Tageshöchsttemperaturen ganzjährig bei 32-37 °C.
Wirtschaftlich bedeutend ist für dem Ort neben dem Tourismus die {{Marker | name =[[w:Argyle-Diamantenmine|Argyle-Diamantenmine]] | type =mine | wikidata =Q652475}}, die weltweit größte Diamantenmine. Das große Loch kann in organisierten Tagesausflügen besichtigt werden (Buchung im Kununurra Visitor Centre).
== Anreise ==
{{mapframe | type= geoline | stroke= #FF0000 | stroke-width= 2 | stroke-opacity= 1 | id =Q1110973}}
=== Mit dem Flugzeug ===
{{vCard | type = airport | name = East Kimberley Regional Airport | lat = -15.783778 | long = 128.7125 | description = Hat Verbindungen nach [[Perth]], [[Darwin]] und [[Broome (Westaustralien)|Broome]]. }}
=== Mit dem Bus ===
'''[https://www.greyhound.com.au Greyhound Australia]''' hat das Monopol auf der Strecke Broome–Katherine–Darwin.
=== Auf der Straße ===
Die einzige Fernstraße ist der in Ost-West-Richtung verlaufende ''Victoria-Highway'' als Teil des ganz Australien umspannenden {{Marker | name =[[National Highway 1]] | type =road | lat =-15.778348 | long =128.743900 | wikidata =Q17871565}} ({{RSIGN|AU|NA|1}}).
== Mobilität ==
Es gibt keinen öffentlichen Nahverkehr. Ziele in der Umgebung erreicht man nur als Selbstfahrer mit Allrad oder über Touren, die lokale Veranstalter anbieten.
== Sehenswürdigkeiten ==
* {{vCard | type = museum | name = Historical Museum | url = https://www.kununurra.org.au/ | lat = -15.775333 | long = 128.737389 | hours = tgl. 12-30-17.30 | description = }}
* {{vCard | type = viewpoint | name = Mount Cyril | address = 44 Weaber Plain Rd | lat = -15.771722 | long = 128.746417 | description = Aussichtspunkt }}
* {{vCard | type = lake | name = Lily Creek Lagoon | lat = -15.789528 | long = 128.737361 | description = Feuchtgebiet mit zahlreichen Vögeln, aber auch Krokodilen. }}
* {{vCard | type = botanical garden | name = Kununurra Arboretum | lat = -15.777583 | long = 128.729667 | description = }}
* {{vCard|type=see |name=Kelly’s Knob |address=|phone=|email=|fax=|url=|hours=|price=|lat=-15.764891|long=128.742604|lastedit=|description=Aussichtspunkt auf einem Hügel ca. 3 km nördlich der City, mit schönem Blick über die Stadt.}}
* {{vCard|type=bridge |name=Ord River Diversion dam |address=|phone=|email=|fax=|url=|hours=|price=|lat=-15.791758|long=128.695537|lastedit=|description=Straßenbrücke am westlichen Ende der Stadt mit schönem Blick auf den Ord River. Fotos sollte man allerdings nur vom Straßenrand vor/nach der Brücke schießen, weil Anhalten auf der Brücke (außer an Ampeln bei Baustellen) strafbar ist.}}
* {{vCard | name =Lake Kununurra | type =lake | wikidata =Q1800974 | description =ein Naherholungsgebiet.}}
== Aktivitäten ==
Outdoor, Ausflüge in die Kimberly-Region mit ihren Nationalparks. '''Touren:''' Im Visitor Center sowie diversen, örtlichen Reiseunternehmen kann man Bootstouren, Flüge und ein- bis mehrtägige Allrad-Touren zur Zebra Stone Mine, dem Lake Argyle, dem Purnululu Nationalpark, zum Kimberley-Plateau, Angelausflüge, etc. buchen.
[[File:2012-10-Mirima-05.jpg|thumb|Mirima (Hidden Valley) Nationalpark.]]
Direkt am Stadtrand ist der {{vCard | type = national park | name = Hidden Valley (Mirima) Nationalpark | url = https://parks.dpaw.wa.gov.au/park/mirima | lat = -15.773056 | long = 128.762778 | wikidata =Q1560973 | description = 2086 Hektar ist ein kleines, verstecktes Tal am nordöstlichen Ende der Stadt mit einigen kurzen, überwiegend schattigen Wanderwegen (je ca. 15-40 Minuten). Sehenswert ist die Gebirgskette aus orangerotem Sandstein und einigen runden, Bienenkörben ähnlichen Sandsteinkuppen. Es fanden sich auch Felszeichnungen der ''Miriwoong''-Aborigines. Mindestens sollte man 3-4 Stunden einplanen, aber man kann auch gut einen ganzen Tag hier verbringen. Große Teile des Parks sind auch per Rollstuhl zugänglich. }}
== Einkaufen ==
Kununurra ist das Versorgungszentrum einer großen Region. Neben Lebensmittelhändlern sind besonders Geschäfte für KfZ-Bedarf gut vertreten.
<!-- == Küche ==
-->
== Nachtleben ==
Pubs.
== Unterkunft ==
;Camping
* {{vCard | type = caravan site | name = Discovery Parks | url = https://www.discoveryholidayparks.com.au/wa/east_kimberley/lake_kununurra | address = Lakeview Dr. | lat = -15.791528 | long = 128.720972 | phone = +61 8 9168 1031 | price = Stellplätze A$ 36-53 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Hidden Valley Caravan Park | url = http://www.hiddenvalleytouristpark.com/ | address = 110 Weaber Plain Rd. | lat = -15.766222 | long = 128.747333 | hours = Rezeption 8.00-17.00 | price = Stellplätze: A$ 38, Hütten: A$ 125-150 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = caravan site | name = Ivanhoe Village Caravan Resort | address = 214 Coolibah Dr | lat = -15.770111 | long = 128.73075 | price = Stellplätze A$ 42-59; Hütten: A$ 200-350 | lastedit = 2017-09-10 | description = Mindestaufenthalt 2 Nächte. }} Auf der gegenüberliegenden Straßenseite ist der KAS Caravan Park.
;Jugendherbergen
* {{vCard | type = hostel | name = Kununurra Backpackers | url = http://www.kununurrabackpackers.com.au/ | address = 24 Nutwood Cres. | lat = -15.768667 | long = 128.743 | phone = +61 8 9169 1998 | price = Schlafsaal A$ 25-29, pro Woche 140-165. Doppel A$ 65 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hostel | name = Kimberley Croc (YHA) | url = http://kimberleycroc.com.au/ | address = 120 Konkerberry Dr. | lat = -15.768667 | long = 128.743 | phone = +61 8 9168 2702 | price = Schlafsaal A$ 24-28 (Nicht-Mitglieder +3 A$), Deluxe-Doppel: A$ 90-99. Günstigere Wochentarife | lastedit = 2017-09-10 | description = }}
;Gehoben
* {{vCard | type = hotel | name = Kununurra Lakeside Resort | url = http://lakeside.com.au | address = 50 Casuarina Way | lat = -15.783194 | long = 128.742861 | phone = +61 8 9169 1092 | price = A$ 160-230 | lastedit = 2017-09-10 | description = }}
* {{vCard | type = hotel | name = Kimberley Grande Resort | subtype = 4 | url = https://www.thekimberleygrande.com.au/ | address = 20 Victoria Hwy | lat = -15.782806 | long = 128.737056 | phone = +61 8 9166 5688 | price = online A$ 205-249 | lastedit = 2017-09-10 | description = }}
== Gesundheit ==
{{vCard | type = hospital | name = Kununurra District Hospital | address = 96 Coolibah Dr | lat = -15.775278 | long = 128.734333 | phone = +61 8 9166 4222 | description = }}
== Praktische Hinweise ==
Postleitzahl: 6743<br />
{{vCard | type = post | name = Postamt | lat = -15.773889 | long = 128.738694 | hours = Mo.-Fr. 09:00-17:00 | description = }}
== Ausflüge ==
[[File:2012-10-Ivanhoe-08.jpg|thumb|Ivanhoe Crossing]]
[[File:2012-15-LA-Pool-04.jpg|thumb|Lake Argyle, Infinity Pool]]
* {{vCard | type = lake | name = Lake Argyle | lat = -16.319472 | long = 128.799583 | directions = Die Lake Argyle Road zweigt ca. 3 km vor der Grenze zum Northern Territory nach Süden ab. Sie ist ca. 38 km lang, zwar nur schmal aber durchgehend asphaltiert und wenig befahren. Außer zwei Rastplätzen gibt es unterwegs nur schöne Landschaft. Insgesamt 70 km von Kunumurra. | description = ist der größte Stausee von Australien (bzgl. Oberfläche und Wasservolumen über doppelt so groß wie der [[Bodensee]]), der ein Gebiet größer als Bayern ganzjährig mit Strom und Wasser versorgt. Umgeben von mehreren Gebirgsketten, mit über hundert Inseln und Inselchen im See und einer nahezu unberührten, einmaligen Flora und Fauna, ist er ein Muß für jeden Naturliebhaber. Das Nordufer um die Staumauer ist gut erschlossen und bietet neben einsamen Badebuchten (Vorsicht, immer ein paar Meter Abstand zu Süßwasserkrokodilen halten, wenn sie sich belästigt fühlen, können sie bissig werden!) auch Seerundfahrten (besonders eindrucksvoll sind die Sunrise- und Sunset-Cruises, bei denen neben fantastischen Sonnenauf- und Untergängen besonders viele Tiere beobachtet werden können) und Angeltouren. Am Ufer gibt es das luxuriöse ''Lake Argyle Resort'' (2-Bett-Hütten A$ 259-359). ''[https://www.lakeargyle.com/ Lake Argyle Tourist Village]'' (mit Hotel, Motel, Campground, Restaurant, Minimarket, Tankstelle, Tour-Bookings) liegt auf einem Hügel oberhalb der Staumauer und bietet auf etlichen kurzen Wanderwegen fantastische Ausblicke auf den See und die umgebenden Bergketten. Besonders erwähnenswert sind der ''Infinity Pool'' (übersetzt etwa: „Becken der Unendlichkeit“), der den Eindruck erweckt, man könne direkt hinaus in die Weiten des Stausees schwimmen und die Durack Homestead, ein 1894 von den ersten Siedlern in dieser Region errichtetes Wohngebäude, das heute als Regionalmuseum dient. }}
* '''Ord River:''' Im Abschnitt zwischen Lake Argyle und Lake Kununurra ist der Ord River ein beliebtes Ziel für organisierte River Cruises und Angeltouren in einer einmaligen Landschaft.
* {{vCard | name =Ivanhoe Crossing | type =bridge | lat =-15.689520 | long =128.688170 | description =ein beliebter, aber gefährlicher Aussichtspunkt für Krokodile. Die Ivanhoe-Furt durch den Ord River ist ein sehr beliebtes Fotomotiv. Sie liegt nordöstlich der Stadt und ist über eine 12 km lange asphaltierte Straße gut erreichbar. Die Furt ist zwar ebenfalls asphaltiert, steht aber ganzjährig unter Wasser (20 bis 150 cm), ist nur zur Trockenzeit geöffnet und sollte nur mit Allradantrieb befahren werden. Hier ist ein beliebter Angelplatz, aber, no swimming, Salzwasserkrokodile! Auf der anderen Seite des Ord River geht es nur über Allradpisten weiter (teilweise auf Privatland, u.U. muss vorher eine Fahrerlaubnis eingeholt werden).}}
* '''Zebra Stone Mines:''' Weltweit einmalig ist der ausschließlich in der Gegend um Kununurra und den Lake Argyle vorkommende Zebra Stone, eine Sandsteinart, die alle paar Milli- bzw. Zentimeter Schichten einer anderen Färbung aufweist. Die Steine sind ein beliebtes Ausgangsmaterial für Kunstgegenstände aller Art. Die Zufahrt zu mehreren Zebra Stone Mines ist nur über Allradpisten oder gebuchte Touren möglich.
* [[Nördliches Westaustralien#Abstecher in die „unberührten” Kimberleys|Purnululu Nationalpark]] (''Bungle Bungles'').
<!--
== Literatur ==
-->
== Weblinks ==
* [https://www.accesswa.com.au/ Barrierfreies Reisen in WA] (engl.)
* [https://www.kimberleyaustralia.com/ Kimberley Region] (engl.)
{{class-3}}
{{GeoData| lat=-15.773842| long=128.738544 | radius= }}
{{IstInKat|Westaustralien}}
fmjcuf83l2rmvxm1zsj24qlj9t95e61
Jurien Bay
0
98983
1769004
1541981
2026-04-16T13:12:28Z
Wowo2024
53507
1769004
wikitext
text/x-wiki
{{quickbar Ort
| Bild = [[File:Jurien Bay Jetty, Jurien Bay, 2012.JPG|mini]]
| Karte = au-wa
| TouriInfoWeb= https://www.australiascoralcoast.com/destination/jurien-bay
| TouriInfoTel=
}}
'''Jurien Bay''' ist eine kleine Küstenstadt an der Coral Coast von [[Westaustralien]], etwa 220 km nördlich von [[Perth]] am Indian Ocean Drive gelegen. Sie ist gleichzeitig auch Sitz des Shire of Dandaragan. Vor der Küste erstreckt sich der ''Jurien Bay Marine Park'' mit bedeutenden Kolonien des australischen Seelöwen.
== Hintergrund ==
Der Ort wurde erstmals um 1801 durch den Kartographen ''Louis de Freycinet'' einer Expedition von ''Nicolas Baudin'' nach dem Franzosen ''Charles Marie Jurien'' benannt. In den 1950er Jahren gewann der Ort durch die zunehmende Langustenfischerei (crayfish) etwas an Bedeutung. Eine echte Entwicklung gab es aber erst ab den 1980er Jahren durch den zunehmenden Tourismus. Heute ist Jurien Bay durch seine Nähe zu Perth (etwa 2,5 Stunden Fahrzeit über den 2010 fertig gestellten ''Indian Ocean Hisghway'') ein beliebter Ausflugsort übers Wochenende, zudem finden sich hier zahllose Feriendomizile der Großstädter.
== Anreise ==
=== Mit dem Flugzeug ===
=== Mit der Bahn ===
=== Mit dem Bus ===
=== Auf der Straße ===
Der Highway 60 beginnt im Norden von Perth und ist im weiteren Verlauf besser bekannt als ''Indian Ocean Drive'', der küstennahen Variante der Süd-Nord Durchqueerung von West Australien. Er führt unmittelbar durch den Ort.
== Mobilität ==
== Sehenswürdigkeiten ==
<!--
=== Kirchen ===
=== Bauwerke ===
=== Denkmäler ===
=== Museen ===
=== Straßen und Plätze ===
-->
=== Parks ===
== Aktivitäten ==
;Fahrrad
* [https://www.australiascoralcoast.com/destination/turquoise-way '''The Turquiose Way'''] ist ein ca. 14 km langer, geteerter Fahrradweg, der von der Jurien Bay Marina bis zur Mündung des Hill River an der Küste entlang läuft. Man kann ihn auch zu Fuß oder mit einem Segway nutzen.
;Feste
* [https://www.indianoceanfestival.com.au/ '''Indian Ocean Festival'''] - Großes Fest mit Segnung der Bootsflotte zum Start der Langusten-Fangzeit an einem Samstag im November
== Einkaufen ==
== Küche ==
Die Auswahl an Essensmöglichkeiten ist vor allem Abends recht begrenzt, Montag Abend ist alles zu. Hier macht sich bemerkbar das der Ort überwiegend aus Ferienhäusern besteht.
* {{vCard|type=restaurant|name=Murray St. Grill|address=12 Murray Street|phone=+61 8 9652 2114|email=admin@murraystgrill.com.au|url=https://www.murraystgrilljurienbay.com/|hours=|price=|lat=|long=|lastedit=|description=Gutes Grillrestaurant in einer Seitenstraße}}
* {{vCard | type = restaurant | name = Sandpiper Tavern | url = https://www.sandpipertavern.com.au | email = office@sandpipertavern.com.au | address = 12 Roberts Street | phone = +61 8 9652 1229 | description = Sehr beliebtes Restaurant mit angeschlossener Pizzeria, aus europäischer Sicht recht ungemütlich
}}
<!--
=== Günstig ===
=== Mittel ===
=== Gehoben ===
-->
== Nachtleben ==
== Unterkunft ==
=== Motels ===
* {{vCard | name = Jurien Bay Motel Apartments | type = motel | url = https://www.jurienbayapartments.com.au | email = admin@jurienbayapartments.com.au | address = 7 Murray Street | phone = +61 8 9652 2062 | checkin = 14:00 | checkout = 10:00 | lastedit = 2020-05-02 | description = Eher Apartmentanlage als klassisches Motel, 2017 erbaut in sehr gutem Zustand. Keine Waschmaschinen, allerdings gibts eine Laundry (24/7) nur 100 m entfernt.
}}
* {{vCard | name = Jurien Bay Hotel | type = motel | url = https://www.jurienhotel.com.au | email = office@jurienhotel.com.au | address = 5 White Street | phone = +61 8 9652 1022 | lastedit = 2020-06-27 | description = Das Motel gehört zum Jurien Bay Hotel, der typischen australischen Kombination aus Pubrestaurant, Sportsbar, Veranstaltungsraum und Unterkunft.
}}
=== Camping & Caravan ===
* {{vCard | name = Jurien Bay Tourist Park | type = caravan site | url = https://summerstar.com.au/caravan-parks/jurien-bay | email = stay@jurienbaytouristpark.com.au | address = 1 Roberts Street | phone = +61 8 9652 1595 | facebook = SummerstarJurienBay | hours = Mo-Su 08:00-18:00 | lastedit = 2020-05-03 | description = Camping & Caravanpark mitten in Jurien Bay zwischen Indian Ocean Drive und Strand. Auch Holiday Units verfügbar.
}}
<!--
== Lernen ==
== Arbeiten ==
-->
== Sicherheit ==
== Gesundheit ==
Im '''Jurien Bay Health Centre''' in der 23 Whitfield Road befindet sich ein rund um die Uhr geöffnetes ''Emergency Department''. Die diensthabenden Schwestern führen Behandlungen mit telemedizinischer ärztlicher Unterstützung aus Perth durch (Tel.: +61 8 9652 0200).
== Praktische Hinweise ==
== Ausflüge ==
[[Datei:Australia pinnacles.jpg|mini|Pinnacle Desert]]
* [https://parks.dpaw.wa.gov.au/park/lesueur Lesueur Nationalpark] - Wer Interesse an der Pflanzenwelt hat kommt an diesem Nationalpark nicht vorbei, einiges was auf den ersten Blick unscheinbar wirkt entpuppt sich bei genauerer Beobachtung als extrem vielfältiges Nebeneinander sehr vieler Arten. Im Frühjahr blühen die meisten, wobei sich die Blühzeit aufgrund der vielen Arten lange hinzieht. Durch den Park geht eine ca. 14 km lange Rundstraße (geteert), an einigen Stellen sind Rundwege angelegt. Bei entsprechender Witterung kann es im Park sehr heiß werden. Eintritt für den Park 15 AUD {{Stand|2019|11}}. Die Zufahrt zum Nationalparksgebiet geht über die ''Cockleshell Gully Road'' (Gravel Road).
* [https://parks.dpaw.wa.gov.au/park/nambung Nambung Nationalpark] - Etwa 30 km südlich bei Cervantes liegt der Nationalpark mit einem Wüstenanteil in dem sich zahllose Felsen wie Dornen aus dem Sand erheben, die bekannte ''Pinnacles Desert''. Nach wie vor kann man auch mit dem Auto auf einer vorgegebenen schmalen Sandroute zwischen den Pinnacles durchfahren oder man läuft vom Visitor Centre aus einen 1,2 km langen Rundweg. Eintritt für den Park 15 AUD {{Stand|2019|11}}.
<!--
== Literatur ==
-->
== Weblinks ==
* [https://www.australiascoralcoast.com/destination/jurien-bay Jurien Bay bei ''Australiens Coral Coast'']
{{class-2}}
{{GeoData| lat= -30.304| long= 115.039| radius= }}
{{IstInKat|Westaustralien}}
20mwrc7yif8pv8bx3uaborut6z6iqcy
Betanzos
0
105734
1769102
1669643
2026-04-16T21:10:47Z
Scholless
15050
/* Küche */ gestrafft
1769102
wikitext
text/x-wiki
{{AndereOrte}}
{{Autoquickbar Ort
| Bild=
| TouriInfoWeb=
| TouriInfoTel=
}}
'''Betanzos''' ist eine Kleinstadt in der [[Spanien|spanischen]] Region [[Galicien]]. Sie liegt in der Provinz [[A Coruña (Provinz)|A Coruña]] am Fluss ''Mandeo'' unweit seiner Mündung in den Atlantik.
== Hintergrund ==
== Anreise ==
{{mapframe|43.281|-8.21|zoom=15}}
=== Mit dem Flugzeug ===
Der '''Flughafen A Coruña''' ''(Aeroporto de Alvedro)'' ist ca. 20 km entfernt. Aus Deutschland gibt es keine direkten Verbindungen.
=== Mit der Bahn ===
Betanzos verfügt über zwei Bahnhöfe:
* {{vCard | name = Betanzos-Cidade | type = station | lat = 43.284129 | long = -8.215916 | description = Im Nordwesten der Stadt gelegen. Es gibt Verbindungen nach Ferrol, A Coruña und Madrid-Chamartin
}}
* {{vCard | name = Betanzos-Infesta | type = station | lat = 43.270658 | long = -8.22589
}}
=== Mit dem Bus ===
=== Auf der Straße ===
* Die {{RSIGN|ES|A|6}} kommt von [[Lugo]], passiert den südlichen Rand von Betanzos und führt weiter in Richtung [[A Coruña]].
* Die {{RSIGN|ES|AP|9}} kommt von [[Ferrol]], geht im Norden an Betanzos vorbei und führt nach [[A Coruña]].
<!-- === Mit dem Schiff === --> <!-- === Mit dem Fahrrad (optional) === -->
=== Zu Fuß ===
Betanzos liegt an der Pilgerstrecke des [[Jakobsweg]]es
== Mobilität ==
Die Altstadt ist von zahlreichen Gassen durchzogen. Teils sind sie für PKW befahrbar, wobei das Parken problematisch ist. Etliche sind dazu jedoch zu schmal und außerdem mit Stufen und Treppen gespickt , sie erfordern ein Mindestmaß an Kondition.
== Sehenswürdigkeiten ==
[[File:Betanzos-san-frncisco.jpg|mini|Kirche San Francisco. Man beachte das Schwein über der Rosette auf dem Dach]]
[[File:Betanzos-grabskulptur-san-franc.jpg|mini|Sarkophag nit Szenen einer Wildschweinjagd]]
[[File:Globo de Betanzos, aerostato de papel. Betanzos, Galicia, España.jpg|mini|300px|Globo de Betanzos]]
Betanzos gilt als die Hauptstadt der '''galizischen Gotik''' und verfügt über ein sehr gut erhaltenes Stadtzentrum.
* {{vCard | name = Igrexa de San Francisco | type = monument | wikidata = Q18220881 | description = Erbaut im 14. JH, unter der Führung von Fernán Pérez de Andrade. Sehenswert das Portal mit der Anbetung der Könige und sowie gotische Buntglasfenster. Auf dem Dach befindet sich ein Kreuz, es wird von einem Wildschwein getragen. Im Inneren der Kirche befindet sich der Sarkophag des Fernán Pérez de Andrade, er ist mit Jagdszenen von Wildschweinen, Bären und anderen Tieren gestaltet.
}}
* {{vCard | name = Igrexa de Santa María do Azougue | type = monument, church | wikidata = Q15701659 | description = Gotische Kirche, erbaut im 14./15.JH über einer romanischen Kirche.
}}
* {{vCard | name = Iglesia de Santiago | type = monument | lat = 43.281003 | long = -8.211806 | description = Erbaut im 9. JH, im 14.JH. wieder errichtet. Sehenswert das Portal.
}}
* '''Stadtmauern''' mit 3 gut erhaltenen Toren aus dem 15. JH.
* {{vCard | name = Pazo de Bendaña | type = palace | comment = Palast aus dem 15. JH. | address = Praza Constitucion, 9, 15300 Betanzos | lat = 43.280679 | long = -8.211372
}}
* Paläste im Stil des Modernisme (Jugendstil): Casa Núñez, Casa Pita, Casa Limiñón, Casa del Pueblo
* {{vCard|type = tower|name = '''Torre Municipal'''|lat = 43.28096|long = -8.2112987 |alt =''(Torre del Reloj)''}}
* {{marker|type = monument|name = Monumento a García Naveira Hermanos|lat = 43.27926|long = -8.21054}}
* {{vCard | name = Praza do Campo | alt = Praza Irmáns García | type = square | lat = 43.27925493576927 | long = -8.210111015153885 | description = Sehenswert die Kirche Santo Domingo. Auf ihrem Turm wird jährlich in der Nacht vom 16. auf den 17. August ein unbemannter Papierflieger, der Globo de Betanzos, zu Ehren von San Roque gestartet, der als Schutzpatron der Stadt gilt.
}}
== Aktivitäten ==
[[File:Betanzos-praca-constitut.jpg|mini|Praca Constitution mit dem Uhrturm ]]
[[File:Betanzos-praca-2-con.jpg|mini|Praca Constitution]]
== Einkaufen ==
== Küche ==
== Nachtleben ==
== Unterkunft ==
<!-- evtl. unterteilen in günstig, mittel und gehoben -->
* {{vCard | name = Albergue de Peregrinos de Betanzos | type = hotel | comment = Pilgerherberge auf dem Jakobsweg | address = Rúa Pescadería, 4, 15300 Betanzos | lat = 43.281648 | long = -8.2118099
}}
* {{vCard | name = Hotel Villa de Betanzos | type = hotel | url = https://www.hotelvilladebetanzos.com/ | address = Avenida de Castela, 38 | lat = 43.27593415551224 | long = -8.208034227041749 | phone = +34 981 77 66 82 | subtype = 3 | description =
}}
* {{vCard | name = Hotel Garelos | type = hotel | url = https://hotelgarelos.com/ | lat = 43.27921538996286 | long = -8.212302888414271 | phone = +34 981 77 59 30 | subtype = 2 | description =
}}
* {{vCard | name = Santa María | alt = Albergue de Peregrinos | type = hostel | address = Rúa Santa María, 1 | lat = 43.282164652275284 | long = -8.211009159578426 | phone = +34 683 193 256 | description =
}}
== Sicherheit ==
== Gesundheit ==
* {{vCard | name = Brigofarma SL | type = pharmacy | address = Rúa Rosalía de Castro, 28, 15300 Betanzos | phone = +34981771411 | lat = 43.2756319 | long = -8.2081556
}}
== Praktische Hinweise ==
* {{vCard | name = Ofizina Municipal de Turismo de Betanzos | type = tourist information | url = http://www.betanzos.es | email = turismo@betanzos.dicoruna.es | address = Praza de Galicia, nº 1 15300 Betanzos | phone = +34 981 776 666 | fax = +34 981 776 529 | lat = 43.27894 | long = -8.21087
}}
== Ausflüge ==
== Literatur ==
{{-}}
<gallery mode="packed">
File:Betanzos-san-franc-innen.jpg|Sarkophag in der Kirche San Francisco
File:Betanzos-saan-franc-Sarkophag.jpg|Sarkophag von Fernán Pérez de Andrade
File:Betanzos-praca-garcia-nav.jpg|Praca do Campo
File:Betanzos-gasse-1.jpg|Gassen
File:Betanzos-gasse-2.jpg| Treppen
File:Betanzos-gasse-3.jpg| Wege
File:Betanzos-gasse-4.jpg|in der Altstadt
</gallery>
== Weblinks ==
* {{Offizielle Webseite}}
* [https://www.turismo.gal/inicio Turismo Galizien] auch auf deutsch
{{class-2}}
{{GeoData| lat= 43.279169 | long= -8.210633 | radius= }}
{{IstInKat|A Coruña (Provinz)}}
aify0w8wcgom1k2vd9ryipj82poeegi
1769103
1769102
2026-04-16T21:11:07Z
Scholless
15050
/* Unterkunft */ gestrafft
1769103
wikitext
text/x-wiki
{{AndereOrte}}
{{Autoquickbar Ort
| Bild=
| TouriInfoWeb=
| TouriInfoTel=
}}
'''Betanzos''' ist eine Kleinstadt in der [[Spanien|spanischen]] Region [[Galicien]]. Sie liegt in der Provinz [[A Coruña (Provinz)|A Coruña]] am Fluss ''Mandeo'' unweit seiner Mündung in den Atlantik.
== Hintergrund ==
== Anreise ==
{{mapframe|43.281|-8.21|zoom=15}}
=== Mit dem Flugzeug ===
Der '''Flughafen A Coruña''' ''(Aeroporto de Alvedro)'' ist ca. 20 km entfernt. Aus Deutschland gibt es keine direkten Verbindungen.
=== Mit der Bahn ===
Betanzos verfügt über zwei Bahnhöfe:
* {{vCard | name = Betanzos-Cidade | type = station | lat = 43.284129 | long = -8.215916 | description = Im Nordwesten der Stadt gelegen. Es gibt Verbindungen nach Ferrol, A Coruña und Madrid-Chamartin
}}
* {{vCard | name = Betanzos-Infesta | type = station | lat = 43.270658 | long = -8.22589
}}
=== Mit dem Bus ===
=== Auf der Straße ===
* Die {{RSIGN|ES|A|6}} kommt von [[Lugo]], passiert den südlichen Rand von Betanzos und führt weiter in Richtung [[A Coruña]].
* Die {{RSIGN|ES|AP|9}} kommt von [[Ferrol]], geht im Norden an Betanzos vorbei und führt nach [[A Coruña]].
<!-- === Mit dem Schiff === --> <!-- === Mit dem Fahrrad (optional) === -->
=== Zu Fuß ===
Betanzos liegt an der Pilgerstrecke des [[Jakobsweg]]es
== Mobilität ==
Die Altstadt ist von zahlreichen Gassen durchzogen. Teils sind sie für PKW befahrbar, wobei das Parken problematisch ist. Etliche sind dazu jedoch zu schmal und außerdem mit Stufen und Treppen gespickt , sie erfordern ein Mindestmaß an Kondition.
== Sehenswürdigkeiten ==
[[File:Betanzos-san-frncisco.jpg|mini|Kirche San Francisco. Man beachte das Schwein über der Rosette auf dem Dach]]
[[File:Betanzos-grabskulptur-san-franc.jpg|mini|Sarkophag nit Szenen einer Wildschweinjagd]]
[[File:Globo de Betanzos, aerostato de papel. Betanzos, Galicia, España.jpg|mini|300px|Globo de Betanzos]]
Betanzos gilt als die Hauptstadt der '''galizischen Gotik''' und verfügt über ein sehr gut erhaltenes Stadtzentrum.
* {{vCard | name = Igrexa de San Francisco | type = monument | wikidata = Q18220881 | description = Erbaut im 14. JH, unter der Führung von Fernán Pérez de Andrade. Sehenswert das Portal mit der Anbetung der Könige und sowie gotische Buntglasfenster. Auf dem Dach befindet sich ein Kreuz, es wird von einem Wildschwein getragen. Im Inneren der Kirche befindet sich der Sarkophag des Fernán Pérez de Andrade, er ist mit Jagdszenen von Wildschweinen, Bären und anderen Tieren gestaltet.
}}
* {{vCard | name = Igrexa de Santa María do Azougue | type = monument, church | wikidata = Q15701659 | description = Gotische Kirche, erbaut im 14./15.JH über einer romanischen Kirche.
}}
* {{vCard | name = Iglesia de Santiago | type = monument | lat = 43.281003 | long = -8.211806 | description = Erbaut im 9. JH, im 14.JH. wieder errichtet. Sehenswert das Portal.
}}
* '''Stadtmauern''' mit 3 gut erhaltenen Toren aus dem 15. JH.
* {{vCard | name = Pazo de Bendaña | type = palace | comment = Palast aus dem 15. JH. | address = Praza Constitucion, 9, 15300 Betanzos | lat = 43.280679 | long = -8.211372
}}
* Paläste im Stil des Modernisme (Jugendstil): Casa Núñez, Casa Pita, Casa Limiñón, Casa del Pueblo
* {{vCard|type = tower|name = '''Torre Municipal'''|lat = 43.28096|long = -8.2112987 |alt =''(Torre del Reloj)''}}
* {{marker|type = monument|name = Monumento a García Naveira Hermanos|lat = 43.27926|long = -8.21054}}
* {{vCard | name = Praza do Campo | alt = Praza Irmáns García | type = square | lat = 43.27925493576927 | long = -8.210111015153885 | description = Sehenswert die Kirche Santo Domingo. Auf ihrem Turm wird jährlich in der Nacht vom 16. auf den 17. August ein unbemannter Papierflieger, der Globo de Betanzos, zu Ehren von San Roque gestartet, der als Schutzpatron der Stadt gilt.
}}
== Aktivitäten ==
[[File:Betanzos-praca-constitut.jpg|mini|Praca Constitution mit dem Uhrturm ]]
[[File:Betanzos-praca-2-con.jpg|mini|Praca Constitution]]
== Einkaufen ==
== Küche ==
== Nachtleben ==
== Unterkunft ==
* {{vCard | name = Albergue de Peregrinos de Betanzos | type = hotel | comment = Pilgerherberge auf dem Jakobsweg | address = Rúa Pescadería, 4, 15300 Betanzos | lat = 43.281648 | long = -8.2118099
}}
* {{vCard | name = Hotel Villa de Betanzos | type = hotel | url = https://www.hotelvilladebetanzos.com/ | address = Avenida de Castela, 38 | lat = 43.27593415551224 | long = -8.208034227041749 | phone = +34 981 77 66 82 | subtype = 3 | description =
}}
* {{vCard | name = Hotel Garelos | type = hotel | url = https://hotelgarelos.com/ | lat = 43.27921538996286 | long = -8.212302888414271 | phone = +34 981 77 59 30 | subtype = 2 | description =
}}
* {{vCard | name = Santa María | alt = Albergue de Peregrinos | type = hostel | address = Rúa Santa María, 1 | lat = 43.282164652275284 | long = -8.211009159578426 | phone = +34 683 193 256 | description =
}}
== Sicherheit ==
== Gesundheit ==
* {{vCard | name = Brigofarma SL | type = pharmacy | address = Rúa Rosalía de Castro, 28, 15300 Betanzos | phone = +34981771411 | lat = 43.2756319 | long = -8.2081556
}}
== Praktische Hinweise ==
* {{vCard | name = Ofizina Municipal de Turismo de Betanzos | type = tourist information | url = http://www.betanzos.es | email = turismo@betanzos.dicoruna.es | address = Praza de Galicia, nº 1 15300 Betanzos | phone = +34 981 776 666 | fax = +34 981 776 529 | lat = 43.27894 | long = -8.21087
}}
== Ausflüge ==
== Literatur ==
{{-}}
<gallery mode="packed">
File:Betanzos-san-franc-innen.jpg|Sarkophag in der Kirche San Francisco
File:Betanzos-saan-franc-Sarkophag.jpg|Sarkophag von Fernán Pérez de Andrade
File:Betanzos-praca-garcia-nav.jpg|Praca do Campo
File:Betanzos-gasse-1.jpg|Gassen
File:Betanzos-gasse-2.jpg| Treppen
File:Betanzos-gasse-3.jpg| Wege
File:Betanzos-gasse-4.jpg|in der Altstadt
</gallery>
== Weblinks ==
* {{Offizielle Webseite}}
* [https://www.turismo.gal/inicio Turismo Galizien] auch auf deutsch
{{class-2}}
{{GeoData| lat= 43.279169 | long= -8.210633 | radius= }}
{{IstInKat|A Coruña (Provinz)}}
kydzm2ynr2e9q35w3htwoq7qiu8dbfl
Benutzer Diskussion:FOMOsapiens
3
106000
1769142
1602149
2026-04-17T05:33:05Z
Itti
5853
Itti verschob die Seite [[Benutzer Diskussion:N01C3]] nach [[Benutzer Diskussion:FOMOsapiens]]: Seite während der Umbenennung des Benutzers „[[Special:CentralAuth/N01C3|N01C3]]“ in „[[Special:CentralAuth/FOMOsapiens|FOMOsapiens]]“ automatisch verschoben
1354176
wikitext
text/x-wiki
== Willkommen bei Wikivoyage! ==
Hallo Hafex, [[Wikivoyage:Herzlich willkommen|herzlich willkommen]]! Wir wünschen dir viel Spaß beim Bearbeiten von Wikivoyage. Dies hier ist deine Benutzerdiskussionsseite, weitere Infos dazu findest Du im Hilfeartikel [[Hilfe:Diskussionsseiten|Diskussionsseiten]].
Damit du dich zurechtfindest, schau dir mal unsere Seite [[Hilfe:Wegweiser durch Wikivoyage]] an. Falls du weitere Infos suchst, helfen dir bestimmt unsere [[Hilfe:Themenübersicht]] und das [[Wikivoyage:Autorenportal]] weiter. Eine gute Einführung für neue Autoren bietet auch unser [[Hilfe:Leitfaden für Autoren|Leitfaden]]. Wenn du über die Wikipedia zu uns gekommen bist, schau bitte auch mal bei [[Wikivoyage:Herzlich willkommen, Wikipedianer]] rein. Für alle Fragen und Anregungen steht die [[Wikivoyage:Lounge]] offen, oder du wendest dich an mich.
Für die Entwicklung dieses Gemeinschaftsprojekts ist es sehr hilfreich zu erfahren wie du auf Wikivoyage aufmerksam geworden bist. Wir würden uns daher sehr freuen, wenn du diese Angabe auf [[Wikivoyage:Umfrage/Wie hast du von Wikivoyage erfahren?|dieser Seite]] hinterlassen könntest, indem du dort in dem entsprechenden Absatz zunächst auf „Quelltext bearbeiten“ und anschließend auf dieses Icon [[File:OOUI JS signature icon RTL.png|30px]] klickst und deine Eingabe über den Button „Änderungen veröffentlichen“ speicherst. --[[Benutzer:RolandUnger|RolandUnger]] ([[Benutzer Diskussion:RolandUnger|Diskussion]]) 08:58, 28. Dez. 2020 (CET)
66nevzt625x60wxmz6tvvdm1sh2xc26
Santo Domingo de la Calzada
0
112873
1769098
1556561
2026-04-16T21:05:57Z
Scholless
15050
/* Sehenswürdigkeiten */ vCard
1769098
wikitext
text/x-wiki
{{Quickbar Ort
| Bild=
| TouriInfoWeb=
| TouriInfoTel=
}}
'''Santo Domingo de la Calzada''' ist eine Kleinstadt in der [[Spanien|spanischen]] Region [[La Rioja]].
== Hintergrund ==
Die Kleinstadt am [[Jakobsweg]] ([[Camino Francés]]) und am aus der Sierra de la Demanda kommenden [[w:Oja (Fluss)|Río Oja]] ist bekannt durch das [[w:Hühnerwunder|Hühnerwunder]] und die entsprechende Ausstattung der Kathedrale mit einem Hühnerstall und zwei lebenden Hühnern.
== Anreise ==
=== Mit dem Flugzeug ===
Siehe den Reiseführer Logroño.
=== Mit der Bahn ===
Die nächstgelegene Bahnstation liegt in [[Haro]].
=== Mit dem Bus ===
=== Auf der Straße ===
Santo Domingo liegt an der Nationalstraße 120, die [[Logroño]] mit [[Burgos]] verbindet.
=== Mit dem Schiff ===
<!-- === Mit dem Fahrrad (optional) === -->
<!-- === Zu Fuß (optional) === -->
== Mobilität ==
== Sehenswürdigkeiten ==
[[File:Santo Domingo de la Calzada 2019 fachadas.jpg|mini|upright|Kathedrale: Fassade und Turm]]
* {{vCard|name=Kathedrale |wikidata=|type=cathedral |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=|description=Mit dem höchsten Kirchturm der Rioja (69 m).}}
== Aktivitäten ==
== Einkaufen ==
== Küche ==
<!-- evtl. unterteilen in günstig, mittel und gehoben -->
== Nachtleben ==
== Unterkunft ==
<!-- evtl. unterteilen in günstig, mittel und gehoben -->
<!-- == Lernen ==
== Arbeiten ==
== Sicherheit == -->
== Gesundheit ==
== Praktische Hinweise ==
== Ausflüge ==
== Literatur ==
== Weblinks ==
{{Offizielle_Webseite}}
{{Stub}}
{{GeoData| lat= | long= | radius= }}
{{IstInKat|La Rioja}}
tjgkf4ittmvfzifv51khx3tvs9i7945
1769099
1769098
2026-04-16T21:06:13Z
Scholless
15050
/* Sehenswürdigkeiten */ Ergänzung
1769099
wikitext
text/x-wiki
{{Quickbar Ort
| Bild=
| TouriInfoWeb=
| TouriInfoTel=
}}
'''Santo Domingo de la Calzada''' ist eine Kleinstadt in der [[Spanien|spanischen]] Region [[La Rioja]].
== Hintergrund ==
Die Kleinstadt am [[Jakobsweg]] ([[Camino Francés]]) und am aus der Sierra de la Demanda kommenden [[w:Oja (Fluss)|Río Oja]] ist bekannt durch das [[w:Hühnerwunder|Hühnerwunder]] und die entsprechende Ausstattung der Kathedrale mit einem Hühnerstall und zwei lebenden Hühnern.
== Anreise ==
=== Mit dem Flugzeug ===
Siehe den Reiseführer Logroño.
=== Mit der Bahn ===
Die nächstgelegene Bahnstation liegt in [[Haro]].
=== Mit dem Bus ===
=== Auf der Straße ===
Santo Domingo liegt an der Nationalstraße 120, die [[Logroño]] mit [[Burgos]] verbindet.
=== Mit dem Schiff ===
<!-- === Mit dem Fahrrad (optional) === -->
<!-- === Zu Fuß (optional) === -->
== Mobilität ==
== Sehenswürdigkeiten ==
[[File:Santo Domingo de la Calzada 2019 fachadas.jpg|mini|upright|Kathedrale: Fassade und Turm]]
* {{vCard|name=Kathedrale |wikidata=|type=cathedral |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-16 |description=Mit dem höchsten Kirchturm der Rioja (69 m).}}
== Aktivitäten ==
== Einkaufen ==
== Küche ==
<!-- evtl. unterteilen in günstig, mittel und gehoben -->
== Nachtleben ==
== Unterkunft ==
<!-- evtl. unterteilen in günstig, mittel und gehoben -->
<!-- == Lernen ==
== Arbeiten ==
== Sicherheit == -->
== Gesundheit ==
== Praktische Hinweise ==
== Ausflüge ==
== Literatur ==
== Weblinks ==
{{Offizielle_Webseite}}
{{Stub}}
{{GeoData| lat= | long= | radius= }}
{{IstInKat|La Rioja}}
j91grz1zu33dlf5kbm4ojcis2a2cvvo
1769100
1769099
2026-04-16T21:06:26Z
Scholless
15050
/* Küche */ gestrafft
1769100
wikitext
text/x-wiki
{{Quickbar Ort
| Bild=
| TouriInfoWeb=
| TouriInfoTel=
}}
'''Santo Domingo de la Calzada''' ist eine Kleinstadt in der [[Spanien|spanischen]] Region [[La Rioja]].
== Hintergrund ==
Die Kleinstadt am [[Jakobsweg]] ([[Camino Francés]]) und am aus der Sierra de la Demanda kommenden [[w:Oja (Fluss)|Río Oja]] ist bekannt durch das [[w:Hühnerwunder|Hühnerwunder]] und die entsprechende Ausstattung der Kathedrale mit einem Hühnerstall und zwei lebenden Hühnern.
== Anreise ==
=== Mit dem Flugzeug ===
Siehe den Reiseführer Logroño.
=== Mit der Bahn ===
Die nächstgelegene Bahnstation liegt in [[Haro]].
=== Mit dem Bus ===
=== Auf der Straße ===
Santo Domingo liegt an der Nationalstraße 120, die [[Logroño]] mit [[Burgos]] verbindet.
=== Mit dem Schiff ===
<!-- === Mit dem Fahrrad (optional) === -->
<!-- === Zu Fuß (optional) === -->
== Mobilität ==
== Sehenswürdigkeiten ==
[[File:Santo Domingo de la Calzada 2019 fachadas.jpg|mini|upright|Kathedrale: Fassade und Turm]]
* {{vCard|name=Kathedrale |wikidata=|type=cathedral |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-16 |description=Mit dem höchsten Kirchturm der Rioja (69 m).}}
== Aktivitäten ==
== Einkaufen ==
== Küche ==
== Nachtleben ==
== Unterkunft ==
<!-- evtl. unterteilen in günstig, mittel und gehoben -->
<!-- == Lernen ==
== Arbeiten ==
== Sicherheit == -->
== Gesundheit ==
== Praktische Hinweise ==
== Ausflüge ==
== Literatur ==
== Weblinks ==
{{Offizielle_Webseite}}
{{Stub}}
{{GeoData| lat= | long= | radius= }}
{{IstInKat|La Rioja}}
533w5dhuw5j49f8vg46gtm0gzrgh2ju
1769101
1769100
2026-04-16T21:06:43Z
Scholless
15050
/* Unterkunft */ gestrafft
1769101
wikitext
text/x-wiki
{{Quickbar Ort
| Bild=
| TouriInfoWeb=
| TouriInfoTel=
}}
'''Santo Domingo de la Calzada''' ist eine Kleinstadt in der [[Spanien|spanischen]] Region [[La Rioja]].
== Hintergrund ==
Die Kleinstadt am [[Jakobsweg]] ([[Camino Francés]]) und am aus der Sierra de la Demanda kommenden [[w:Oja (Fluss)|Río Oja]] ist bekannt durch das [[w:Hühnerwunder|Hühnerwunder]] und die entsprechende Ausstattung der Kathedrale mit einem Hühnerstall und zwei lebenden Hühnern.
== Anreise ==
=== Mit dem Flugzeug ===
Siehe den Reiseführer Logroño.
=== Mit der Bahn ===
Die nächstgelegene Bahnstation liegt in [[Haro]].
=== Mit dem Bus ===
=== Auf der Straße ===
Santo Domingo liegt an der Nationalstraße 120, die [[Logroño]] mit [[Burgos]] verbindet.
=== Mit dem Schiff ===
<!-- === Mit dem Fahrrad (optional) === -->
<!-- === Zu Fuß (optional) === -->
== Mobilität ==
== Sehenswürdigkeiten ==
[[File:Santo Domingo de la Calzada 2019 fachadas.jpg|mini|upright|Kathedrale: Fassade und Turm]]
* {{vCard|name=Kathedrale |wikidata=|type=cathedral |address=|phone=|email=|url=|hours=|price=|lat=|long=|lastedit=2026-04-16 |description=Mit dem höchsten Kirchturm der Rioja (69 m).}}
== Aktivitäten ==
== Einkaufen ==
== Küche ==
== Nachtleben ==
== Unterkunft ==
== Gesundheit ==
== Praktische Hinweise ==
== Ausflüge ==
== Literatur ==
== Weblinks ==
{{Offizielle_Webseite}}
{{Stub}}
{{GeoData| lat= | long= | radius= }}
{{IstInKat|La Rioja}}
b1g27xtlx3k26pmxq2v56lz5xoqaywo
Wikivoyage:GUS2Wiki
4
114663
1769219
1767198
2026-04-17T11:54:53Z
Alexis Jazz
40856
Updating gadget usage statistics from [[Special:GadgetUsage]] ([[phab:T121049]])
1769219
wikitext
text/x-wiki
{{#ifexist:Project:GUS2Wiki/top|{{/top}}|This page provides a historical record of [[Special:GadgetUsage]] through its page history. To get the data in CSV format, see wikitext. To customize this message or add categories, create [[/top]].}}
Diese Daten stammen aus dem Cache. Der Zeitpunkt der letzten Aktualisierung: 2026-04-16, 07:44:33Z Uhr. Maximal {{PLURAL:5000|ein Ergebnis ist|5000 Ergebnisse sind}} im Cache verfügbar.
{| class="sortable wikitable"
! Helferlein !! data-sort-type="number" | Anzahl der Benutzer !! data-sort-type="number" | Aktive Benutzer
|-
|Anzeige von vCard-Pruefempfehlungen || 31 || 5
|-
|Doppel-s-Schreibung || 13 || 1
|-
|Einleitung-bearbeiten || 45 || 4
|-
|HotCat || 146 || 6
|-
|Inhalte von Wikidata markieren || 43 || 4
|-
|Keine externen Links || 19 || 0
|-
|Kontrast || 11 || 1
|-
|No-Listing-Editor || 4 || 1
|-
|Pfeil-hoch || 51 || 5
|-
|Serifen || 7 || 1
|-
|SisterWeblinks || 2 || 0
|-
|StatusOutdent || 1 || 1
|-
|Verstecke vCard-Koordinate || 8 || 0
|-
|Vorlagenmeister || 62 || 5
|-
|VoyageData || 12 || 3
|-
|WikivoyageErrorTools || 24 || 3
|-
|WikivoyageTools || 64 || 6
|-
|Zukunft || 20 || 2
|-
|bkl-check || 79 || 5
|-
|editsection-left || 19 || 1
|-
|editsection-right || 32 || 1
|-
|markAdmins || 84 || 4
|-
|nicht zuruecksetzen || 7 || 0
|-
|wikEd || 87 || 1
|}
* [[Spezial:GadgetUsage]]
* [[m:Meta:GUS2Wiki/Script|GUS2Wiki]]
<!-- data in CSV format:
Anzeige von vCard-Pruefempfehlungen,31,5
Doppel-s-Schreibung,13,1
Einleitung-bearbeiten,45,4
HotCat,146,6
Inhalte von Wikidata markieren,43,4
Keine externen Links,19,0
Kontrast,11,1
No-Listing-Editor,4,1
Pfeil-hoch,51,5
Serifen,7,1
SisterWeblinks,2,0
StatusOutdent,1,1
Verstecke vCard-Koordinate,8,0
Vorlagenmeister,62,5
VoyageData,12,3
WikivoyageErrorTools,24,3
WikivoyageTools,64,6
Zukunft,20,2
bkl-check,79,5
editsection-left,19,1
editsection-right,32,1
markAdmins,84,4
nicht zuruecksetzen,7,0
wikEd,87,1
-->
llpkftrlg9r2dmkufb8z3mrxnlnt43i
MediaWiki:Gadget-ListingEditor-Config.js
8
122853
1769010
1768250
2026-04-16T13:42:22Z
RolandUnger
3
INPUT_COLUMNS
1769010
javascript
text/javascript
//<nowiki>
/** Listing Editor Configuration
2026-04-16
Original authors:
- ausgehe, torty3
Additional contributors:
- Andyrom75, Wrh2, RolandUnger, Jdlrobson
Documentation and version history:
- https://de.wikivoyage.org/wiki/Wikivoyage:Gadget-ListingEditorMain.js
License: GPL-2.0+, CC-by-sa 3.0
*/
/* eslint-disable mediawiki/class-doc */
( function() {
'use strict';
const SYSTEM = {
listingEditor: 'ListingEditor'
};
// namespace prefixes available at the local wiki,
// used for regular expressions
const NAMESPACES = {
file: '[Ff]ile|[Ii]mage|[Dd]atei|[Bb]ild', // de
// '[Ff]ile|[Ii]mage', // en
// '[Ff]ile|[Ii]mage|[Aa]rchivo|[Ii]magen', // es
// '[Ff]ile|[Ii]mage|[Ff]ichier', // fr
// '[Ff]ile|[Ii]mage|[Ii]mmagine', // it
category: '[Cc]ategory|[Kk]ategorie' // de
// '[Cc]ategory' // en
// '[Cc]ategory|[Cc]ategoría' // es
// '[Cc]ategory|[Cc]atégorie' // fr
// '[Cc]ategory|[Cc]ategoria' // it
};
// regular expressions for form input fields
const REGEX = {
name: /^([^\[\]\|\*]+|\[\[[^\[\]\|\*]+\]\]|\[\[[^\[\]\|]+\|[^\[\]\|\*]+\]\])$/,
url: /^(https?:\/\/|\/\/)(\d{1,3}(\.\d{1,3}){0,3}|([^.\/:;<=>?\\@|\s\x00-\x2C\x7F]+\.)+[^.\/:;<=>?\\@|\d\s\x00-\x2C\x7F]{2,10}(:\d+)?)(\/?|\/[-A-Za-z0-9_.,~%+&:;#*?!=()@\/\x80-\xFF]*)$/,
// protocol: (https?:\/\/|\/\/)
// domain: (\d{1,3}(\.\d{1,3}){0,3}|([^.\/:;<=>?\\@|\s\x00-\x2C\x7F]+\.)+[^.\/:;<=>?\\@|\d\s\x00-\x2C\x7F]{2,10}(:\d+)?)
// residual: (\/?|\/[-A-Za-z0-9_.,~%+&:;#*?!=()@\/\x80-\xFF]*)
// not considered: logins like login:password@, IPv6 addresses; will be added if necessary
phone: /^(\+[1-9]|[\d\(])([\dA-Z \-\(\)\.]+[\dA-Z ])(( ([Ee][Xx][Tt]\.? |[Aa][Pp][Pp]\.? |x)\d+)?)( *\([^\)]+\))?$/,
email: /^[^@^\(^\)\s]+@[^@^\(^\)\s]+\.[^@^\(^\)\s]+( *\([^\)]+\))?$/,
facebook: /^(https:\/\/www\.facebook\.com\/.+|(?!.*\.(?:com|net))[a-z\d.]{5,}|[-.\w\d]+\-\d+)$/i,
flickr: /^(https:\/\/www\.flickr\.com\/.+|\d{5,11}@N\d{2})$/,
instagram:/^(https:\/\/www\.instagram\.com\/.+|explore\/locations\/[1-9]\d{0,15}|[0-9a-z_][0-9a-z._]{0,28}[0-9a-z_])$/,
tiktok: /^(https:\/\/www\.tiktok\.com\/@.+|[0-9A-Za-z_][0-9A-Za-z_.]{1,23})$/i,
x: /^(https:\/\/x\.com\/.+|[0-9a-z_]{1,15})$/i,
youtube: /^(https:\/\/www\.youtube\.com\/.+|UC[-_0-9A-Za-z]{21}[AQgw]|@[A-Za-z0-9_\-\.]{3,30})$/,
commonscat: new RegExp( '^(?!(' + NAMESPACES.category + '):)' + '.+$', 'i' ),
googlemaps: /^[1-9]\d{13,19}$/,
mapgroup: /^[A-Za-z][A-Za-z0-9]*$/,
image: new RegExp( '^(?!(' + NAMESPACES.file + '):)' + '.+\.(tif|tiff|gif|png|jpg|jpeg|jpe|webp|xcf|ogg|ogv|svg|pdf|stl|djvu|webm|mpg|mpeg)$', 'i' ),
zoom: /^1?[0-9]$/,
lastedit: /^((20\d{2}-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01]))|((0?[1-9]|[12][0-9]|3[01])\.(0?[1-9]|1[012])\.20\d{2}))$/
};
const SEPARATORS = {
sep: ',|;| and | or | und | oder '
};
const Config = {
// --------------------------------------------------------------------
// STRINGS AND DEFINITIONS DEPENDING ON WIKI LANGUAGE
// TRANSLATE THE FOLLOWING BASED ON THE WIKIVOYAGE LANGUAGE IN USE
// --------------------------------------------------------------------
// SECTION_TO_DEFAULT_TYPE and DISALLOW_ADD_LISTING_IF_PRESENT are
// only used to add edit buttons to page-map section headers
SECTION_TO_DEFAULT_TYPE: {
'Anreise': 'station', // go
'Mobilität': 'public transport', // go
'Sehenswürdigkeiten': 'monument', // see
'Aktivitäten': 'sports', // do
'Einkaufen': 'shop', // buy
'Küche': 'restaurant', // eat
'Nachtleben': 'bar', // drink
// dummy line (es) // drink and night life
'Küche_und_Unterkunft': 'hotel', // eat and sleep
'Unterkunft': 'hotel', // sleep
'Lernen': 'education', // education
'Arbeiten': 'administration', // work
'Sicherheit': 'administration', // security
'Gesundheit': 'health', // health
'Praktische_Hinweise': 'office' // practicalities
},
// If any of these patterns are present on a page then no 'add listing'
// buttons will be added to the page
DISALLOW_ADD_LISTING_IF_PRESENT:
[ '#Orte', '#Weitere_Ziele', '#St.C3.A4dte', '#Regionen', '#Inseln', '#print-districts' ],
// names of the listing templates
TEMPLATES: {
listing: [ 'vCard', 'listing', 'buy', 'do', 'drink', 'eat', 'event', 'see', 'sleep' ],
marker: [ 'Marker' ]
},
// Aliases for vCard or Marker parameters
// see: https://de.wikivoyage.org/wiki/Module:VCard/i18n
PARAM_ALIASES: {
description: [ 'content' ],
'google-maps': [ 'google-map' ],
lat: [ 'latitude', 'coord' ],
long: [ 'lon', 'longitude' ],
'name-latin': [ 'name-roman' ],
subtype: [ 'subtypes' ],
x: [ 'twitter' ],
type: [ 'types' ]
},
// Type dependent hide / show
HIDE_AND_SHOW: {
sleep: {
hide: [], // 'div_hours'; needed for campsites etc.
show: ['div_checkin', 'div_checkout']
},
'default': {
hide: ['div_checkin', 'div_checkout'],
show: [] // 'div_hours'
}
},
// hideDivIfEmpty: id of a <div> in the EDITOR_FORM_HTML for this
// element that should be hidden if the corresponding template
// parameter has no value. For example, lastedit.
hideDivIfEmpty: {},
// keepIt: Include the parameter in the wiki template syntax that
// is saved to the article if the parameter has no value. For
// example, the "description" tag is not included by default.
keepIt: { description: 1 },
// newline: Append a newline after the parameter in the listing
// template syntax when the article is saved.
newline: {},
COORD_LETTERS: {
N: { factor: 1, dir: 'lat' },
S: { factor: -1, dir: 'lat' },
E: { factor: 1, dir: 'long' },
W: { factor: -1, dir: 'long' },
O: { factor: 1, dir: 'long' } // German Ost = East
},
MISC: {
helpPage: '//de.wikivoyage.org/wiki/Help:Erstellen_einer_VCard',
helpPageMarker: '//de.wikivoyage.org/wiki/Help:Erstellen_einer_VCard',
intlCurrencies: [ '€', '$', '£', '¥', '₩' ],
contentChars: [ 'Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü', 'ß', 'ç', 'ñ', '„', '“',
'‚', '‘', '’', '–', '—', '…', '·', '°', '′', '″', '&nbsp;',
'&#x202F;', '{{nnbsp}}' ],
spaceBeforeCurrencies: true,
spaceAfterCallingCodes: true,
useEditTags: true,
editTags: 'listingeditor',
// editTags: null, // set null if not existent
// see [[Special:Tags]], https://www.mediawiki.org/wiki/API:Edit
yes: [ 'y', 'yes', 'j', 'ja' ],
no: [ 'n', 'no', 'nein' ],
from: 'ab %s',
fromTo: '%s–%s',
to: 'bis %s'
},
// ----------------------- Stop translation here -----------------------
// --------------------------------------------------------------------
// CONFIGURE THE FOLLOWING BASED ON WIKIVOYAGE COMMUNITY PREFERENCES
// --------------------------------------------------------------------
OPTIONS: {
// in pixels, otherwise available space
MaxDialogWidth: 1200,
// Set the following flag to false if the listing editor should
// strip away any listing template parameters that are not
// explicitly configured in the TEMPLATES parameter arrays.
AllowUnrecognizedParameters: true,
// write empty parameters to listing template text
inlineFormat: true,
CopyToAliases: false,
CopyToTypeAliases: false,
// handle punctuation marks at string end
withoutPunctuation:
[ 'address', 'address-local', 'alt', 'checkin', 'checkout',
'comment', 'hours', 'payment', 'price' ],
// vCard default auto mode
defaultAuto: true,
// proposed maximum description length
contentLimit: 1000
},
INPUT_COLUMNS: {
listing: [
[ 'name', 'name-local', 'alt', 'comment', 'url', 'address',
'address-local', 'directions', 'phone', 'tollfree', 'mobile',
'fax', 'email', 'facebook', 'flickr', 'instagram', 'tiktok',
'x', 'youtube', 'google-maps' ],
[ 'type', 'group', 'subtype', 'show', 'status', 'wikidata-label',
'auto', 'lat', 'long', 'hours', 'checkin', 'checkout', 'price',
'payment', 'image', 'commonscat', 'zoom', 'map-group', 'before',
'name-latin', 'directions-local' ]
],
marker: [
[ 'name', 'name-map', 'name-local', 'alt', 'url', 'lat', 'long',
'name-latin' ],
[ 'type', 'group', 'show', 'status', 'wikidata-label', 'image',
'commonscat', 'zoom', 'map-group' ]
]
},
SECONDARY_PARAMS: {
comment: 1,
mobile: 1,
fax: 1,
flickr: 1,
tiktok: 1,
x: 1,
youtube: 1,
group: 1,
show: 1,
status: 1,
auto: 1,
commonscat: 1,
zoom: 1,
'map-group': 1,
before: 1,
'google-maps': 1,
'name-local': 1,
'name-latin': 1,
'address-local': 1,
'directions-local': 1
},
SHOW_OPTIONS: {
listing: {
all: 1,
coord: 1,
none: 1,
poi: 1,
copy: 1,
inline: 1, // only listing
noairport: 1,
noperiod: 1, // only listing
nositelinks: 1,
nosocialmedia: 1, // only listing
outdent: 1, // only listing
symbol: 1,
wikilink: 1,
},
marker: {
all: 1,
coord: 1,
none: 1,
poi: 1,
copy: 1,
noairport: 1,
noname: 1, // only marker
nositelinks: 1,
socialmedia: 1, // only marker
symbol: 1,
wikilink: 1,
}
},
STATUS_OPTIONS: {
'top-hotel': 1,
'top-restaurant': 1,
'top-sight': 1,
recommendation: 1,
none: 2,
stub: 3,
outline: 4,
usable: 5,
guide: 6,
star: 7
},
STATUS_ALIASES: {
'class-0': 'none',
'class-1': 'stub',
'class-2': 'outline',
'class-3': 'usable',
'class-4': 'guide',
'class-5': 'star'
},
// lastedit is set if the following parameters were changed
PARAMETERS_FOR_LASTEDIT: {
hours: 1,
checkin: 1,
checkout: 1,
price: 1
},
// The following variables should usually not be changed
/** Wikidata claim definitions for parameters
type: property type like label, monolingual, coordinate, contact,
email, subtype, hours, id, au, youtube,
empty: string value (i.e. default type),
id: string value of an id like Q1234567,
au: quantity consisting of amount and unit,
which: wiki / local: monolingual text by wiki or local language,
p: property or set of properties,
max: maximum count of results, default = 1,
result: table or string (default),
table: placeholder for qualifier objects,
'' means not yet present (default)
*/
WIKIDATA_CLAIMS: {
name: { type: 'label', which: 'wiki' },
'name-local':{ type: 'label', which: 'local' },
url: { p: 'P856' },
address: { p: 'P6375', type: 'monolingual', which: 'wiki', max: 10 },
'address-local': { p: 'P6375', type: 'monolingual', which: 'local', max: 10 },
directions: { p: 'P2795', type: 'monolingual', which: 'wiki', max: 10 },
'directions-local': { p: 'P2795', type: 'monolingual', which: 'local', max: 10 },
lat: { p: 'P625', type: 'coordinate', which: 'latitude' },
long: { p: 'P625', type: 'coordinate', which: 'longitude' },
phone: { p: 'P1329', type: 'contact', max: 5 },
fax: { p: 'P2900', type: 'contact', max: 3 },
email: { p: 'P968', type: 'email', max: 5 },
facebook: { p: 'P2013' },
flickr: { p: 'P3267' },
instagram: { p: 'P2003' },
tiktok: { p: 'P7085' },
x: { p: 'P2002' },
youtube: { p: [ 'P11245', 'P2397' ], type: 'youtube' },
// type: {},
subtype: { p: [ 'P912', 'P2012', 'P2846', 'P2848', 'P5023', 'P10290' ],
type: 'subtype', table: '', result: 'table', max: 50 },
hours: { p: 'P3025', type: 'hours', max: 5 },
checkin: { p: 'P8745', type: 'id' },
checkout: { p: 'P8746', type: 'id' },
price: { p: 'P2555', type: 'au', max: 5 },
payment: { p: 'P2851', type: 'id', max: 10 },
image: { p: 'P18' },
commonscat: { p: 'P373' },
'google-maps': { p: 'P3749' }
},
// property aliases
PROPERTIES: {
quantity: 'P1114',
minimumAge: 'P2899',
maximumAge: 'P4135',
dayOpen: 'P3027',
dayClosed: 'P3028',
hourOpen: 'P8626',
hourClosed: 'P8627'
},
// properties to be used for comments for contacts, fees, and hours
COMMENTS: {
contact: [ 'P366', 'P518', 'P642', 'P1001', 'P1559', 'P106' ],
fee: [ 'P5314', 'P518', 'P6001', 'P1264', 'P585', 'P2899', 'P4135', 'P642'],
hours: [ 'P8626', 'P8627', 'P3027', 'P3028' ]
},
// social media and url link formatters
LINK_FORMATTERS: {
facebook: 'https://www.facebook.com/$1',
flickr: 'https://www.flickr.com/photos/$1',
instagram: 'https://www.instagram.com/$1/',
tiktok: 'https://www.tiktok.com/@$1',
x: 'https://x.com/$1',
youtube: 'https://www.youtube.com/channel/$1',
youtubeAlias: 'https://www.youtube.com/$1',
url: '$1',
'google-maps': 'https://maps.google.com/?cid=$1'
},
// Options for jQuery plugin Chosen
CHOSEN_OPTIONS: {
width: '100%',
rtl: $( 'html' ).prop( 'dir' ) === 'rtl',
allow_single_deselect: true,
disable_search_threshold: 5
},
// regex: regular expression
// m: error-message key
// sep: separators for value list
REGEX_FIELDS: {
name: { regex: REGEX.name, m: 'validationName' },
url: { regex: REGEX.url, m: 'validationUrl' },
phone: { regex: REGEX.phone, m: 'validationPhone', sep: SEPARATORS.sep },
mobile: { regex: REGEX.phone, m: 'validationMobile', sep: SEPARATORS.sep },
tollfree: { regex: REGEX.phone, m: 'validationTollfree', sep: SEPARATORS.sep },
fax: { regex: REGEX.phone, m: 'validationFax', sep: SEPARATORS.sep },
email: { regex: REGEX.email, m: 'validationEmail', sep: SEPARATORS.sep },
facebook: { regex: REGEX.facebook, m: 'validationFacebook' },
flickr: { regex: REGEX.flickr, m: 'validationFlickr' },
instagram: { regex: REGEX.instagram, m: 'validationInstagram' },
tiktok: { regex: REGEX.tiktok, m: 'validationTiktok' },
x: { regex: REGEX.x, m: 'validationX' },
youtube: { regex: REGEX.youtube, m: 'validationYoutube' },
image: { regex: REGEX.image, m: 'validationImage' },
commonscat: { regex: REGEX.commonscat, m: 'validationCategory' },
zoom: { regex: REGEX.zoom, m: 'validationZoom' },
'map-group': { regex: REGEX.mapgroup, m: 'validationMapGroup' },
'google-maps': { regex: REGEX.googlemaps, m: 'validationGoogleMaps' },
lastedit: { regex: REGEX.lastedit, m: 'validationLastEdit' }
}
};
if ( !window[ SYSTEM.listingEditor ] )
window[ SYSTEM.listingEditor ] = {};
window[ SYSTEM.listingEditor ].Config = Config;
} () );
//</nowiki>
pli0w15v1fossonreoc9pxag1oghi23
Benutzer:Wowo2024
2
123687
1769002
1768697
2026-04-16T13:10:12Z
Wowo2024
53507
/* Wesentlich ergänzte Artikel */
1769002
wikitext
text/x-wiki
{{Babel|de|en-4|fr-3|pt-2|nl-1|af-1|:Vorlage/aus Deutschland|:Vorlage/aus Nordrhein-Westfalen}}
Ich bin privat und auch dienstlich viel in der Welt herumgekommen. Dazu bedurfte es insbesondere bei privaten, selbst organisierten Reisen einer dezidierten Reisevorbereitung. Als Analyst in der Länderrisiko-Analyse einer Düsseldorfer Großbank besitze ich auch volkswirtschaftliche Kenntnisse über die bereisten Staaten. Dieses Wissen, fundiert durch Quellenangaben, möchte ich Wikivoyage zur Verfügung stellen.
== Bereiste Länder ==
Bereiste Länder und dortige geografische Objekte sind (alphabetisch):
{| class="wikitable" style="padding:1em; vertical-align:top; border:2px;"
|-
! Staat
! Städte
! Fernstraßen / Eisenbahnen
! Flüsse/Binnenseen/Landschaften
|-
| [[Bild:Flag of Argentina.svg|20px]] [[Argentinien]] || [[Buenos Aires]] || [[Ruta Nacional 9]] || [[Pampa]], [[Río-de-la-Plata-Region|Rio de la Plata]]
|-
| [[Bild:Flag of Australia.svg|20px]] [[Australien]] || [[Adelaide]], [[Alice Springs]], [[Brisbane]], [[Cairns]], [[Darwin]], [[Melbourne]], [[Sydney]] || [[Stuart Highway]], [[The Ghan]] || [[Outback]]
|-
|[[Bild:Flag of Bolivia.svg|20px]] [[Bolivien]] || [[La Paz]] || || [[Anden]], [[Titicacasee]]
|-
| [[Bild:Flag of Botswana.svg|20px]] [[Botswana]] || [[Kasane]], [[Maun]] || || [[Okavangodelta]]
|-
| [[Bild:Flag of Brazil.svg|20px]] [[Brasilien]] || [[Brasilia]], [[Manaus]], [[Olinda]], [[Porto Velho]], [[Recife]], [[Rio de Janeiro]], [[Salvador]] || [[BR-101]], [[BR-319]], [[Transpantaneira]] || [[Amazonas (Fluss)|Amazonas]], [[Rio de Janeiro#Guanabara|Guanabara-Bucht]]
|-
| [[Bild:Flag of Ecuador.svg|20px]] [[Ecuador]] || [[Quito]] || ||
|-
| [[Bild:Flag of France.svg|20px]] [[Frankreich]] || [[Paris]] || || [[Seine]]
|-
| [[Bild:Flag of Hong Kong.svg|20px]] [[Hongkong]] || [[Hongkong]], [[Macau]] || ||
|-
| [[Bild:Flag of India.svg|20px]] [[Indien]] || [[Agra]], [[Jaipur]], [[Mumbai]], [[New Delhi]] || || [[Corbett-Nationalpark]]
|-
| [[Bild:Flag of Indonesia.svg|20px]] [[Indonesien]] || [[Bandung]], [[Borobudur]], [[Jakarta]], [[Medan]], [[Surabaya]] || ||
|-
| [[Bild:Flag of Italy.svg|20px]] [[Italien]] || [[Genua]], [[Mailand]] || ||
|-
| [[Bild:Flag of Canada.svg|20px]] [[Kanada]] || [[Banff]], [[Calgary]], [[Edmonton]], [[Jasper]], [[Kamloops]], [[Prince George]], [[Vancouver]] || [[Icefields Parkway]], [[Klondike Highway]], [[Trans-Canada Highway]], [[Yellowhead Highway]] || [[Lake Louise]], [[Peyto Lake]]
|-
| [[Bild:Flag of Kenya.svg|20px]] [[Kenia]] || [[Mombasa]], [[Kisumu]], [[Nairobi]] || [[Nairobi–Mombasa Road]] || [[Viktoriasee]]
|-
| [[Bild:Flag of Malaysia.svg|20px]] [[Malaysia]] || [[George Town (Malaysia)|Georgetown]], [[Kuantan]], [[Kuala Lumpur]], [[Malakka]] || [[East-West Highway]] ||
|-
| [[Bild:Flag of Namibia.svg|20px]] [[Namibia]] ||[[Swakopmund]], [[Walfischbucht]], [[Windhoek]] || {{RSIGN|BW|A|3}},{{RSIGN|BW|A|35}} ||
|-
| [[Bild:Flag of the Netherlands.svg|20px]] [[Niederlande]] || [[Amsterdam]] || || [[Rhein]]
|-
| [[Bild:Flag of Peru.svg|20px]] [[Peru]] || [[Cusco]], [[Lima]], [[Puno]] || [[Andenbahn]] || [[Titicacasee]]
|-
| [[Bild:Flag of Switzerland.svg|20px]] [[Schweiz]] || [[Altdorf UR]], [[Basel]], [[Lugano]], [[Luzern]] || [[Axenstraße]] || [[Vierwaldstättersee]]
|-
| [[Datei:Flag of Zimbabwe.svg|20px]] [[Simbabwe]] || [[Bulawayo]], [[Harare]] || ||
|-
| [[Bild:Flag of Singapore.svg|20px]] [[Singapur]] || [[Singapur]] || ||
|-
| [[Datei:Flag of South Africa.svg|20px]] [[Südafrika]] || [[Durban]], [[East London]], [[Johannesburg]], [[Kapstadt]], [[Port Elizabeth]] || [[Chapman’s Peak Drive]], [[Garden Route]] ||
|-
| [[Bild:Flag of Tanzania.svg|20px]] [[Tansania]] || [[Arusha]] || || [[Ngorongoro-Nationalpark|Ngorongoro-Kratersee]]
|-
| [[Bild:Flag of United States.svg|20px]] [[Vereinigte Staaten]] || [[Anchorage]], [[Albuquerque]], [[Chicago]], [[Denver]], [[Fairbanks]], [[Honolulu]], [[Las Vegas]], [[Miami]], [[New York City]], [[Phoenix]], [[Salt Lake City]], [[St. Louis]], [[San Francisco]], [[Seattle]], [[Washington DC]] || [[Alaska Highway]], [[Alaska Route 3]], [[Alaska Route 5]], [[California State Route 1]], [[Dalton Highway]], [[Route 66]], [[Top of the World Highway]], [[U.S. Highway 101]], [[17-Mile Drive]] || [[Eriesee]], [[Großer Salzsee]], [[Lake Powell]], [[Michigansee]], [[Yellowstone-Nationalpark|Yellowstone Lake]]
|-
| [[Bild:Flag of United Kingdom.svg|20px]] [[Vereinigtes Königreich]] || [[London]] || ||
|}
Besuchte Inseln: [[Bali]], [[Borneo]], [[Fiji]], [[Hawaii]], [[Mauritius]], [[Seychellen]], [[Sulawesi]], [[Sumatra]], [[Vancouver Island]].
Meine Hauptaufgabe besteht zunächst darin, die obigen Rotlinks durch Artikelinhalte in Blaulinks zu verwandeln.
== Neu verfasste Artikel ==
* [[Viktoriasee]]
* [[Massai Mara]]
* [[Seine]]
* [[Amazonas (Fluss)]]
* [[Transamazônica]]
* [[National Highway 1]]
* [[Interstate Highways]]
* [[The Ghan]]
* [[Dalton Highway]]
* [[U.S. Highway 101]]
* [[California State Route 1]]
* [[Golden Gate Bridge]]
* [[Alaska Route 3]]
* [[Million Dollar Highway]]
* [[Alaska Route 1]]
* [[Alaska Route 4]]
* [[Alaska Route 2]]
* [[Rocky Mountaineer]]
* [[Axenstraße]]
* [[Alaska Railroad]]
* [[Whitehorse]]
* [[Yellowhead Highway]]
* [[Blue Train]]
* [[Transoceánica]]
* [[Klondike Highway]]
* [[BR-101]]
* [[17-Mile Drive]]
* [[Panoramastraße]]
* [[Top of the World Highway]]
* [[Andenbahn]]
* [[Alaska Route 5]]
* [[Corniche Inférieure]]
* [[Lhasa-Bahn]]
* [[BR-364]]
* [[Reise]]
* [[Milford Road]]
* [[Chepe Express]]
* [[Qinghai-Tibet Highway]]
* [[Banff-Nationalpark]]
* [[Petrified Forest-Nationalpark]]
* [[Jasper-Nationalpark]]
* [[Yungas-Straße]]
* [[Atlantikstraße]]
* [[Lake Louise]]
* [[Arches National Park]]
* [[Anden]]
* [[Colorado River]]
* [[The Canadian]]
* [[Great Basin National Park]]
* [[Waterton-Lakes-Nationalpark]]
* [[Glacier National Park (Kanada)]]
* [[Glacier National Park (USA)]]
* [[Glacier Bay-Nationalpark]]
* [[Mount-Revelstoke-Nationalpark]]
* [[British Columbia Highway 99]]
* [[Großer Salzsee]]
* [[Carlsbad Caverns-Nationalpark]]
* [[Nationalparks in den Vereinigten Staaten]]
* [[Redwood National Park]]
* [[Nationalparks in Kanada]]
* [[Gateway Arch National Park]]
* [[Kootenay National Park]]
* [[Kluane National Park and Reserve]]
* [[Badlands-Nationalpark]]
* [[Black Canyon of the Gunnison-Nationalpark]]
* [[Nordkalifornien]]
* [[U.S. Highway 20]]
* [[Reiseversicherung]]
* [[Yoho National Park]]
* [[California Zephyr]]
* [[Mount Rainier-Nationalpark]]
* [[Alaska Marine Highway]]
* [[North-Cascades-Nationalpark]]
* [[Chapman’s Peak Drive]]
* [[Channel-Islands-Nationalpark]]
* [[Trans-Kalahari Corridor]]
* [[Kairo-Gaborone-Kapstadt-Highway]]
* [[Nairobi–Mombasa Road]]
* [[Kalifornische Südküste]]
* [[Muir Woods National Monument]]
* [[Chyulu Hills National Park]]
* [[Hāna Highway]]
* [[Hawaiʻi-Volcanoes-Nationalpark]]
* [[Yukon River]]
* [[Loire]]
* [[Wrangell-St. Elias-Nationalpark]]
* [[Lake Nakuru National Park]]
* [[Parque Nacional da Tijuca]]
* [[Zambezi National Park]]
* [[East-West Highway]]
* [[BR-319]]
* [[Taman Negara-Nationalpark]]
* [[Pan Borneo Highway]]
* [[Nordlandbahn]]
* [[Gallup]]
* [[Tren de la Nariz del Diablo]]
* [[St. Augustine]]
* [[Great Sand Dunes-Nationalpark]]
* [[Outback]]
* [[Nationalpark Amazônia]]
* [[Northern Explorer]]
* [[Pride of Africa]]
* [[Coastal Pacific]]
* [[Kuranda Scenic Railway]]
* [[TranzAlpine]]
* [[Corbett-Nationalpark]]
* [[Katmai-Nationalpark]]
* [[Great Southern]]
* [[The Overland]]
== Wesentlich ergänzte Artikel ==
* [[Serengeti]]
* [[Panamericana]]
* [[Stuart Highway]]
* [[Garden Route]]
* [[Alaska Highway]]
* [[Route 66]]
* [[Icefields Parkway]]
* [[Trans-Canada Highway]]
* [[Oodnadatta Track]]
* [[Kruger National Park]]
* [[Pantanal]]
* [[Westküste der USA]]
* [[Große Seen]]
* [[Yellowstone-Nationalpark]]
* [[Nationalparks]]
* [[Denali National Park]]
* [[Rocky Mountain National Park]]
* [[Grand Canyon]]
* [[Bryce Canyon National Park]]
* [[Death-Valley-Nationalpark]]
* [[Im Norden des Tal des Todes]]
* [[Canyonlands National Park]]
* [[Rocky Mountains]]
* [[Reisewarnungen]]
* [[Saguaro National Park]]
* [[Mesa Verde National Park]]
* [[Zion National Park]]
* [[Joshua Tree National Park]]
* [[Sequoia and Kings Canyon National Parks]]
* [[Kalifornische Wüste]]
* [[Olympic-Nationalpark]]
* [[Mojave National Preserve]]
* [[Yosemite-Nationalpark]]
* [[Grand Teton National Park]]
* [[Point Reyes National Seashore]]
* [[Bay Area]]
* [[Praslin]]
* [[Kalifornien/Sierra Nevada]]
* [[Lassen-Volcanic-Nationalpark]]
* [[Bodie]]
* [[Vancouver Island]]
* [[Juneau]]
* [[Olympic-Halbinsel]]
* [[Crater-Lake-Nationalpark]]
* [[Etosha Nationalpark]]
* [[Safaris]]
* [[Pazifischer Nordwesten]]
* [[Kalahari]]
* [[Okawangodelta]]
* [[Tsodilo]]
* [[Kalifornische Zentralküste]]
* [[Amboseli-Nationalpark]]
* [[Chobe-Nationalpark]]
* [[Tsavo-West-Nationalpark]]
* [[Hawaii]]
* [[Amerika]]
* [[Mittelamerika]]
* [[Nordamerika]]
* [[Südamerika]]
* [[Ozeanien und Australien]]
* [[Mikronesien]]
* [[Melanesien]]
* [[Tren a las Nubes]]
* [[Polynesien]]
* [[Hawai'i (Insel)]]
* [[Oahu]]
* [[Inka-Pfad]]
* [[Maui]]
* [[Kauai]]
* [[Machu Picchu]]
* [[Namibia]]
* [[Kilimanjaro]]
* [[Cusco]]
* [[Urubamba-Tal]]
* [[Rhein]]
* [[Stilfser Joch]]
* [[Nationalpark Stilfser Joch]]
* [[Ngorongoro-Nationalpark]]
* [[La Digue]]
* [[Salt Lake City]]
* [[Iguaçu-Wasserfälle]]
* [[Wasserfälle]]
* [[Victoriafälle]]
* [[Niagarafälle]]
* [[Canyon Country]]
* [[Monument Valley]]
* [[Südwesten der USA]]
* [[Lake Powell]]
* [[Lake Mead]]
* [[Canyon de Chelly National Monument]]
* [[Capitol Reef National Park]]
* [[Ruta Nacional 40]]
* [[Navajo Nation]]
* [[Ruta Nacional 9]]
* [[Breitachklamm]]
* [[Ruta del Califato]]
* [[Phoenix (Arizona)]]
* [[Hwange Nationalpark]]
* [[Slot Canyons bei Page]]
* [[Page]]
* [[Las Vegas]]
* [[St. George (Utah)]]
* [[Brasília]]
* [[Santa Fe (New Mexico)]]
* [[Foz do Iguaçu]]
* [[Victoria Falls (Stadt)]]
* [[Niagara Falls (New York)]]
* [[Rio de Janeiro]]
* [[Kapstadt]]
* [[Table-Mountain-Nationalpark]]
* [[Singapur]]
* [[Borneo]]
* [[Kuching]]
* [[Malakka]]
* [[Bako-Nationalpark]]
* [[Albuquerque]]
* [[St. Louis]]
* [[Arizona]]
* [[Springfield (Illinois)]]
* [[Colorado]]
* [[Tucson]]
* [[Kingman]]
* [[Seligman]]
* [[Utah]]
* [[Everglades]]
* [[Williams (Arizona)]]
* [[Florida]]
* [[Tsavo-East-Nationalpark]]
* [[Bahnreisen in den USA]]
* [[Great Ocean Road]]
* [[Vancouver]]
* [[North Vancouver]]
* [[Grönland]]
* [[Pacific Coast Highway (Neuseeland)]]
* [[Nordinsel (Neuseeland)]]
* [[Anne Beadell Highway]]
* [[Coober Pedy]]
* [[Südinsel (Neuseeland)]]
* [[Kuranda]]
* [[Alice Springs]]
* [[Queensland]]
* [[Sydney]]
* [[Anchorage]]
* [[Canberra]]
* [[Australian Capital Territory]]
* [[New South Wales]]
* [[Blue Mountains (Australien)]]
* [[Blue Mountains National Park]]
* [[Reiseapotheke]]
* [[Melbourne]]
* [[Victoria (Australien)]]
* [[Adelaide]]
* [[Südaustralien]]
* [[Känguru-Insel]]
* [[Flinders-Chase-Nationalpark]]
* [[Indian-Pacific Railway]]
* [[Katoomba]]
* [[Kingscote]]
* [[Westaustralien]]
5jdp46or6so6noriwq13hrlw76glt29
Essen und Trinken in Venetien
0
124777
1769035
1689362
2026-04-16T16:50:13Z
Qualitätssicherung
50648
Scroll gallery für bessere Mobildarstellng
1769035
wikitext
text/x-wiki
Die Küche in [[Venetien]] spreizt von der Tiroler Küche in den [[Dolomiten]] im Norden bis zur Küche des Meeres an der Adria im Süden. Die Metropole der venezianischen Küche ist [[Venedig]], hier verschmelzen Kulturen und Küchen entfernter Völker, die im Laufe der Zeit eine unglaubliche Synergie gefunden haben. Diese Vielfalt zeichnet die lokale Küche aus, es gibt noch viele kulinarische Verlockungen zu erschmecken.
== Vorspeisen - Antipasti==
* '''Sarde in saòr''' sind frische gebtatene Sardinen, die in Weißwein oder Essig mit weich gekochten Zwiebeln, Pinienkernen und Rosinen mariniert werden. Das Gericht wurde früher von Fischern und Seefahrern zubereitet, um den Fisch während ihrer langen Fahrten zu konservieren. In Venedig wird die Vorspeise normalerweise mit gegrillter Polenta serviert.
* Für '''Baccalà Mantecato''' wird gewässerter Stockfisch mit Olivenöl und Knoblauch zu einer cremigen Masse verarbeitet. Serviert wird die Masse auf einer Polentaschnitte.
== Primi - erster Gang ==
{{Scroll Gallery
|title = Primi
|Sarde in saor dans un restaurant vénitien (décembre 2022).JPG|Sarde in saor
|Risi e bisi.JPG|Risi e bisi - Reis mit Erbsen ist typisch
|Vialone Nano semilavorato 1 cropped 1.jpg|Vialone Nano
|Risi e bisi.JPG|Risi e bisi
}}
=== Risotti ===
* Der '''Risotto''' ist ein norditalienisches Reisgericht. Wichtig ist der Mittelkornreis für einen cremigen Risotto, der noch al dente (mit Biss) bleiben soll. Die Reissorte Vialone Nano aus der Veroneser Tiefebene eignet sich besonders gut für Risotto. Außerdem gibt es noch im [[Piemont]] Reissorten ''Carnaroli'' und ''Arborio''.
** Ab Mitte September findet in Isola della Scala die [https://www.fieradelriso.it Fiera del Riso] für mehrere Wochen statt, hier essen die Besucher jedes Jahr rund 300.000 Portionen Risotto.
* '''Risotto all’isolana,''' mit Kalbsfleisch, Schweinelende und etwas Zimt ist eines der beliebtesten Gerichte der Region Verona
* '''Risotto al tastasal''' ist ein typischer erster Gang in Verona. Das ''Tastasal'' ist ein Gemisch aus gehacktem Schweinefleisch mit schwarzem Pfeffer und Salz abgeschmeckt, ähnlich wie Salami. Das Risotto wird normalerweise mit einer Prise Muskatnuss und geriebenem Parmigiano Reggiano garniert.
* '''Risotto all’Amarone''' ist eines der Lieblingsgerichte der Veroneser. Es werden ausschließlich Zutaten aus der Gegend verwendet: Vialone-Nano-Reis, Amarone-Wein und Monte-Veronese-Käse.
* '''Risotto e figatini''' wird mit Hühnerleber zubereitet
* '''Risotto con la panseta''' mit Schweinebauchspeck
* '''Risotto con l’ocheta''' mit Gansstückchen
* '''Risotto con le àgole''' mit Ukelei, einer Fischart aus dem Gardasee
=== Pasta ===
{{Scroll Gallery
|title = Pasta
|Bigoli2.jpg|Bigoli
|Bigoli with anchovy sauce at Ristorante Ribot, Venice.jpg|Bigoli in Salsa
|Tortellini di Valeggio sul Mincio.jpg|Tortellini di Valeggio sul Mincio
|Pasta e fagioli - minestra.jpg|Pasta e fagioli
|Gnocchi di semolino e zucca.jpg|Gnocchi di Zucca
}}
* '''Bigoli in Salsa''' besteht aus Vollkorn-Bigoli-Nudeln in einer Sardellen- und Zwiebelsauce. Der nussige Geschmack der Bigoli passt gut zu den Sardellen und verleiht dem ganzen Gericht einen einzigartigen Geschmack. Manchmal werden die Sardellen auch durch scharf schmeckende, in Salz eingelegte Sardinen ersetzt. Bigoli ist eine traditionelle venezianische Pasta, etwas dicker als Spaghetti, mit einer rauen Textur, die es ermöglicht, dass die Sauce besser aufgenommen werden kann.
* '''Subioti de Bassan''' sind kleine, raue Röhrchen-Nudeln durch ihre Porosität und Rillen können sie die Soßen besonders gut aufnehmen. Sie werden gerne mit Butter und Käse oder mit Sardellen-/Sardinensauce gegessen.
* '''Casunziei ampezzani''' werden in den Dolomiten Ravioli genannt. Frische Nudeln gefüllt mit Randen (Rote Bete) oder auch weissen Rüben, Kartoffeln, oder Ricotta. Typischerweise mit geschmolzener Butter, Mohn und Parmesankäse serviert.
* '''Tortelli di Valeggio sul Mincio,''' auch ''Nodi d’amore'' (Liebesknoten) genannt, werden aus einem sehr dünn ausgerollten Teig hergestellt. Dieser wird geschnitten, gefüllt und wie ein Taschentuch verknotet wird. Die Füllungen bestehen aus diversen Fleischsorten, manchmal auch Gemüse.
=== Gnocchi ===
'''Gnocchi di Zucca''' sind Kürbisklößchen, die mit geriebenen geräucherten Ricotta Käse und geschmolzener Butter serviert werden.
== Secondi - zweiter Gang ==
[[File:Pastin sulla griglia.png|thumb|Pastìn werden gegrillt]]
[[File:Fegato alla veneziana.jpg|thumb|Fegato alla veneziana]]
=== Fleisch ===
* '''Pastìn''' ist ein typisches Belluno-Gericht. Hackfleisch mit Schweine- und Rindfleisch werden wie Wurst, gesalzen und scharf gewürzt, oder es wird einfach frisch zubereitete Salami genommen. Die Masse wird auf Brot roh gegessen oder gegrillt. Typisch ist das Sandwich mit Pastin und gegrilltem Käse, das zu den Dorffesten von Belluno serviert wird.
* Ein sehr bekanntes Gericht ist '''Bollito alla padovana,''' gekochtes auf [[Padua|padovanische]] Art. Unterschiedliche Sorten Fleisch werden mit jahreszeitlichem Gemüse gekocht. Dazu werden Saucen, Meerrettich oder Senf gereicht.
* '''Castradina''' ist eine Hammelkeule die stundenlang mit Kohl und Zwiebel weich gekocht wird.
* '''Fegato alla venexiana''' ist Kalbsleber, die mit Zwiebel und Weißwein zubereitet und gerne mit Polenta gegessen wird,
* Die '''Sópa coàda''' (venezianisch „brodelnde Suppe“) ist ein typisches Gericht der trevisanischen Küche. Es handelt sich um eine Taubenpastete mit einer eher trockenen Konsistenz, so dass sie manchmal mit einer Tasse kochender Brühe serviert wird, die separat gegessen oder darüber gegossen wird. Das Rezept (von dem es allerdings viele Varianten gibt) sieht vor, dass abwechselnd Schichten von altbackenem, in Brühe eingeweichtem Brot und Schichten von geschmortem und gehacktem Taubenfleisch ohne Knochen aufgeschichtet werden. Das Ganze wird dann für einige Stunden in den Ofen geschoben. Dazu passt ein trockener Rotwein, z. B. ein Merlot aus dem Piave. In der Gegend um Motta di Livenza wird alternativ auch Hühnerfleisch verwendet.
=== Fisch ===
[[File:Baccalà alla Vicentina.jpg|thumb|Baccalà alla Vicentina]]
[[File:Baccalà mantecato con polenta La Nuova Perla.jpg|thumb|Baccalà mantecato con polenta]]
* '''Baccalà alla Vicentina''' wird mit Stockfisch zubereitet, einem Kabeljau, der nicht gesalzen, sondern an der Luft getrocknet wird, bis er fast steinhart ist, und der vor dem Kochen mehrere Tage lang eingeweicht werden muss. Der Kabeljau nach Vicenza-Art wird langsam in Milch gekocht und mit einem würzigen ''Soffritto'' (Saucengrundlage) aus Knoblauch, Zwiebeln und Sardellen aromatisiert. Durch die lange Kochzeit wird das Fleisch des Stockfischs zart, während die Milch den typischen starken Geschmack getrockneten Kabeljaus mildert. Baccalà alla Vicentina wird traditionell auf weicher Polenta serviert, und es empfiehlt sich, dazu einen lokalen Weißwein z. B. Soave zu trinken.
* '''Anguilla fritta,''' gebratener Aal, ist ein sehr beliebtes Gericht im Po-Delta, auch '''Anguilla in umido,''' geschmorter Aal, ist sehr verbreitet, serviert mit der unvermeidlichen gegrillten Polenta.
== Dolci - Nachspeisen ==
{{Scroll Gallery
|title = Süßes
|Treviso tiramisù.jpg|Tiramisù
|Frittelle di carnevale.jpg|Frittelle di carnevale
|Pandoro cut 01.jpg|Pandoro
|Pinsa o Pinza Dolce Veneto dell'Epifania.jpg|Pinsa zum Dreikönigsfest
}}
* Die weltberühmte italienische Nachspeise '''Tiramisù''' stammt ursprünglich aus Venetien.
* '''Frittelle''' sind ein Karnevalgericht. Teigkugeln werden verschieden gefüllt, von Apfel bis Nutella und dann frittiert.
== Aufschnitt, Würste und mehr + Salumi, salsicce e altro ancora ==
{{Scroll Gallery
|Piatto misto Asolo.jpg|Piatto misto mit porchetta, sopressa, salame, formaggi misti, marmellate
|Piatto Asolano.jpg| Polenta und Sopressa mit geschmolzenen Morlacco Käse und Salat
|Pasta Asolana.jpg|Penne mit Sopressa, Radicchio und Formaggio Morlacco
|Polenta con sopressa e funghi.jpg|Sopressa mit Polenta und Pilzen
}}
* '''Sopressa''' ist eine Salami, die aus Schweinefleisch, Schmalz, Salz, Pfeffer, Gewürzen und Knoblauch hergestellt wird. Sie wird vielfältig in der Küche verwendet, roh als Aufschnitt gegessen, mit Käse überbacken oder als Zutat für eine Soße. Sopressa Vicentina (aus Vicenza)
* Prosciutto Veneto Berico-Euganeo (Schinken)
== Formaggi - Käse ==
{{Scroll Gallery
|title = Käse
|Grana Padano-Carved-1.jpg|Grana Padano
|Asiago cheese (1).jpg|Asiago-Käse
|Formaggio Montasio.jpg|Montasio
}}
* '''Grana Padano-''' und '''Asiago-''' Käse
Der {{Sitelinks | name = Montasio | wikidata = Q534069 }} DOP ist ein typischer Hartkäse aus Kuhmilch aus der Region Belluno. Er wird aber auch in den Provinzen Friaul-Julisch Venetien und Treviso und teilweise in den Provinzen Venedig und Padua hergestellt. Nach 2 Monaten Reifezeit ist er durch Bakterien auf natürliche Art laktosefrei. Jung wird er Montasio zum Brot gegessen, etwas älter zum Überbacken verwendet.
== Gebackenes - Prodotti da forno ==
* Der aus Verona stammende {{Sitelinks |name=Pandoro |wikidata=Q1199738}} eine typische Weihnachtsspezialität, ein kuppelförmiger weicher Kuchen. Er ähnelt dem Panettone, jedoch werden weder Rosinen noch kandierte Früchte eingebacken.
* Die '''Pinsa veneta''' ist ein Dessertkuchen aus Maismehl, Hefe, Zucker und Milch, dazu kommen Pinienkerne, getrocknete Feigen, Rosinen, Fenchelsamen und Grappa. Dazu wird Rotwein gereicht, vor allem Fragolino oder Glühwein. Der Kuchen kann einen Durchmesser bis zu einem Meter erreichen wird in der Regel während der Weihnachtsfeiertage und vor allem anlässlich des Dreikönigsfestes verzehrt.
== Weiteres ==
{{Scroll Gallery
|title = Cicheti
|Cicchetti Venezia (1).jpg| Cicchetti. Links: mit Radicchio, Petersilie und Sardellen. Mitte: Bohnen und Thunfisch. Rechts: Baccalà (gesalzener und anschließend luftgetrockneter Kabeljau).
|Cicchetti Venezia (3).jpg| Cicchetti. Links: mit Mortadella Mitte: mit getrockneten Tomaten. Rechts: mit Räucherlachs.
}}
* Die '''Panada''' ist ein typisches Gericht aus altbackenen Brot mit Olivenöl, Salz und Salbei.
* '''Chenedi''' sind die Variante der Tiroler Knödel in der Region um [[Cortina d’Ampezzo]], mit Speck, Spinat, Schmalz oder Käse gefüllte Semmelknödel, die in heißer Brühe oder mit zerlassener Butter serviert werden.
* '''Risi e bisi''' sind Reis und Erbsen
* '''Pasta e fasoli''' sind Nudeln und Bohnen.
* '''Cicheti''' sind kleine Häppchen mit Fleisch, oder auch Fisch. Sie erinnern an spanische Tapas. In vielen Bars gibt es als belegte Weißbrotschnitten mit einer Vielzahl unterschiedlicher Beilagen.
== Zutaten ==
Regionaltypische Lebensmittel und geographisch geschützte Produkte:
=== Reis ===
Das flache Land Bassa Verones südlich von Verona wird landwirtschaftlich genutzt. Im Sumpfland wird seit dem 15. Jahrhundert '''Reis''' angebaut. Die lokale Sorte ist ''Vialone Nano Veronese,'' die sich besonders für schmelzige Risottogerichte eignet.
Die „Cittá di Riso“ [[Isola della Scala]] liegt inmitten der Reisfelder. Die Reisproduzenten ''Ferron,'' ''Ranch,'' ''Melotti,'' ''del Vò,'' ''Riccò'' und die Cooperativa ''La Pila'' betreiben alle Läden in oder um die Stadt. Dort kann man den lokalen Qualitätsreis kaufen.
=== Radicchio ===
{{Scroll Gallery
|title = Radicchio
|Radicchio Rosso di Treviso tardivo.jpg|Radicchio Rosso di Treviso
|Az food Marsica radicchio.jpg|Penne al Radicchio
|Risotto with radicchio and oranges (32407613653).jpg|Risotto mit Radicchio
}}
Der '''Radicchio''' ist das Kultgemüse im Treviso und Castelfranco. Die Ernte beginnt Mitte November nach den ersten Nachtfrösten und dauert bis in den Februar hinein. Das bittere Gemüse findet in der lokalen Küche vielfältige Anwendung und sollte bei einem Besuch in der Saison auf jeden Fall probiert werden.
=== Weitere ===
* Spargel aus Bassano und Cimadolmo
* Die '''Lamon Bohne''' g.g.A. ist klein, rundlich, weiß-rosa mit lila Streifen. Sie wird für Suppe und Salat verwendet,oder einfach nur gegart, mit Zwiebel und Öl. Sie wir seit dem 16.Jahrhundert in der Hochebene von Lamon angebaut.
* Die violette Artischockensorte '''ciofo violetto''' ist eine Spezialität aus der Lagune, angebaut wird das Gemüse auf der Laguneninsel ''Sant’Erasmo.'' ''Castraure'' sind die ersten Knospen der Artischocken, die zurückgeschnitten werden, Sie sind bei den Venezianern beliebt und werden von Anfang April bis Mitte Mai den Händlern aus der Hand gerissen. Auf überregionalen Märkte schafft es die Delikatesse so gut wie nie. Am zweiten Sonntag im Mai wird auf der Insel Sant’Erasmo das Fest des Artichoke Violetto gefeiert.
== Getränke ==
[[File:Santo Stefano (Valdobbiadene).jpg|thumb|Die Weinberge von Valdobbiadene]]
=== Wein ===
Venetien ist die größte und produktivste Weinregion des Landes. Es gibt viele DOC-Weine, zu den bekanntesten gehören Weine aus den Regionen Amarone della Valpolicella, Bardolino Superiore, Conegliano Valdobbiadene Prosecco und Soave Superiore. Darüber hinaus sind zu nennen: Asolo Prosecco, Bagnoli Friularo, Colli di Conegliano, Colli Euganei Fior d'Arancio, Lison, Montello Rosso, Piave Malanotte, Recioto della Valpolicella, Recioto di Gambellara und Recioto di Soave
==== Prosecco ====
Die Glera-Rebe (neue Bezeichnung der Sorte Prosecco) wird besonders für die Herstellung von Proseccos genutzt. Der Prosecco DOCG wird nur in den Gebieten von [[Conegliano]], [[Asolo]] und [[Valdobbiadene]] hergestellt. Er wird dann '''Prosecco di Conegliano Valdobbiadene''' genannt. Es werden hauptsächlich Glera Trauben mindestens 85 % und andere Rebsorten wie ''Verdiso,'' ''Perera,'' ''Glera Lunga'' und ''Bianchetta trevigiana'' maximal 15 % verwendet.
{{marker|type=vineyard|name=Le Colline del Prosecco di Conegliano e Valdobbiadene|wikidata=Q65029145}} – Die '''Prosecco-Hügel''' westlich von Vittorio Veneto sind seit dem 17. Jahrhundert auf die Herstellung des weltbekannten Schaumweins Prosecco spezialisiert. Eine idyllische, vom Weinbau geprägte, Kulturlandschaft. Im Jahr 2019 wurde dieses Weinanbaugebiet zum Weltkulturerbe erklärt.
==== Rotwein ====
aus dem Valpolicella-Gebiet (Amarone della Valpolicella, Valpolicella Ripasso, Recioto della Valpolicella) oder Bardolino
==== Weißwein ====
aus der Lugana, Soave oder Custoza
=== Schnäpse und Liköre ===
[[File:TagliatellaNardini.jpg|thumb|Tagliatella]]
* Grappa veneta
* '''Aperol''' wurde in Padua erfunden. Der Aperitif wurde von den Brüdern Silvio und Luigi Barbieri 1919 exklusiv für die internationale Messe in Padua entwickelt.
* '''Nardini''' ist ein klaren Amaro von dunkler, fast mahagonifarbener Farbe aus Grappa und einem Mazerat aus verschiedenen Pflanzen. Das Rezept der [http://www.nardini.it/de/ Distilleria Nardini] ist ein streng gehütetes Familiengeheimnis. Bekannte Zutaten sind Pfefferminze, Bitterorangen, Lakritze, Nelken und Enzian. Der kräuterreicher Likör eignet sich am besten als Getränk nach dem Essen, pur oder auf Eis, zusammen mit einer Orangenscheibe.
* '''Amaro San Giuseppe''' ist ein lokaler Bitterlikör aus [[Bassano del Grappa]]
* '''Tagliatella''' ist ein Likör mit Maraska-Kirschsaft, Orangenschale, Nelke und Chinarinde
* '''Mezzoemezzo''' ist ein Mix aus Rotwein und Rhabarberlikör, der klassischerweise als Aperitiv getrunken wird
== Kulinarischer Kalender ==
Kulinarische Genüsse sind häufig saisonal. Obst und Gemüse sind schmackhafter wenn sie reif geerntet werden, auch Fleisch und Fisch unterliegen saisonalen Einflüssen. Zu jeder Jahreszeit werden Feste gefeiert, die den Genuss allgemein zum Thema haben oder bestimmte Nahrungsmittel in den Vordergrund stellen. Es gibt auch Trink- und Essgewohnheiten im Jahreslauf, die aus religiösen Traditionen, wie Fastenzeiten, entstanden sind.
=== Januar ===
'''Pinsa veneta''' wird anlässlich des Dreikönigsfestes verzehrt.
<!--
=== Februar ===
=== März ===-->
=== April ===
In der zweiten Aprilwoche wird die Weinmesse '''Vinitaly''' in [[Verona]] veranstaltet.
Am zweiten Sonntag nach Ostern findet auf dem Piazza Perlasca in [[Teolo]] das Gnoccifest '''[http://www.comitatofesteteolo.it/sagragnocco.asp Sagra del Gnocco]''' statt. Von über 100 Helfern werden Gnocci mit der Hand gefertigt und dann mit vielen Soßen und gegrilltem Fleisch serviert.
=== Mai ===
Am zweiten Sonntag wird auf der Insel Sant’Erasmo das Fest des Artichoke Violetto gefeiert.
<!--
=== Juni ===
=== Juli ===
=== August ===-->
=== September ===
* Ab Mitte September findet die ''[https://www.fieradelriso.it/ Fiera del Riso]'' für mehrere Wochen statt, hier verteilen die Köche jedes Jahr rund 300.000 Portionen Risotto an die Besucher.
* Das Fest der berühmten '''Bohnen''' in [[Lamon (Venetien)|Lamon]] in [[Venetien]] wird Ende September gefeiert.
=== Oktober ===
* Am dritten Sonntag im Oktober findet in [[Teolo]] das Maronifest '''[http://www.comitatofesteteolo.it/sagramaroni.asp Sagra dei Maroni]''' statt. Außer den Esskastanien gib es einen riesigen Topf mit Polenta, sie wird noch mit Tomaten, Bohnen und Speck verfeinert und macht eine Vielzahl von Hungrigen satt.
<!--
=== November ===-->
=== Dezember ===
* '''Pandoro''' ist eine typische Weihnachtsspezialität und '''Pinsa''' wird in der Regel während der Weihnachtsfeiertage gegessen.
{{Navigationsblock
|Navigationsleiste Essen und Trinken in Italien}}
{{IstIn|Essen und Trinken in Italien}}
[[Kategorie:Venetien]]
{{class-2}}
bksz1zjf3qhmdyfbfdwm7onwjri1poy
D-Route 4: Mittelland-Route
0
127590
1769113
1768460
2026-04-16T22:13:23Z
Dirk Schmidt
15181
/* Streckenprofil */
1769113
wikitext
text/x-wiki
Die '''D-Route 4: Mittelland-Route''' führt von [[Aachen]] über [[Bonn]] und die deutschen Mittelgebirge nach Thüringen. Hier steht die Städte Thürigens mit ihren Kulturschätzen auf dem Programm. Über [[Chemnitz]] wird die Metropole [[Dresden]] an der Elbe erreicht. Durch das Bergland der [[Oberlausitz]] wird schließlich [[Zittau]] an der Neiße angefahren.
== Streckenprofil ==
[[Datei:D-Route D4 Logo 2023.svg|mini|das neue Logo der D4. Oft sind noch die alten Logos zu finden.]]
[[Datei:R2 ruhlkirchen.jpg|mini|Spiegelblicke an der D 4 in Hessen.]]
* '''Länge: 1026 km'''
* '''Ausschilderung:''' Das Logo der D-Route 4 ist an der vorhandenen Wegweisung vorhanden. In NRW, Hessen und Thüringen ist das Logo wohl komplett vorhanden. Oft ist hier dann aber eine regionale Radroute ausgeschildert. Wer dieser Wegweisung folgt kommt in der Regel so auch ans Ziel. Ob das Logo in Sachsen an allen Teilen der Strecke montiert ist, ist Stand 04-2026 unklar. Laut [https://sachsen.adfc.de/artikel/saechsische-staedteroute Artikel des ADFC Sachsen] besitzt die Sächsische Städtekette, die zwischen Landegrenze Sachsen/Thüringen in Bündelung mit der D4 verläut wohl teilweise Beschilderungsmängel. Aber: In Sachsen ist das "Landesweite Sachsennetz Rad" wohl noch unvollständig beschildert (?, [https://www.mobilitaet.sachsen.de/sachsennetz-rad-4296.html Info]). Falls dort teilweise gar keine Radwegweisung stehen sollte, gibt es noch das Radnavi auf der App bzw. die altbekannte Radwanderkarte.
* '''Steigungen:''' Im Mittelgebirgsgürtel gibt es einige Steigungen. Ein Pedelec ist sinnvoll.
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand meist gut.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt, je nach Region werden stellenweise allerdings auch stärker befahrene Landes- und Bundesstraßen befahren. Dies ist beispielsweise im Siegtal der Fall. Hier ist der Routenausbau noch nicht abgeschlossen. Als "Umleitung" bestehen so teilweise Routenführungen mit knackigen Anstiegen über die Höhen. Auch in Sachsen bestehen noch Ausbaulücken.
* '''Geeignetes Fahrrad:''' Fahrrad mit mindestens 7-Gang-Nabenschaltung. Aufgrund der Steigungen ist aber ein Pedelec zweckmäßig.
* '''Familieneignung:''' durchgehend nein, lokal evtl. gegeben
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die D-Route 4: Mittelland-Route gehört zum [[Deutschland per Rad#D-Routen|Radnetz Deutschland]]. Das Netz besitzt knapp 11.000 km Gesamtlänge verteilt auf 13 Routen.
== Vorbereitung ==
Für diese Radreise durch die Mitte Deutschlands sind drei Wochen eine sinnvolle Zeitplanung.
Die Strecke lässt sich auch in z. B. drei Teilurlauben von je einer Woche absolvieren. Oft verläuft eine Bahnlinie parallel.
{{mapframe | name = Für die Darstellung der Strecke bei den Ebenen "Radwege" anklicken}}
{{Mapshape|wikidata=Q42301985|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Aachen, wie auch Zittau sind an das Deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Aachen ist an die länderübergreifende EuroVelo-Route EV3 angeschlossen. Weiter dazu siehe Artikel [[EuroVelo]] bzw. Wikipedia als [[w:Pilgerroute (EV3)|Pilgerroute (EV3)]].
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
===1. Etappe: Aachen – Heimbach (etwa 70 bis 75 km) ===
[[Datei:Blick auf das Rathaus und den Dom Aachens aufgenommen von St Jakob.jpg|300px|mini|Blick auf Aachen: Rechts das Rathaus, links der Dom]]
Die erste Etappe startet gleich bergig. Es geht in die Ausläufer des Hohen Venn bzw. der Nordeifel.
* {{Marker | name = [[Aachen]] | type= City | wikidata = Q1017}} - Bekannt für seinen Dom.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Die ersten Höhenmeter werden aber komfortabel auf dem sanft ansteigenden Bahnradweg der [[Vennbahn]] zurückgelegt. Nach rund 10 km wird der Bahnradweg bei Kornelinmünster verlassen.
* {{Marker | name = Kornelinmünster | type= city | wikidata = Q154048}} - Stadtteil von Aachen. Hier findet sich das {{Marker | name = Benediktinerkloster Kornelimünster | type= see | wikidata = Q152432}}. Die Anlange beherbergt heute als Kunstmuseum das [https://www.kunsthaus.nrw/ Kunsthaus nrw Kornelimünster]. Sammlungsschwerpunkt ist moderne Kunst.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Über meist asphatierte Nebenstraßen geht es bergig hinüber ins Tal der Rur.
* {{Marker | name = [[Nideggen]] | type= City | wikidata =Q200105}} - Burg hoch über dem Tal. Die Altstadt von Nideggen liegt ebenfalls abseits der Route auf der Höhe.
* {{Marker | name = [[Heimbach]] | type= City | wikidata = Q200138}} - Etappenort an der Rur mit Burganlage.
===2. Etappe: Heimbach - Bad Godesberg (etwa 70 km) ===
Ab Heimbach rund 150 Höhenmeter auf Schotter auf die Höhen der Nordeifel. Bis zum Rhein bleibt es bergig bzw. hügelig. Je näher man Bonn kommt, um so urbaner wird es.
* {{Marker | name = [[Euskirchen]] | type= City | wikidata = Q4074}}
* {{Marker | name = [[Meckenheim]] | type= City | wikidata = Q12464}}
* {{Marker | name = Bad Godesberg | type= city | wikidata = Q153260}} - Kurstadtteil von [[Bonn]]
===3. Etappe: Bad Godesberg - Eitorf: etwa 60 km ===
Diese Etappe geht das Siegtal aufwärts. Die Strecke zwischen Bonn und Siegen besitzt allerdings noch Lücken. Entweder geht es mangels Talweg steil auf die Höhe, oder man muss abschnittsweise direkt auf der stark befahrenen Bundesstraße radeln.
* {{Marker | name = [[Bonn]] | type= City | wikidata = Q586}}
* {{Marker | name = [[Eitorf]] | type= city | wikidata = Q254649}}
===4. Etappe: Eitorf – Siegen (etwa 70 km) ===
* {{Marker | name = [[Siegburg]] | type= City | wikidata = Q14870}}
* {{Marker | name = [[Siegen]] | type= City | wikidata = Q3167 }}
===5. Etappe: Siegen – Biedenkopf (etwa 60 km) ===
[[Datei:Biedenkopf mit Schloss.jpg|mini|Biedenkopf mit Schloss]]
* '''[[Siegen]]''' - Etappenstart
* {{Marker | name = [[Netphen]] | type= City | wikidata = Q10950}}
* {{Marker | name = [[Bad Laasphe]] | type= City | wikidata =Q6755 }}
* {{Marker | name = [[Biedenkopf]] | type= City | wikidata = Q552554}}
===6. Etappe: Biedenkopf – Schwalmstadt (etwa 80 km) ===
* {{Marker | name = [[Kirchhain]] | type= City | wikidata = Q569684}}
* {{Marker | name = [[Amöneburg]] | type= City | wikidata = Q373902 }} - Abstecher in das Bergstädtchen lohnt, schöne Talsicht von der Ruine
* {{Marker | name = [[Stadtallendorf]] | type= City | wikidata =Q573514 }}
* {{Marker | name = [[Neustadt (Hessen)]] | type= City | wikidata = Q502991}} - Am Junker-Hansen-Turm lohnt ein Stopp.
* {{Marker | name = [[Schwalmstadt]] | type= City | wikidata =Q516599 }}
[[Datei:Bahnradweg rotkäppchenland rastplatz bei steinmühle ds wv 22 09 2011.jpg|mini|Ländliche Idylle im Knüll: Bahnradweg Höhe "Rastplatz Steinmühle"]]
===7. Etappe: Schwalmstadt - Bad Hersfeld: etwa 70 km ===
Auf dieser Etappe von der Schwalm an die Fulda wird das {{Marker | name = [[Knüllgebirge]] | type= landscape | wikidata = Q446023}} gequert. Die D 4 nutzt dafür den sanft ansteigenden [[Bahnradweg Rotkäppchenland]].
* {{Marker | name = [[Neukirchen (Knüll)]] | type= City | wikidata = Q624847}}
* {{Marker | name = [[Oberaula]] | type= City | wikidata = Q622420}}
* {{Marker | name = [[Bad Hersfeld]] | type= City | wikidata = Q16145}} - Kurstadt an der Fulda, sehenswerte Altstadt, bekannt für die [[w:Bad Hersfelder Festspiele|Bad Hersfelder Festspiele]]
===8. Etappe: Bad Hersfeld – Eisennach (etwa 90 km) ===
[[Datei:Heringen Germany Monte-Kali-01.jpg|mini|Landschaftsblick im Kalidreieck an der Werra.]]
[[Datei:Eisenach von Göpelskuppe.jpg|mini|Blick auf Eisenach von Göpelskuppel]]
* {{Marker | name = Hessisches Kegelspiel | type= landscape | wikidata = Q1615977}} - Vulkanlandschaft in der nördlichen Rhön. Wie Spielkegel erheben sich die Bergkuppen.
* {{Marker | name = [[Heringen (Werra)]] | type= City | wikidata =Q570334 }} - Gelegen im Kalidreieck. Der [[w:Monte Kali|Monte Kali]] bei Heringen kann übrigens auf angemeldeten Führungen besichtigt werden (Infos Führungen siehe [https://www.kalimuseum.de www.kalimuseum.de]
* {{Marker | name = [[Hörschel]] | type= City | wikidata = Q1548490}} - Hier beginnt der bekannte Höhenwanderweg [[Rennsteig]]. Parallel gibt es übrigens als [[Rennsteig-Radwanderweg]] auch eine anspruchsvoll Höhenroute für das Fahrrad.
* {{Marker | name = [[Eisenach]] | type= City | wikidata = Q7070}} - Wahrzeichen ist die Wartburg.
===9. Etappe: Eisenach – Erfurt (etwa 70 km) ===
* {{Marker | name = [[Gotha]] | type= City | wikidata = Q6986}}
* {{Marker | name = [[Drei_Gleichen_(Gemeinde)|Drei Gleichen]] | type= City | wikidata = Q682044}} - Wahrzeichen der Gemeinde sind die drei Burgen.
* {{Marker | name = [[Erfurt]] | type= City | wikidata = Q1729}}
===10. Etappe: Erfurt – Jena (etwa 50 km) ===
* {{Marker | name = [[Weimar]] | type= City | wikidata = Q3955}}
* {{Marker | name = [[Jena]] | type= City | wikidata = Q3150}}
===11. Etappe: Jena – Gera (etwa 60 km) ===
* {{Marker | name = [[Thüringer Holzland]] | type= landscape | wikidata = Q2430791}}
* {{Marker | name = [[Hermsdorf]] | type= City | wikidata =Q552692 }}
* {{Marker | name = [[Eisenberg]] | type= City | wikidata = Q486568 }}
* {{Marker | name = [[Bad Köstritz]] | type= City | wikidata = Q4431}}
* {{Marker | name = [[Gera]] | type= City | wikidata = Q3750}}
===12. Etappe: Gera – Chemnitz (etwa 80 km) ===
[[Datei:Das ehemalige Karl-Marx-Forum in Chemnitz 2015.jpg|mini|Lichtspiele in Chemnitz]]
* {{Marker | name = [[Ronneburg (Thüringen)|Ronneburg]] | type= City | wikidata = Q554655}}
* {{Marker | name = [[Crimmitschau]] | type= City | wikidata = Q20070}}
* {{Marker | name = [[Meerane]] | type= City | wikidata = Q20083}}
* {{Marker | name = [[Glauchau]] | type= City | wikidata = Q20071}}
* {{Marker | name = [[Hohenstein-Ernstthal]] | type= City | wikidata = Q20073 }}
* {{Marker | name = [[Chemnitz]] | type= City | wikidata = Q2795}}
===13. Etappe: Chemnitz – Freiberg (etwa 50 km) ===
Auf dieser bergigen Etappe steht Schloss Augustusburg auf dem Programm.
* {{Marker | name = [[Augustusburg]] | type= City | wikidata = Q71090 }}
* {{Marker | name = [[Oederan]] | type= City | wikidata = Q71141}}
* {{Marker | name = [[Freiberg]] | type= City | wikidata = Q14819}}
===15. Etappe: Freiberg – Dresden (etwa 50 km) ===
* {{Marker | name = [[Tharandt]] | type= City | wikidata = Q8245}}
* {{Marker | name = [[Dresden]] | type= City | wikidata = Q1731}}
===16. Etappe: Dresden – Neustadt in Sachsen (etwa 70 km) ===
* {{Marker | name = Schloss Pillnitz | type= see | wikidata = Q462239}}
* {{Marker | name = [[Stolpen]] | type= City | wikidata = Q8243}}
* {{Marker | name = [[Neustadt in Sachsen]] | type= City | wikidata = Q8210}}
===17. Etappe: Neustadt in Sachsen – Zittau (etwa 70 bis 75 km) ===
[[Datei:Blick vom Nonnenfelsen - panoramio.jpg|mini|Zittauer Gebirge: Blick vom Nonnenfelsen bei Jonsdorf]]
* {{Marker | name = [[Neugersdorf]] | type= City | wikidata = Q572595}}
* {{Marker | name = [[Zittau]] | type= City | wikidata = Q157200}} - Wer möchte kann am Ende der Radreise noch das kleine, aber interessante [[Zittauer Gebirge]] erkunden.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z. B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* [[Oder-Neiße-Radweg]]
== GPX-Daten ==
* [https://www.radroutenplaner-deutschland.de/veraDaten_DE.asp offizielle GPX-Daten zu den D-Routen]
== Literatur- und Kartenhinweise ==
* {{Buch|Autor=|Herausgeber=|Titel=Mittellandroute; Von Aachen nach Zittau – Einmal quer durch Deutschland 1:75.000|Ort=Rodingersdorf|Verlag=Esterbauer|Jahr=2023|Auflage=2|Band=|Seiten=|Seitenanzahl=| Reihe = bikeline |ISBN=978-3-7111-0092-4|Kommentar=|Sprache=|Online= }}
== Weblinks ==
* [https://www.radroutenplaner-deutschland.de/veraDNetz_DE.asp Radnetz Deutschland radroutenplaner-deutschland.de] - offizielle Infos zum Netz bzw. auch zur D4 (Routeninfos sehr kurz gehalten)
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Hessen]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radwege in Thüringen]]
[[Kategorie:Radwege in Nordrhein-Westfalen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-2}}
iobny04bvp3nlgf37iq0sh6l16svgrx
Benutzer:RolandUnger/Statistics Archives/2026
2
128113
1769132
1767573
2026-04-17T04:47:18Z
RolandUnger
3
UPdate
1769132
wikitext
text/x-wiki
{{PROJ}}{{IstIn|RolandUnger/Statistics Archives}}
The following chart shows Wikivoyage language versions by article count. The chart will be updated every Friday morning. Statistics of the past years are stored in the [[Benutzer:RolandUnger/Statistics Archives|archives]].
== Article count ==
<div style="transform: rotateX(180deg); overflow-x: auto;">
{| class="prettytable multiline" cellspacing="0" style="text-align: right; font-size: 90%; transform: rotateX(180deg)"
|-
! Date & Days !! bn: !! cs: !! de: !! el: !! en: !! eo: !! es: !! fa: !! fi: || fr: !! he: !! hi: !! id: !! it: !! ja !! nl: !! pl: !! ps: !! pt: !! ro: !! ru: !! shn: !! sv: !! tr: || uk: !! vi: !! zh:
|-
| 2026/04/17 <br /> 7,068 || 2,373 <br /> −1 || 611 <br /> +2 || 20,852 <br /> +6 || 1,436 <br /> 0 || 34,053 <br /> −4 || 1,468 <br /> +3 || 3,657 <br /> +3 || 8,659 <br /> 0 || 1,800 <br /> 0 || 10,046 <br /> +7 || 2,450 <br /> 0 || 190 <br /> +1 || 1,626 <br > 0 || 13,366 <br /> +8 || 1,565 <br /> 0 || 4,359 <br /> 0 || 13,653 <br /> +5 || 316 <br /> 0 || 4,049 <br /> 0 || 922 <br /> 0 || 6,882 <br /> +1 || 200 <br /> 0 || 1,615 <br /> 0 || 504 <br /> 0 || 1,195 <br /> −4 || 1,495 <br /> 0 || 5,588 <br /> 0
|-
| 2026/04/10 <br /> 7,061 || 2,374 <br /> −1 || 609 <br /> +1 || 20,846 <br /> +4 || 1,436 <br /> 0 || 34,057 <br /> +25 || 1,465 <br /> +3 || 3,654 <br /> +1 || 8,659 <br /> −2 || 1,800 <br /> 0 || 10,039 <br /> +18 || 2,450 <br /> 0 || 189 <br /> 0 || 1,626 <br > 0 || 13,358 <br /> +1 || 1,565 <br /> 0 || 4,359 <br /> +2 || 13,648 <br /> +3 || 316 <br /> 0 || 4,049 <br /> 0 || 922 <br /> 0 || 6,881 <br /> 0 || 200 <br /> 0 || 1,615 <br /> 0 || 504 <br /> 0 || 1,199 <br /> 0 || 1,495 <br /> +3 || 5,588 <br /> 0
|-
| 2026/04/03 <br /> 7,054 || 2,375 <br /> −1 || 608 <br /> 0 || 20,842 <br /> +9 || 1,436 <br /> 0 || 34,032 <br /> +40 || 1,462 <br /> +4 || 3,653 <br /> 0 || 8,661 <br /> 0 || 1,800 <br /> +1 || 10,021 <br /> +21 || 2,450 <br /> +1 || 189 <br /> 0 || 1,626 <br > 0 || 13,357 <br /> +15 || 1,565 <br /> 0 || 4,357 <br /> +2 || 13,645 <br /> +4 || 316 <br /> 0 || 4,049 <br /> 0 || 922 <br /> 0 || 6,881 <br /> +1 || 200 <br /> 0 || 1,615 <br /> 0 || 504 <br /> 0 || 1,199 <br /> 0 || 1,492 <br /> +2 || 5,588 <br /> 0
|-
| 2026/03/27 <br /> 7,047 || 2,376 <br /> +1 || 608 <br /> 0 || 20,833 <br /> +7 || 1,436 <br /> −10 || 33,992 <br /> +18 || 1,458 <br /> +1 || 3,653 <br /> +2 || 8,661 <br /> 0 || 1,799 <br /> 0 || 10,000 <br /> +22 || 2,449 <br /> 0 || 189 <br /> 0 || 1,626 <br > 0 || 13,342 <br /> +9 || 1,565 <br /> 0 || 4,355 <br /> 0 || 13,641 <br /> +5 || 316 <br /> 0 || 4,049 <br /> 0 || 922 <br /> 0 || 6,880 <br /> 0 || 200 <br /> 0 || 1,615 <br /> 0 || 504 <br /> +1 || 1,199 <br /> +7 || 1,490 <br /> 0 || 5,588 <br /> 0
|-
| 2026/03/20 <br /> 7,040 || 2,375 <br /> 0 || 608 <br /> +1 || 20,826 <br /> +3 || 1,436 <br /> −10 || 33,974 <br /> +9 || 1,457 <br /> +2 || 3,651 <br /> +3 || 8,661 <br /> +1 || 1,799 <br /> 0 || 9,978 <br /> +9 || 2,449 <br /> 0 || 189 <br /> 0 || 1,626 <br > 0 || 13,333 <br /> +6 || 1,565 <br /> +1 || 4,355 <br /> 0 || 13,636 <br /> 0 || 316 <br /> 0 || 4,049 <br /> 0 || 922 <br /> 0 || 6,880 <br /> +1 || 200 <br /> 0 || 1,615 <br /> 0 || 503 <br /> +1 || 1,192 <br /> −8 || 1,490 <br /> 0 || 5,588 <br /> 0
|-
| 2026/03/13 <br /> 7,033 || 2,375 <br /> −1 || 607 <br /> 0 || 20,823 <br /> +6 || 1,446 <br /> 0 || 33,965 <br /> +24 || 1,455 <br /> +1 || 3,648 <br /> +6 || 8,660 <br /> +3 || 1,799 <br /> 0 || 9,969 <br /> +32 || 2,449 <br /> 0 || 189 <br /> 0 || 1,626 <br > +7 || 13,327 <br /> +3 || 1,564 <br /> +5 || 4,355 <br /> 0 || 13,636 <br /> +3 || 316 <br /> 0 || 4,049 <br /> 0 || 922 <br /> 0 || 6,879 <br /> 0 || 200 <br /> 0 || 1,615 <br /> 0 || 502 <br /> 0 || 1,200 <br /> +6 || 1,490 <br /> 0 || 5,588 <br /> 0
|-
| 2026/03/06 <br /> 7,026 || 2,376 <br /> 0 || 605 <br /> 0 || 20,817 <br /> +11 || 1,446 <br /> 0 || 33,941 <br /> +15 || 1,454 <br /> +1 || 3,642 <br /> +1 || 8,657 <br /> 0 || 1,799 <br /> 0 || 9,937 <br /> +6 || 2,449 <br /> 0 || 189 <br /> 0 || 1,619 <br > +3 || 13,324 <br /> +2 || 1,559 <br /> +10 || 4,355 <br /> +7 || 13,633 <br /> +6 || 316 <br /> 0 || 4,049 <br /> 0 || 922 <br /> 0 || 6,879 <br /> +3 || 200 <br /> +1 || 1,615 <br /> 0 || 502 <br /> 0 || 1,194 <br /> +2 || 1,486 <br /> 0 || 5,588 <br /> −1
|-
| 2026/02/27 <br /> 7,019 || 2,376 <br /> −2 || 605 <br /> +2 || 20,806 <br /> +5 || 1,446 <br /> +11 || 33,926 <br /> +18 || 1,453 <br /> +4 || 3,641 <br /> +3 || 8,657 <br /> +1 || 1,799 <br /> 0 || 9,931 <br /> +13 || 2,449 <br /> 0 || 189 <br /> 0 || 1,616 <br > +13 || 13,322 <br /> +14 || 1,549 <br /> +1 || 4,348 <br /> +1 || 13,627 <br /> +5 || 316 <br /> 0 || 4,049 <br /> 0 || 922 <br /> 0 || 6,876 <br /> +3 || 199 <br /> 0 || 1,615 <br /> 0 || 502 <br /> 0 || 1,192 <br /> +1 || 1,486 <br /> 0 || 5,589 <br /> +5
|-
| 2026/02/20 <br /> 7,012 || 2,378 <br /> 0 || 603 <br /> 0 || 20,801 <br /> +9 || 1,435 <br /> 0 || 33,908 <br /> +16 || 1,449 <br /> +3 || 3,638 <br /> 0 || 8,656 <br /> 0 || 1,799 <br /> 0 || 9,918 <br /> +6 || 2,449 <br /> 0 || 189 <br /> 0 || 1,603 <br > −1 || 13,308 <br /> +8 || 1,548 <br /> +1 || 4,347 <br /> 0 || 13,622 <br /> +4 || 316 <br /> 0 || 4,049 <br /> 0 || 922 <br /> 0 || 6,873 <br /> +6 || 199 <br /> 0 || 1,615 <br /> 0 || 502 <br /> 0 || 1,191 <br /> +3 || 1,486 <br /> 0 || 5,584 <br /> +4
|-
| 2026/02/13 <br /> 7,005 || 2,378 <br /> +1 || 603 <br /> 0 || 20,792 <br /> +3 || 1,435 <br /> 0 || 33,892 <br /> +12 || 1,446 <br /> +7 || 3,638 <br /> +1 || 8,656 <br /> −1 || 1,799 <br /> 0 || 9,912 <br /> +8 || 2,449 <br /> 0 || 189 <br /> 0 || 1,604 <br > −5 || 13,300 <br /> +10 || 1,547 <br /> +1 || 4,347 <br /> 0 || 13,618 <br /> +2 || 316 <br /> 0 || 4,049 <br /> +1 || 922 <br /> 0 || 6,867 <br /> 0 || 199 <br /> 0 || 1,615 <br /> 0 || 502 <br /> +2 || 1,188 <br /> +1 || 1,486 <br /> +2 || 5,580 <br /> +6
|-
| 2026/02/06 <br /> 6,998 || 2,377 <br /> 0 || 603 <br /> +2 || 20,789 <br /> +2 || 1,435 <br /> 0 || 33,880 <br /> +6 || 1,439 <br /> +4 || 3,637 <br /> 0 || 8,657 <br /> +1 || 1,799 <br /> 0 || 9,904 <br /> +8 || 2,449 <br /> 0 || 189 <br /> 0 || 1,609 <br > +11 || 13,290 <br /> +13 || 1,546 <br /> 0 || 4,347 <br /> 0 || 13,616 <br /> +3 || 316 <br /> 0 || 4,048 <br /> +1 || 922 <br /> 0 || 6,867 <br /> +3 || 199 <br /> 0 || 1,615 <br /> 0 || 500 <br /> +9 || 1,187 <br /> +5 || 1,484 <br /> +2 || 5,574 <br /> −1
|-
| 2026/01/30 <br /> 6,991 || 2,377 <br /> +1 || 601 <br /> 0 || 20,787 <br /> +7 || 1,435 <br /> +1 || 33,874 <br /> +8 || 1,435 <br /> +3 || 3,637 <br /> +6 || 8,656 <br /> +2 || 1,799 <br /> 0 || 9,896 <br /> +31 || 2,449 <br /> −2 || 189 <br /> 0 || 1,598 <br > +20 || 13,277 <br /> +17 || 1,546 <br /> 0 || 4,347 <br /> +1 || 13,613 <br /> 0 || 316 <br /> 0 || 4,047 <br /> 0 || 922 <br /> +2 || 6,864 <br /> 0 || 199 <br /> +1 || 1,615 <br /> 0 || 491 <br /> 0 || 1,182 <br /> +5 || 1,482 <br /> 0 || 5,575 <br /> +1
|-
| 2026/01/23 <br /> 6,984 || 2,376 <br /> +3 || 601 <br /> 0 || 20,780 <br /> +1 || 1,434 <br /> 0 || 33,866 <br /> +2 || 1,432 <br /> +2 || 3,631 <br /> 0 || 8,654 <br /> 0 || 1,799 <br /> 0 || 9,865 <br /> +6 || 2,451 <br /> 0 || 189 <br /> 0 || 1,578 <br > +8 || 13,260 <br /> +14 || 1,546 <br /> 0 || 4,346 <br /> +1 || 13,613 <br /> +8 || 316 <br /> 0 || 4,047 <br /> 0 || 920 <br /> 0 || 6,864 <br /> +1 || 198 <br /> 0 || 1,615 <br /> 0 || 491 <br /> 0 || 1,177 <br /> +5 || 1,482 <br /> 0 || 5,574 <br /> 0
|-
| 2026/01/16 <br /> 6,977 || 2,373 <br /> +1 || 601 <br /> 0 || 20,779 <br /> +2 || 1,434 <br /> 0 || 33,864 <br /> +8 || 1,430 <br /> +1 || 3,631 <br /> 0 || 8,654 <br /> 0 || 1,799 <br /> 0 || 9,859 <br /> 0 || 2,451 <br /> +2 || 189 <br /> 0 || 1,570 <br > +9 || 13,246 <br /> +13 || 1,546 <br /> 0 || 4,345 <br /> +1 || 13,605 <br /> +5 || 316 <br /> 0 || 4,047 <br /> 0 || 920 <br /> 0 || 6,863 <br /> +1 || 198 <br /> 0 || 1,615 <br /> 0 || 491 <br /> 0 || 1,172 <br /> +16 || 1,482 <br /> +1 || 5,574 <br /> −3
|-
| 2026/01/09 <br /> 6,970 || 2,372 <br /> 0 || 601 <br /> +2 || 20,777 <br /> +3 || 1,434 <br /> 0 || 33,856 <br /> +11 || 1,429 <br /> +5 || 3,631 <br /> +3 || 8,654 <br /> +2 || 1,799 <br /> 0 || 9,859 <br /> +8 || 2,449 <br /> 0 || 189 <br /> 0 || 1,561 <br > +6 || 13,233 <br /> +8 || 1,546 <br /> 0 || 4,344 <br /> 0 || 13,600 <br /> +6 || 316 <br /> 0 || 4,047 <br /> 0 || 920 <br /> 0 || 6,862 <br /> +3 || 198 <br /> 0 || 1,615 <br /> 0 || 491 <br /> 0 || 1,156 <br /> +14 || 1,481 <br /> +2 || 5,577 <br /> +1
|-
| 2026/01/02 <br /> 6,963 || 2,372 <br /> +1 || 601 <br /> +2 || 20,774 <br /> +4 || 1,434 <br /> 0 || 33,845 <br /> +3 || 1,424 <br /> +2 || 3,628 <br /> +1 || 8,652 <br /> 0 || 1,799 <br /> 0 || 9,851 <br /> +10 || 2,449 <br /> 0 || 189 <br /> 0 || 1,555 <br > +4 || 13,225 <br /> +8 || 1,546 <br /> +5 || 4,344 <br /> 0 || 13,594 <br /> +5 || 316 <br /> 0 || 4,047 <br /> 0 || 920 <br /> 0 || 6,859 <br /> +4 || 198 <br /> 0 || 1,615 <br /> 0 || 491 <br /> 0 || 1,142 <br /> +7 || 1,481 <br /> +2 || 5,576 <br /> −2
|}
</div>
6ba8gf99e5bmkwijs4unvv6io4q6wfj
Wikivoyage:Statistik
4
128176
1769131
1767572
2026-04-17T04:41:06Z
RolandUnger
3
Update
1769131
wikitext
text/x-wiki
{{Wikivoyage}}__TOC__
== Seitenzahlen ==
{{Infobox|breite=25em|Wikimedia-Statistik|Die offizielle Statistik der Wikimedia-Foundation für die deutschsprachige Version von Wikivoyage ist auf '''[https://stats.wikimedia.org/v2/#/de.wikivoyage.org stats.wikimedia.org]''' (neu) bzw. '''[http://stats.wikimedia.org/wikivoyage/EN/TablesWikipediaDE.htm stats.wikimedia.org]''' (alt) abrufbar.}}
{{Infobox|breite=25em|Hinweis|Ältere statistische Erhebungen finden Sie in der '''[[Wikivoyage:Statistik/Archiv|Archiv-Übersicht]]'''. Es gibt auch eine '''[[Wikivoyage:Statistik/Sprachen|Abrufstatistik verschiedener Sprachen]]'''.}}
[[Datei:WV-de-Artikelanzahl.png|300px|mini|Entwicklung der Artikelanzahl seit dem Start von Wikivoyage]]
{| class="prettytable multiline" cellspacing="0" style="text-align: right;"
|-
! Datum !! Dauer !! de: !! Neu !! Bearbeitungen !! Mehr !! Bearbeitungen<br />pro Seite !! Nutzer !! Admins (de)
|-
| 2026/04/17 || 7068 || 20.852 || +6 || 1.754.435 || 1.559 || 15,7 || 57.020 || 12
|-
| 2026/04/10 || 7061 || 20.846 || +4 || 1.752.876 || 1.572 || 15,7 || 56.968 || 12
|-
| 2026/04/03 || 7054 || 20.842 || +9 || 1.751.304 || 1.635 || 15,7 || 56.902 || 12
|-
| 2026/03/27 || 7047 || 20.833 || +7 || 1.749.669 || 1.437 || 15,6 || 56.823 || 12
|-
| 2026/03/20 || 7040 || 20.826 || +3 || 1.748.232 || 1.621 || 15,6 || 56.746 || 12
|-
| 2026/03/13 || 7033 || 20.823 || +6 || 1.746.611 || 1.832 || 15,6 || 56.685 || 13
|-
| 2026/03/06 || 7026 || 20.817 || +11 || 1.744.779 || 3.035 || 15,6 || 56.601 || 14
|-
| 2026/02/27 || 7019 || 20.806 || +5 || 1.741.744 || 2.163 || 15,6 || 56.537 || 15
|-
| 2026/02/20 || 7012 || 20.801 || +9 || 1.739.581 || 1.520 || 15,6 || 56.464 || 15
|-
| 2026/02/13 || 7005 || 20.792 || +3 || 1.738.061 || 1.030 || 15,6 || 56.407 || 15
|-
| 2026/02/06 || 6998 || 20.789 || +2 || 1.737.031 || 1.477 || 15,6 || 56.361 || 15
|-
| 2026/01/30 || 6991 || 20.787 || +7 || 1.735.554 || 9.224 || 15,5 || 56.306 || 15
|-
| 2026/01/23 || 6984 || 20.780 || +1 || 1.726.330 || 1.003 || 15,5 || 56.243 || 15
|-
| 2026/01/16 || 6977 || 20.779 || +2 || 1.725.327 || 1.074 || 15,5 || 56.164 || 15
|-
| 2026/01/09 || 6970 || 20.777 || +3 || 1.724.253 || 1.155 || 15,5 || 56.104 || 15
|-
| 2026/01/02 || 6963 || 20.774 || +4 || 1.723.098 || 1.527 || 15,5 || 56.044 || 15
|}
== Siehe auch ==
===== Projektseiten =====
* [[Wikivoyage:Chronik|Chronik]]
* [[Wikivoyage:Meilensteine|Meilensteine]]
{{IstIn|Über uns}}
[[Kategorie:Wikivoyage:Über uns|Über uns]]
[[Kategorie:Statistik]]
ieh8b272rzh1i2nq7slemp60fow14ch
Radweg Berlin–Dresden
0
128693
1768983
1768982
2026-04-16T12:01:57Z
Dirk Schmidt
15181
/* 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) */
1768983
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken.}}
Für eine Radreise sollte man eine Woche einplanen.
Die Strecke lässt sich gut in 4 bis 5 Etappen absolvieren. Oft verläuft eine Bahnlinie parallel.
<!--
{{mapframe | name = Karte Radweg Berlin–Dresden. Für die Darstellung der meist vorhandenen Bestandsweg anderer Routen einfach bei den Ebenen "Radwege" anklicken.}}
{{Mapshape|wikidata=Q42301985|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
-->
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeberg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q81729}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeberg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren.
* {{Marker | name = Radeberg | type= town | wikidata =Q81729 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
3tuyze341t2lwsqpiewp6442u7zz9sx
1768984
1768983
2026-04-16T12:05:04Z
Dirk Schmidt
15181
/* 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) */
1768984
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken.}}
Für eine Radreise sollte man eine Woche einplanen.
Die Strecke lässt sich gut in 4 bis 5 Etappen absolvieren. Oft verläuft eine Bahnlinie parallel.
<!--
{{mapframe | name = Karte Radweg Berlin–Dresden. Für die Darstellung der meist vorhandenen Bestandsweg anderer Routen einfach bei den Ebenen "Radwege" anklicken.}}
{{Mapshape|wikidata=Q42301985|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
-->
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeberg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q81729}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeberg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren.
* {{Marker | name = Radeberg | type= town | wikidata =Q81729 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
2lstj6ueou4l2iwlgtp1j1ewwp6xu1q
1768985
1768984
2026-04-16T12:06:14Z
Dirk Schmidt
15181
/* 4. Etappe: Senftenberg – Radeberg (etwa 50{{nnbsp}}km) */
1768985
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken.}}
Für eine Radreise sollte man eine Woche einplanen.
Die Strecke lässt sich gut in 4 bis 5 Etappen absolvieren. Oft verläuft eine Bahnlinie parallel.
<!--
{{mapframe | name = Karte Radweg Berlin–Dresden. Für die Darstellung der meist vorhandenen Bestandsweg anderer Routen einfach bei den Ebenen "Radwege" anklicken.}}
{{Mapshape|wikidata=Q42301985|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
-->
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeberg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren.
* {{Marker | name = Radeberg | type= town | wikidata =Q81729 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
pxm67mzdpovrpodmd6unw19vhl6xwbn
1768986
1768985
2026-04-16T12:07:55Z
Dirk Schmidt
15181
/* 5. Etappe: Radeberg – Dresden (etwa 22{{nnbsp}}km) */
1768986
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken.}}
Für eine Radreise sollte man eine Woche einplanen.
Die Strecke lässt sich gut in 4 bis 5 Etappen absolvieren. Oft verläuft eine Bahnlinie parallel.
<!--
{{mapframe | name = Karte Radweg Berlin–Dresden. Für die Darstellung der meist vorhandenen Bestandsweg anderer Routen einfach bei den Ebenen "Radwege" anklicken.}}
{{Mapshape|wikidata=Q42301985|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
-->
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden in die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeberg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
krmo2gfxwa4uq1orxvsiwlkwmtkl5dx
1768987
1768986
2026-04-16T12:08:26Z
Dirk Schmidt
15181
/* Vorbereitung */
1768987
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden in die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
Für eine Radreise sollte man eine Woche einplanen.
Die Strecke lässt sich gut in 4 bis 5 Etappen absolvieren. Oft verläuft eine Bahnlinie parallel.
<!--
{{mapframe | name = Karte Radweg Berlin–Dresden. Für die Darstellung der meist vorhandenen Bestandsweg anderer Routen einfach bei den Ebenen "Radwege" anklicken.}}
{{Mapshape|wikidata=Q42301985|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
-->
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden in die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeberg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
fxroo7undacdshuq53scdzswabq1h00
1768993
1768987
2026-04-16T12:47:23Z
Dirk Schmidt
15181
/* 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) */
1768993
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden in die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
Für eine Radreise sollte man eine Woche einplanen.
Die Strecke lässt sich gut in 4 bis 5 Etappen absolvieren. Oft verläuft eine Bahnlinie parallel.
<!--
{{mapframe | name = Karte Radweg Berlin–Dresden. Für die Darstellung der meist vorhandenen Bestandsweg anderer Routen einfach bei den Ebenen "Radwege" anklicken.}}
{{Mapshape|wikidata=Q42301985|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
-->
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden in die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeberg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
i34bn7onjlh1ykssa4a3do0tuubtzl3
1769000
1768993
2026-04-16T13:08:43Z
Dirk Schmidt
15181
/* 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) */
1769000
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden in die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
Für eine Radreise sollte man eine Woche einplanen.
Die Strecke lässt sich gut in 4 bis 5 Etappen absolvieren. Oft verläuft eine Bahnlinie parallel.
<!--
{{mapframe | name = Karte Radweg Berlin–Dresden. Für die Darstellung der meist vorhandenen Bestandsweg anderer Routen einfach bei den Ebenen "Radwege" anklicken.}}
{{Mapshape|wikidata=Q42301985|type=geoline|stroke=#0000ff|stroke-width=4|stroke-opacity=1}}
-->
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
0o584nja8aaymw4bi3u9zrinavjxajp
1769012
1769000
2026-04-16T13:51:04Z
Dirk Schmidt
15181
/* Vorbereitung */
1769012
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
Für eine Radreise sollte man eine Woche einplanen.
Die Strecke lässt sich gut in 4 bis 5 Etappen absolvieren. Oft verläuft eine Bahnlinie parallel.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
b1o3on6b3u5nm71vqvkjb0khrrv0f1n
1769014
1769012
2026-04-16T13:55:36Z
Dirk Schmidt
15181
/* 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) */
1769014
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
Für eine Radreise sollte man eine Woche einplanen.
Die Strecke lässt sich gut in 4 bis 5 Etappen absolvieren. Oft verläuft eine Bahnlinie parallel.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
aqmweptzjn2ki8ag204qslhdhhqvnl0
1769081
1769014
2026-04-16T20:37:15Z
Dirk Schmidt
15181
/* Vorbereitung */ noch thema "Routervariante", da heute viele bei Radtourenplanung so vorgehen.
1769081
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
Für eine Radreise sollte man eine Woche einplanen.
Die Strecke lässt sich gut in 4 bis 5 Etappen absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "bsolut direkt":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) ein, gibt erhält folgendes Ergebnis:
*Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter.
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] wird bei [Dahme/Mark]] der [[Fläming]] erreicht. Zwischen Kummerdorf-Gut und Stülpe auf knapp 10 km Landstraße ohne Radweg. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr.
*Nach Querung von [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 50 km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege (südlich Zossen auch stärkerer Verkehr). Bei eine Etappenlänge von gut 100 km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten & Routenlänge dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
3y9hj1xm35m3di5t4bgmhx868ltl874
1769082
1769081
2026-04-16T20:41:26Z
Dirk Schmidt
15181
/* Berlin - Dresden direkt */
1769082
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
Für eine Radreise sollte man eine Woche einplanen.
Die Strecke lässt sich gut in 4 bis 5 Etappen absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) ein, gibt erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den Niederen [[Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10 km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer des [[Fleaming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 50 km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege (südlich Zossen auch stärkerer Verkehr). Bei eine Etappenlänge von gut 100 km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten & Routenlänge dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
3g59iyzygnzzfqvro8sl21f2yvmw3ib
1769083
1769082
2026-04-16T20:41:58Z
Dirk Schmidt
15181
/* Vorbereitung */
1769083
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
Für eine Radreise sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) ein, gibt erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den Niederen [[Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10 km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer des [[Fleaming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 50 km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege (südlich Zossen auch stärkerer Verkehr). Bei eine Etappenlänge von gut 100 km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten & Routenlänge dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
1mahysjomq9fzjrdwm2lky20qbjzpe5
1769084
1769083
2026-04-16T20:42:24Z
Dirk Schmidt
15181
/* Berlin - Dresden direkt */
1769084
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
Für eine Radreise sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) eingibt, erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den Niederen [[Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10 km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer des [[Fleaming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 50 km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege (südlich Zossen auch stärkerer Verkehr). Bei eine Etappenlänge von gut 100 km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten & Routenlänge dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
dat3uuixzex54sv1fr2xatxb14s7vkh
1769086
1769084
2026-04-16T20:47:07Z
Dirk Schmidt
15181
/* Vorbereitung */
1769086
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den Spreewald und die Lausitzer Seenplatte bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen zurück. Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
=== Etappen und Dauer ===
Für eine Radreise auf dem Radweg Berlin–Dresden sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) eingibt, erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den Niederen [[Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10 km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer des [[Fleaming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 50 km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege (südlich Zossen auch stärkerer Verkehr). Bei eine Etappenlänge von gut 100 km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten & Routenlänge dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen.
Bei den reservierungspflichtigen Stellplätzen im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
blvyprz7l05gsm2fttx4lr730uqj24t
1769091
1769086
2026-04-16T20:57:34Z
Dirk Schmidt
15181
1769091
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den [[Spreewald]] und die [[Lausitzer Seenplatte]] bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen ab 2012 zurück. 202
Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
=== Etappen und Dauer ===
Für eine Radreise auf dem Radweg Berlin–Dresden sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) eingibt, erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den [[Niederer Fläming|Niederen Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10 km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer des [[Fläming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 50 km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv was sehenswürdigkeiten angeht. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege. Bei eine Etappenlänge von gut 100 km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen. Fahrzeit Berlin und Dresden im Nahverkehr rund 3{{nnbsp}}1/2 bis 4{{nnbsp}}1/2{{nnbsp}}h.
Bei bundesweiter Anreise mit Rad und Bahn im Fernverkehr: Die reservierungspflichtigen Stellplätze im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
p1apy1gxqtz9msdxbf7nhocm21hyx0j
1769115
1769091
2026-04-16T22:44:46Z
Dirk Schmidt
15181
1769115
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den [[Spreewald]] und das [[Lausitzer Seenland]] bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen ab 2012 zurück. 2025
Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
=== Etappen und Dauer ===
Für eine Radreise auf dem Radweg Berlin–Dresden sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) eingibt, erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den [[Niederer Fläming|Niederen Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10 km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer des [[Fläming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 50 km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv was sehenswürdigkeiten angeht. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege. Bei eine Etappenlänge von gut 100 km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen. Fahrzeit Berlin und Dresden im Nahverkehr rund 3{{nnbsp}}1/2 bis 4{{nnbsp}}1/2{{nnbsp}}h.
Bei bundesweiter Anreise mit Rad und Bahn im Fernverkehr: Die reservierungspflichtigen Stellplätze im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata =Q1796749 }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
20rvn8j2afhsl314b5zqkkc191w0lni
1769116
1769115
2026-04-16T22:46:50Z
Dirk Schmidt
15181
/* 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) */
1769116
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den [[Spreewald]] und das [[Lausitzer Seenland]] bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen ab 2012 zurück. 2025
Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
=== Etappen und Dauer ===
Für eine Radreise auf dem Radweg Berlin–Dresden sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) eingibt, erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den [[Niederer Fläming|Niederen Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10 km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer des [[Fläming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 50 km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv was sehenswürdigkeiten angeht. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege. Bei eine Etappenlänge von gut 100 km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen. Fahrzeit Berlin und Dresden im Nahverkehr rund 3{{nnbsp}}1/2 bis 4{{nnbsp}}1/2{{nnbsp}}h.
Bei bundesweiter Anreise mit Rad und Bahn im Fernverkehr: Die reservierungspflichtigen Stellplätze im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata = Q544844}}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
257f942s39loeygod8denzbthiyg6mg
1769117
1769116
2026-04-16T22:47:57Z
Dirk Schmidt
15181
/* 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) */
1769117
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den [[Spreewald]] und das [[Lausitzer Seenland]] bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen ab 2012 zurück. 2025
Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
=== Etappen und Dauer ===
Für eine Radreise auf dem Radweg Berlin–Dresden sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) eingibt, erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den [[Niederer Fläming|Niederen Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10 km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer des [[Fläming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 50 km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv was sehenswürdigkeiten angeht. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege. Bei eine Etappenlänge von gut 100 km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen. Fahrzeit Berlin und Dresden im Nahverkehr rund 3{{nnbsp}}1/2 bis 4{{nnbsp}}1/2{{nnbsp}}h.
Bei bundesweiter Anreise mit Rad und Bahn im Fernverkehr: Die reservierungspflichtigen Stellplätze im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata = Q544844}}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
g99nqxl0fss5xejblxmb8ibpvjlkpz3
1769118
1769117
2026-04-16T22:48:55Z
Dirk Schmidt
15181
/* Streckenprofil */
1769118
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den [[Spreewald]] und das [[Lausitzer Seenland]] bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 bis 12 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen ab 2012 zurück. 2025
Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
=== Etappen und Dauer ===
Für eine Radreise auf dem Radweg Berlin–Dresden sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) eingibt, erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den [[Niederer Fläming|Niederen Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10 km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer des [[Fläming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 50 km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv was sehenswürdigkeiten angeht. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege. Bei eine Etappenlänge von gut 100 km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen. Fahrzeit Berlin und Dresden im Nahverkehr rund 3{{nnbsp}}1/2 bis 4{{nnbsp}}1/2{{nnbsp}}h.
Bei bundesweiter Anreise mit Rad und Bahn im Fernverkehr: Die reservierungspflichtigen Stellplätze im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata = Q544844}}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
4wb3knn6ehjt3dymqhz51m44bzttigf
1769119
1769118
2026-04-16T22:54:50Z
Dirk Schmidt
15181
/* Streckenprofil */
1769119
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den [[Spreewald]] und das [[Lausitzer Seenland]] bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 bis 12 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
* '''Eignung für Mehrspurer:''' Für sehr große Fahrrad-Anhängergespanne wie [w:Fahrradwohnwagen|Fahrradwohnwagen]] ist der Routenvorschlag des ADFC nicht geeignet (Siehe dazu auch Hinweise in der Streckenbeschreibeng). Teilweise gibt es wohl auch Engstellen mit Umlaufsperren, die schon mit Kinderhänger bzw. Liege-Trikes usw. nur schwer oder gar nicht passierbar sind. Welche Fahrradtypen, Gespanntypen bzw. Abmessungen an welcher Engstelle noch durchkommen, ist im Detail nicht bekannt. Meist können die potentiellen Engstellen aber über nahe Landstraßen umfahren werden. Hier allerdings teilweise keine Radwege.
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen ab 2012 zurück. 2025
Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
=== Etappen und Dauer ===
Für eine Radreise auf dem Radweg Berlin–Dresden sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) eingibt, erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den [[Niederer Fläming|Niederen Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10 km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer des [[Fläming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 50 km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv was sehenswürdigkeiten angeht. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege. Bei eine Etappenlänge von gut 100 km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen. Fahrzeit Berlin und Dresden im Nahverkehr rund 3{{nnbsp}}1/2 bis 4{{nnbsp}}1/2{{nnbsp}}h.
Bei bundesweiter Anreise mit Rad und Bahn im Fernverkehr: Die reservierungspflichtigen Stellplätze im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata = Q544844}}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
t20okv9tu3xs5imcub11oqoaf2yk263
1769120
1769119
2026-04-16T22:55:51Z
Dirk Schmidt
15181
/* Streckenprofil */
1769120
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den [[Spreewald]] und das [[Lausitzer Seenland]] bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:''' Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 bis 12 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
* '''Eignung für Mehrspurer:''' Für sehr große Fahrrad-Anhängergespanne wie [[w:Fahrradwohnwagen|Fahrradwohnwagen]] ist der Routenvorschlag des ADFC nicht geeignet (siehe dazu auch Hinweise / POI in der Streckenbeschreibeng). Teilweise gibt es wohl auch Engstellen mit Umlaufsperren, die schon mit Kinderhänger bzw. Liege-Trikes usw. nur schwer oder gar nicht passierbar sind. Welche Fahrradtypen, Gespanntypen bzw. Abmessungen an welcher Engstelle noch durchkommen, ist im Detail nicht bekannt. Meist können die potentiellen Engstellen aber über nahe Landstraßen umfahren werden. Hier gibt es allerdings teilweise keine Radwege.
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen ab 2012 zurück. 2025
Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
=== Etappen und Dauer ===
Für eine Radreise auf dem Radweg Berlin–Dresden sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) eingibt, erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den [[Niederer Fläming|Niederen Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10 km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer des [[Fläming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 50 km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv was sehenswürdigkeiten angeht. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege. Bei eine Etappenlänge von gut 100 km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen. Fahrzeit Berlin und Dresden im Nahverkehr rund 3{{nnbsp}}1/2 bis 4{{nnbsp}}1/2{{nnbsp}}h.
Bei bundesweiter Anreise mit Rad und Bahn im Fernverkehr: Die reservierungspflichtigen Stellplätze im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata = Q544844}}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
lvqp4g6dax3glpdote37ow97mteixex
1769124
1769120
2026-04-17T00:53:51Z
Dirk Schmidt
15181
/* Streckenprofil */
1769124
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den [[Spreewald]] und das [[Lausitzer Seenland]] bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:'''
:*Das Routenlogo zwei das Brandenburger Tor in weiß-rot und die Frauenkirche in schwarz-gelb. die Symbole sidn auf dem Quadratischen Logo diagonal geteilt.
:*Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 bis 12 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
* '''Eignung für Mehrspurer:''' Für sehr große Fahrrad-Anhängergespanne wie [[w:Fahrradwohnwagen|Fahrradwohnwagen]] ist der Routenvorschlag des ADFC nicht geeignet (siehe dazu auch Hinweise / POI in der Streckenbeschreibeng). Teilweise gibt es wohl auch Engstellen mit Umlaufsperren, die schon mit Kinderhänger bzw. Liege-Trikes usw. nur schwer oder gar nicht passierbar sind. Welche Fahrradtypen, Gespanntypen bzw. Abmessungen an welcher Engstelle noch durchkommen, ist im Detail nicht bekannt. Meist können die potentiellen Engstellen aber über nahe Landstraßen umfahren werden. Hier gibt es allerdings teilweise keine Radwege.
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen ab 2012 zurück. 2025
Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
=== Etappen und Dauer ===
Für eine Radreise auf dem Radweg Berlin–Dresden sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) eingibt, erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den [[Niederer Fläming|Niederen Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10 km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer des [[Fläming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 50 km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv was sehenswürdigkeiten angeht. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege. Bei eine Etappenlänge von gut 100 km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen. Fahrzeit Berlin und Dresden im Nahverkehr rund 3{{nnbsp}}1/2 bis 4{{nnbsp}}1/2{{nnbsp}}h.
Bei bundesweiter Anreise mit Rad und Bahn im Fernverkehr: Die reservierungspflichtigen Stellplätze im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata = Q544844}}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
kt3glb8m41zicahq1ejyspuaqe3houm
1769125
1769124
2026-04-17T00:54:40Z
Dirk Schmidt
15181
/* Berlin - Dresden direkt */
1769125
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den [[Spreewald]] und das [[Lausitzer Seenland]] bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:'''
:*Das Routenlogo zwei das Brandenburger Tor in weiß-rot und die Frauenkirche in schwarz-gelb. die Symbole sidn auf dem Quadratischen Logo diagonal geteilt.
:*Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 bis 12 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
* '''Eignung für Mehrspurer:''' Für sehr große Fahrrad-Anhängergespanne wie [[w:Fahrradwohnwagen|Fahrradwohnwagen]] ist der Routenvorschlag des ADFC nicht geeignet (siehe dazu auch Hinweise / POI in der Streckenbeschreibeng). Teilweise gibt es wohl auch Engstellen mit Umlaufsperren, die schon mit Kinderhänger bzw. Liege-Trikes usw. nur schwer oder gar nicht passierbar sind. Welche Fahrradtypen, Gespanntypen bzw. Abmessungen an welcher Engstelle noch durchkommen, ist im Detail nicht bekannt. Meist können die potentiellen Engstellen aber über nahe Landstraßen umfahren werden. Hier gibt es allerdings teilweise keine Radwege.
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen ab 2012 zurück. 2025
Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
=== Etappen und Dauer ===
Für eine Radreise auf dem Radweg Berlin–Dresden sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) eingibt, erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den [[Niederer Fläming|Niederen Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10{{nnbsp}}km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer des [[Fläming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 30{{nnbsp}}km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv was sehenswürdigkeiten angeht. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege. Bei eine Etappenlänge von gut 100{{nnbsp}}km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen. Fahrzeit Berlin und Dresden im Nahverkehr rund 3{{nnbsp}}1/2 bis 4{{nnbsp}}1/2{{nnbsp}}h.
Bei bundesweiter Anreise mit Rad und Bahn im Fernverkehr: Die reservierungspflichtigen Stellplätze im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata = Q544844}}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
a3dxm4c4i2ohx8rec45r64w2n4qor42
1769126
1769125
2026-04-17T00:55:32Z
Dirk Schmidt
15181
/* Berlin - Dresden direkt */
1769126
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den [[Spreewald]] und das [[Lausitzer Seenland]] bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:'''
:*Das Routenlogo zwei das Brandenburger Tor in weiß-rot und die Frauenkirche in schwarz-gelb. die Symbole sidn auf dem Quadratischen Logo diagonal geteilt.
:*Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 bis 12 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
* '''Eignung für Mehrspurer:''' Für sehr große Fahrrad-Anhängergespanne wie [[w:Fahrradwohnwagen|Fahrradwohnwagen]] ist der Routenvorschlag des ADFC nicht geeignet (siehe dazu auch Hinweise / POI in der Streckenbeschreibeng). Teilweise gibt es wohl auch Engstellen mit Umlaufsperren, die schon mit Kinderhänger bzw. Liege-Trikes usw. nur schwer oder gar nicht passierbar sind. Welche Fahrradtypen, Gespanntypen bzw. Abmessungen an welcher Engstelle noch durchkommen, ist im Detail nicht bekannt. Meist können die potentiellen Engstellen aber über nahe Landstraßen umfahren werden. Hier gibt es allerdings teilweise keine Radwege.
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen ab 2012 zurück. 2025
Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
=== Etappen und Dauer ===
Für eine Radreise auf dem Radweg Berlin–Dresden sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) eingibt, erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den [[Niederer Fläming|Niederen Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10{{nnbsp}}km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer und Strecken des [[Fläming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 30{{nnbsp}}km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv was sehenswürdigkeiten angeht. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege. Bei eine Etappenlänge von gut 100{{nnbsp}}km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen. Fahrzeit Berlin und Dresden im Nahverkehr rund 3{{nnbsp}}1/2 bis 4{{nnbsp}}1/2{{nnbsp}}h.
Bei bundesweiter Anreise mit Rad und Bahn im Fernverkehr: Die reservierungspflichtigen Stellplätze im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata = Q544844}}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
by2byhk5vakg61elr3itmslkp95p29v
1769127
1769126
2026-04-17T00:59:20Z
Dirk Schmidt
15181
/* 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) */
1769127
wikitext
text/x-wiki
[[Datei:Brandenburger Tor nachts.jpg|mini|Symbol für Berlin: Das Brandenburger Tor]]
[[Datei:DD-Abendstimmung-Elbe.jpg|mini|Abendstimmung an der Elbe bei Dresden]]
Der '''Radweg Berlin–Dresden''' ist ein im Aufbau befindlicher Radfernweg zwischen [[Berlin]] und [[Dresden]]. Die 251{{nnbsp}}km lange Radroute verbindet Berlin über den [[Spreewald]] und das [[Lausitzer Seenland]] bei [[Senftenberg]] mit Dresden.
Für die weitgehend ebene Strecke kann man inklusive Aufenthaltstagen (z.{{nnbsp}}B. im Spreewald) eine Woche einplanen. Die Strecke geht auf ehrenamtliche Initiative des ADFC Sachsen zurück.
== Streckenprofil ==
* '''Länge: 251 km'''
* '''Ausschilderung:'''
:*Das Routenlogo zwei das Brandenburger Tor in weiß-rot und die Frauenkirche in schwarz-gelb. die Symbole sidn auf dem Quadratischen Logo diagonal geteilt.
:*Die Strecke wurde / wird 2026 in ersten Teilen im Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.<ref>rbb24.de, Beitrag 16. märz 2026: [https://www.rbb24.de/panorama/beitrag/2026/03/radweg-route-berlin-dresden-schilder-frauenkirche-brandenburger-tor.html Radroute von Berlin nach Dresden wird ausgeschildert] - abgerufen 14. April 2026.</ref>
* '''Steigungen:''' Die Route ist weitgehend eben. Lediglich im Abschnitt Senftenberg bis Dresden gibt es einige kleinere Steigungen (teilweise aber durchaus steiler).
* '''Wegzustand:''' Da die Route bestehende Radrouten nutzt, ist der Ausbauzustand in großen Teilen gut. Ein paar schlechte Wegstrecken gibt es nach Infos des ADFC Sachsen allerdings.
* '''Verkehrsbelastung:''' Außerorts meist verkehrsfrei geführt. Es werden Teilweise allerdings auch mäßig, aber schnell befahrene Landstraßen außerorts genutzt. Innerorts ferner öfter Ortsdurchfahrten mit Kfz-Verkehr.
* '''Geeignetes Fahrrad:''' Fahrrad am Besten mit 7-Gang-Ketten- oder Nabenschaltung.
* '''Familieneignung:''' unklar. Die Strecke ist vermutlich geeignet für Kinder ab 10 bis 12 Jahren, die selbständig sicher im Verkehr mit Kfz außerorts auf Landstraßen radeln können und auch schlechte Wegstrecken sicher befahren können.
* '''Inlinereignung:''' durchgehend nein, lokal evtl. gegeben
* '''Eignung für Mehrspurer:''' Für sehr große Fahrrad-Anhängergespanne wie [[w:Fahrradwohnwagen|Fahrradwohnwagen]] ist der Routenvorschlag des ADFC nicht geeignet (siehe dazu auch Hinweise / POI in der Streckenbeschreibeng). Teilweise gibt es wohl auch Engstellen mit Umlaufsperren, die schon mit Kinderhänger bzw. Liege-Trikes usw. nur schwer oder gar nicht passierbar sind. Welche Fahrradtypen, Gespanntypen bzw. Abmessungen an welcher Engstelle noch durchkommen, ist im Detail nicht bekannt. Meist können die potentiellen Engstellen aber über nahe Landstraßen umfahren werden. Hier gibt es allerdings teilweise keine Radwege.
== Hintergrund ==
Die Radroute geht auf eine ehrenamtliche Initiative des ADFC Sachsen ab 2012 zurück. 2025
Die weitgehend ebene Strecke wurde / wird 2026 in ersten Teilen in Stadtgebiet Dresden und im Landkreis Meißen beschildert. Im Laufe des Jahres 2026 sollen weitere Streckenabschnitte in Brandenburg folgen.
== Vorbereitung ==
{{mapframe | name = Für die Darstellung der genutzten Radstrecken im Bestand bei den Ebenen "Radwege" anklicken. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).}}
=== Etappen und Dauer ===
Für eine Radreise auf dem Radweg Berlin–Dresden sollte man '''eine Woche''' einplanen.
Die Strecke lässt sich gut in '''4 bis 5 Etappen''' absolvieren. Teilweise verläuft eine Bahnlinie parallel.
=== Berlin - Dresden direkt ===
'''Hinweis zu Berlin - Dresden "absolut direkte Strecke":''' Wer "Berlin, Brandenburger Tor" und "Dresden, Schloßplatz" in den Router auf Openstreetmap.org (Fahrradmodus, Auswahl graphopper) eingibt, erhält folgendes Ergebnis:
Streckenlänge von '''217{{nnbsp}}km''' mit rund 800 Höhenmeter. Verlauf:
*Die Strecke führt schnurgerade entlang der Hauptverkehrsstraße "Marienburger Damm" nach Süden über Lichtenrade aus Berlin heraus.
*Über [[Zossen]] erreicht man den [[Niederer Fläming|Niederen Fläming]].
*Zwischen Kummerdorf-Gut und Stülpe müssen auf knapp 10{{nnbsp}}km Landstraßen ohne Radweg befahren werden. Je nach Zeitpunkt hier schneller und auch stärkerer KFZ-Verkehr vorhanden.
*Im Bereich Dahme/Mark werden teilweise Zubringer und Strecken des [[Fläming-Skate]] genutzt.
*Über [[Dahme/Mark]] und [[Bad Liebenwerda]] wird östlich [[Riesa]] bei Nünchritz die Elbe angefahren. Auf dem Elbe-Radweg geht es schließlich nach Dresden hinein.
Diese Strecke ist sicher rund 30{{nnbsp}}km kürzer als der ADFC-Tourenvorschlag, aber nicht so attraktiv was sehenswürdigkeiten angeht. Teilweise fährt man längere Strecken auf Landstraßen ohne Radwege. Bei eine Etappenlänge von gut 100{{nnbsp}}km ist die Strecke in zwei Tagen zu schaffen. Hier würde sich dann eine Übernachtung in Dahme / Mark auf halber Strecke anbietet.
Fazit: Der Routenvorschlag des ADFC Sachsen stellt einen guten Kompromiss aus Direktheit und radtouristischer Attraktivität hinsichtlich Sehenswürdigkeiten dar.
== Anreise ==
=== Öffentliche Verkehrsmittel ===
Sowohl Berlin, wie auch Dresden sind gut in das deutsche Bahnnetz angeschlossen. Fahrzeit Berlin und Dresden im Nahverkehr rund 3{{nnbsp}}1/2 bis 4{{nnbsp}}1/2{{nnbsp}}h.
Bei bundesweiter Anreise mit Rad und Bahn im Fernverkehr: Die reservierungspflichtigen Stellplätze im Fernverkehr evtl. frühzeitig buchen. Je nach Strecke sind die Plätze zu beliebten Reisezeiten oft bereits Monate vorher ausgebucht.
=== Fahrrad ===
Sowohl Berlin, wie auch Dresden sind gut in das deutschlandweite Netz der Radfernwege eingebunden. Ein Listung aller Anschlüsse würde diesen Abschnitt überlasten.
=== Auto ===
Da es sich um eine längere Streckentour handelt, am besten mit der Bahn anreisen.
Die Rückfahrt per Bahn ist zwischen Dresden und Berlin allerdings gut möglich.
== Streckenbeschreibung mit Sehenswürdigkeiten ==
Die Route führt von Berlin über [[Königs Wusterhausen]] Richtung Lübbenau am [[Spreewald]]. Über die Lausitzer Seenplatte bei [[Senftenberg]] wird über [[Radeberg]] schließlich [[Dresden]] erreicht.
Die Beschilderung der Route findet sich noch im Aufbau. Eine aktueller Routenvorschlag mit Karte liegt hier auf der [https://www.radweg-berlin-dresden.de/karte.html Projektseite des ADFC Sachsen]. [[#GPX-Daten|GPX-Daten]] bietet der ADFC Sachsen ebenfalls zum Herunterladen an. Stand 04-2026 weichen Onlinekarte des ADFC und die GPX-Daten allerdings in Teilabschnitten von einander ab.
=== 1. Etappe: Berlin – Prieros (etwa 62{{nnbsp}}km) ===
* {{Marker | name = Berlin | type= town| wikidata = Q64}} - Start am Brandenburger Tor
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem beschilderten '''Mauerradweg''' geht es über Checkpoint Charlie und Kreuzberg an die Spree. Die Route folgt dem Mauerradweg entlang des Teltow-Kanals bis Altglienike. Von hier geht es den GPX-Daten des ADFC nach ''abseits beschilderter Radrouten'' über Bohnsdorf und Schulzendorf nach Königs-Wusterhausen.
:Alternative im beschilderten Radnetz: In Kreuzberg auf dem ausgeschilderten Spreeradweg bleiben und in {{Marker | name = Berlin/Köpenick | type= town | wikidata = Q521521}} auf den ebenfalls beschilderten '''[[Dahme-Radweg]]''' wechseln (Kürzel DRW in der Ebene Radwege des Plans).
* {{Marker | name = Königs-Wusterhausen | type= town | wikidata = Q16013}} - geschäftige Stadt vor den Toren von Berlin. Jagdschloss mit kleiner Parkanlage in der Stadtmitte
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem [[Dahme-Radweg]] radelt man von Königs-Wusterhausen nach Prieros.
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| url = https://gemeinde-heidesee.de/freizeit-und-tourismus/tourist-information}} - Schön an der Dahme Wasserstraße mit ihren Seen gelegen. Einkehrmöglichkeiten. E-Bike-Ladestation gegenüber der Kirche (2 Steckdosen). Tourist-Information mit öffentlicher Toilette.
=== 2. Etappe: Prieros – Lübbenau (etwa 65{{nnbsp}}km) ===
* {{Marker | name = Prieros | type= village | wikidata = Q2109558| show = copy }}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Von Prieros radelt man auf dem [[Dahme-Radweg]] schnurgerade durch weite Kiefernwälder Richtung Märkisch Buchholz. Für Radreisende wurde extra neben dem sandigen Wirtschaftsweg ein eigener Radweg angelegt. Diese rund 2{{nnbsp}}m breite Strecke besitzt eine gut gut fahrbare Feinschotterdecke.
:~> Vor Märkisch Buchholz wird dann ein Stück Radweg an der Bundesstraße genutzt.
* {{Marker | name = Märkisch Buchholz | type= village | wikidata = Q544844}}
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> In Märkisch Buchholz an '''Knotenpunkt 18''' den Damhemradweg verlassen und sich Richtung '''Knoten 14''' halten. Auf einer Nebenstraße erreicht die Radroute im regionalen Knotenpunktnetz Köthen.
* {{Marker | name = Köthen | type= village | wikidata = Q1796749}} - schön am Köthener See gelegen. Badestelle. Einkehrmöglichkeit
* {{Marker | name = Groß Wasserburg | type= village | wikidata = Q16831634}} - Einkehrmöglichkeiten im Ort. Rastplatz an der Schleuse. Campingmöglichkeit am Wasserwanderrastplatz.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC Sachsen emfphielt zwischen Groß Wasserburg und Krausnick auf 3{{nnbsp}}km die mäßig, aber schnell befahrene Landstraße. der ausgeschildert Spreewadweg im Waldbereich ist laut ADFC-Seite angeblich Stand 04-2026 "wegen Sand teilweise nur zu Fuss und mit Traktor befahrbar".
[[Datei:Aussichtsturm Wehlaberg 0001.JPG|mini|140px|Aussichtsturm Wehlaberg]]
:~> '''Optional: Bergwertung am Wehlaberg''': Wer ein Pedelec nutzt, kann hier gut den attraktiven {{Marker | name = Aussichtsturm Wehlaberg | type= viewpoint| wikidata = Q105080107}} im Waldgebiet der [[Krausnicker Berge]] besuchen. Mit der Strecke über den Wehlaberg kann die schnell befahrene Landstraße südlich Groß Wasserburg umgangen werden. Gleichzeitig kommt man noch an einem attraktiven Ziel vorbei. Vom frei zugänglichen Aussichtsturm hat man an klaren Tagen einen weiten Blick über die Wälder von Brandenburg. Der Blick reicht im Nordwesten bis nach Berlin.
:~> Ein Besuch am Berg, der eher ein größerer Hügel ist (rund 100 Höhenmeter), erfolgte 2018 per Rad. Dabei wurde die beschilderte Variante des [[Gurkenradweg]] von Köthen ab '''Knoten 14''' über den Wehlaberg bis Krausnick befahren. Im Waldbereich Stand 2018 meist gute bis befriedigende Schotterwege bzw. Wege mit wassergebundener Feinschotterdecke und fahrbare Sandwege. Im Flurbereich nördlich Krausnick teilweise auf etwa geschätzt 500{{nnbsp}}m schlechtere holprige Erd- und Sandwege. Dieses schlechtere Wegstück also recht kurz.
:~> Im Waldgebiet stößt man bereits auf den [[Spree-Radweg]], dem man Richtung Süden Folgt.
* {{Marker | name = Schlepzig| type= village | wikidata = Q584477}} - Wer möchte kann hier im Unterspreewald eine Runde im Kajak oder Kanu einlegen. Einkehrmöglichkeiten
[[Datei:Unterwegs im Spreewald Menschen.jpg|mini|Unterwegs im Spreewald]]
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg über Schotterstrecken Richtung Lübben.
* {{Marker | name = Lübben | type= town | wikidata = Q584815}} - Touristisches Zentrum am Beginn zum Oberspreewald. Einkehr- und Übernachtungsmöglichkeiten. Am Bahnhof Lübben Anschluss Richtung Berlin und Cottbus.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Auf dem Spree-Radweg nach Lübbenau.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895}} - Das bekannteste touristische Zentrum am Oberspreewald. Wer die Region kennenlernen möchte sollte mindestens einen Aufenthaltstag einlegen. Am Bahnhof Lübbenau Anschluss Richtung Berlin und Cottbus.
=== 3. Etappe: Lübbenau – Senftenberg (etwa 60{{nnbsp}}km) ===
Die Strecke führt im regionalen Knotenpunktnetz weiter nach Süden. Südlich Calau wird es in der Calauer Schweiz eund am Großräschener See etwas hügelig.
* {{Marker | name = Lübbenau | type= town | wikidata = Q147895| show = copy }}
* {{Marker | name = Slawenburg Raddusch | type= monument | wikidata = Q320134}} - Rekonstruierte Ringburg (Eintritt, Anlage Stand 04-2026 bis auf weiteres geschlossen).
* {{Marker | name = Calau | type= town | wikidata = Q532803}} - Die Route führt östlich über den Bahnhof Calau. Wer möchte kann über die Altnauer Straße einen Abstecher in die Altstadt machen (etwa 2{{nnbsp}}km einfach).
* {{Marker | name = Altdöberner See | type= lake| wikidata =Q435299 }} - Bergbaufolgesee mit dem Ort Altdöbern. Einkehrmöglichkeiten, Schloss Altdöbern, der See findet sich noch bis 2028 in der Flutung.
[[Datei:Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg|mini|Großräschen Blick Victoriahöhe]]
* {{Marker | name = Großräschen | type= town | wikidata = Q588844}} mit dem Bergbaufolgesee {{Marker | name = Großräschener See | type= lake | wikidata = Q160841}}. Die Route macht am Freizeitbereich [https://www.iba-terrassen.de IBA-Terrassen] rund um den Stadthafen Station. Hier gibt es Einkehr- und Übernachtungsmöglichkeiten. Aus altem Tagebaugerät wurde eine Seebrücke errichtet. Am Südhang hat man sogar ein Weinberg angelegt. Ein schöner Rundblick ergibt sich auf der {{Marker | name = Aussichtskanzel Victoriahöhe |type= viewpoint | lat = 51.574262 | long = 14.003717 | image = Großräschen Victoriahöhe lub 2023-08-22 img02 Aussicht.jpg}}. Am Horizont ist bei guter Sicht der Windpark bei Schipkau zu sehen. Hier wächst Stand 2026 das [[w:GICON-Höhenwindrad Schipkau|höchste Windrad der Welt in den Himmel]]. Der Gigant wird als Höhenwindrad bis zur Rotorspitze 365{{nnbsp}}m messen. Dadurch kann das Windrad als "2. obere Etage" in den bestehenden Windrad eingepasst werden. Durch die extreme Höhe soll das Windrad einen bedeutend höheren und auch stetigeren Ertrag erreichen, als aktuelle Anlagen ([https://www.youtube.com/watch?v=YFwhzu-NujU Video des MDR von Sommer 2025 auf Youtube]). Das Projekt besitzt Forschungscharakter und wird mit öffentlichen Mitteln gefördert. Aktuelle Windkraftanlagen an Land sind bisher "nur" 200 bis 250{{nnbsp}}m hoch.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> Der ADFC-Radtourenvorschlag führt am Ostufer des Sees über Sedlitz.
:~> Landschaftlich attraktiver und mehr abseits der Verkehrslinien ist allerdings die Strecke westlich des Sees. Hier führt die gut ausgebaute Radroute durch die weite Bergbaufolgelandschaft. Man kommt an Folgenutuzngen, wie einem großen Solarpark vorbei. Von der {{Marker | name = Reppister Höhe | type= viewpoint | lat = 51.543276 | long = 14.016446}} mit Rastplatz, Schutzhütte und Kunstwerken ergibt sich ein weiter Ausblick.
[[Datei:DSMarktSenftenbergFotoAndreKaiser300407.JPG|mini|Markplatz Senftenberg]]
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754}} - Zentrum das Lausitzer Seenlandes: Marktplatz mit Rathaus, Schloss und Stadthafen mit Seebrücke am Senftenberger See.
=== 4. Etappe: Senftenberg – Radeburg (etwa 50{{nnbsp}}km) ===
* {{Marker | name = Senftenberg | type= town | wikidata = Q491754| show = copy }}
* {{Marker | name = Ruhland | type= village | wikidata = Q572601}} - Marktplatz mit Einkehrmöglichkeiten.
:~ [[File:Fahrrad-Symbol 01 KMJ.png|20px]] ~> An der {{Marker | name = Bahnquerung Knotenpunkt 23 südlich Ruhland| name-map = Bahnquerung Knotenpunkt 23 südlich Ruhland mit eng stehenden Umlaufsperren |type= waypoint |group = gold | lat = 51.43900 | long = 13.84640 }} vermerkt der ADFC Stand 04-2026 sehr eng stehende [[w:Umlaufsperren|Umlaufsperren]]. Laut ADFC "sehr eng für Tandems oder mit Anhänger." Wer also einen großen Hänger, wie einen Fahrradwohnwagen dabei hat, muss die Landstraße L55 über Arnsdorf nehmen (hier kein Radweg).
:~> Auf Asphalt, aber auch Schotterwegen geht es schön durch den Wald nach {{Marker | name = Kroppen | type= village | wikidata = Q589543}}. Auf Nebenstraßen radelt man weiter über Böhla, Ponickau und Liega nach {{Marker | name = Thiendorf | type= village | wikidata = Q8830}}.
:~> Von Thiendorf ist es durch das reizvolle {{Marker | name = Zschornaer Teichgebiet | type= landscape | wikidata = Q28657423}} nicht mehr weit bis Radeburg.
* {{Marker | name = Radeburg | type= town | wikidata = Q8770}} - Beachtenswerter Marktplatz
=== 5. Etappe: Radeburg – Dresden (etwa 22{{nnbsp}}km) ===
Diese kurze Schlussetappe führt direkt nach Dresden hinein. Wer unterwegs mehr sehen möchte kann individuell über Schloss Moritzburg nach Dresden fahren. Im Stadtbereich Dresden ist die Radroute bereits als Radweg Berlin–Dresden beschildert (Kürzel B-DD in der Ebene Radwege des Plan).
* {{Marker | name = Radeburg | type= town | wikidata = Q8770 | show = copy }} - Stadtmitte am Rathaus
* {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 }} - Teich im Dorf, Einkehrmöglichkeiten
* {{Marker | name = Dresden | type= town | wikidata = Q1731}} - Elbflorenz mit seinen zahlreichen bekannten Sehenswürdigkeiten.
==== Variante über Schloss Moritzburg und Elberadweg (etwa 32 km) ====
[[Datei:Luftbild Schloss Moritzburg 2014-03-29 1.JPG|mini|Luftbild Schloss Moritzburg]]
[[Datei:RD 260118 Lössnitzgrundbahn, Schefflermühle.jpg|mini|Lössnitzgrundbahn]]
In {{Marker | name = Bärnsdorf | type= village | wikidata = Q1019230 | show = copy}} auf den Radfernweg Sächsische Städtekette wechseln.
Die Route führt nach {{Marker | name = Moritzburg | type= village | wikidata = Q8742}} mit seinem bekannten Schloss und Landschaftspark. Das Schloss findet sich eingebettet in einen reizvollen Landschaftspark mit Teichen.
Durch den Lößnitzgrund mit seiner Dampfbahn erreicht die Sächsische Städtekette das Weinanbaugebiet an der Elbe. Vorbei an {{Marker | name = Radebeul | type= town | wikidata = Q8762}} wird über den Elberadweg {{Marker | name = Dresden | type= town | wikidata = Q1731 | show = copy }} erreicht.
== Sicherheit ==
Auch beim Radwandern kann ein Fahrradhelm die Schwere von Kopfverletzungen bei Stürzen entscheidend mindern (siehe z.{{nnbsp}}B. auch dieser Fachartikel zum [https://www.asklepios.com/konzern/gesundheitsmagazin/gesund-leben/praevention/helmpflicht-kopfverletzungen Thema]).
== Weiter geht's ==
* Wer von Dresden zurück nach Berlin möchte, kann dem Elberadweg bis Lutherstadt Wittenberg folgen. Auf der D-Route 3 kann ab hier über Bad Belzig und Potsdam wieder Berlin erreicht werden.
== GPX-Daten ==
* Tourenvorschlag des ADFC Sachsen als GPX-Track [https://www.radweg-berlin-dresden.de/download.html radweg-berlin-dresden.de]
== Literatur- und Kartenhinweise ==
* Kartenbuch Radweg Berlin-Dresden {{ISBN|9783000689765}}, [https://www.radweg-berlin-dresden.de/druckkarte.html Bezugsquellen beim ADFC]
* Schriftliche Radreiseliteratur, wie z.{{nnbsp}}B. ein Bikeline-Führer, ist nicht vorhanden.
== Weblinks ==
* [https://www.radweg-berlin-dresden.de www.radweg-berlin-dresden.de] - inoffizielle Routenseite des ADFC Sachsen mit vielen Infos zur konzipierten Route
{{IstIn|Radfahren in Deutschland}}
[[Kategorie:Radwege in Berlin]]
[[Kategorie:Radwege in Brandenburg]]
[[Kategorie:Radwege in Sachsen]]
[[Kategorie:Radrouten in Deutschland gesamt]]
{{class-3}}
== Einzelnachweise ==
9cev6usov09a2dupt8uw3qt1ltaowv5
Benutzer Diskussion:Josshh
3
128700
1769141
2026-04-17T05:28:31Z
Itti
5853
Itti verschob die Seite [[Benutzer Diskussion:Josshh]] nach [[Benutzer Diskussion:Jhna.226]]: Seite während der Umbenennung des Benutzers „[[Special:CentralAuth/Josshh|Josshh]]“ in „[[Special:CentralAuth/Jhna.226|Jhna.226]]“ automatisch verschoben
1769141
wikitext
text/x-wiki
#WEITERLEITUNG [[Benutzer Diskussion:Jhna.226]]
4zqmy0h9q6utupjgba7uv24sy8c7uhp
Benutzer Diskussion:N01C3
3
128701
1769143
2026-04-17T05:33:05Z
Itti
5853
Itti verschob die Seite [[Benutzer Diskussion:N01C3]] nach [[Benutzer Diskussion:FOMOsapiens]]: Seite während der Umbenennung des Benutzers „[[Special:CentralAuth/N01C3|N01C3]]“ in „[[Special:CentralAuth/FOMOsapiens|FOMOsapiens]]“ automatisch verschoben
1769143
wikitext
text/x-wiki
#WEITERLEITUNG [[Benutzer Diskussion:FOMOsapiens]]
odnu93pwn6kh5tu4fy9nw7pxfusw56m
Wirges
0
128702
1769167
2026-04-17T08:24:01Z
~2026-23774-69
58168
Die Seite wurde neu angelegt: „'''Wirges''' ist eine Stadt im [[Westerwald]] in [[Rheinland-Pfalz]], Sitz der Verbandsgemeinde Wirges und gemäß der Landesplanung als Grundzentrum ausgelegt == Lage == Wirges befindet sich im Unterwesterwald, umliegende Gemeinden sind Dernbach, Ebernhahn, Bannberscheid und Moschheim == Anreise == Wirges ist über die [[w:Unterwesterwaldbahn: Unterwesterwaldbahn]] ([[Limburg an der Lahn]] - [[Montabaur]] - [[Siershahn]] sowie einige Regionalbuslinien…“
1769167
wikitext
text/x-wiki
'''Wirges''' ist eine Stadt im [[Westerwald]] in [[Rheinland-Pfalz]], Sitz der Verbandsgemeinde Wirges und gemäß der Landesplanung als Grundzentrum ausgelegt
== Lage ==
Wirges befindet sich im Unterwesterwald, umliegende Gemeinden sind Dernbach, Ebernhahn, Bannberscheid und Moschheim
== Anreise ==
Wirges ist über die [[w:Unterwesterwaldbahn: Unterwesterwaldbahn]] ([[Limburg an der Lahn]] - [[Montabaur]] - [[Siershahn]] sowie einige Regionalbuslinien erreichbar.
Nächstgelegener Fernbahnhof sowie Fernbushaltetellen sind der [[w:Bahnhof Montabaur|Bahnhof Montabaur]] sowie der [[w: Koblenz Hauptbahnhof|Hauptbahnhof Koblenz]]
== Mobilität ==
Kurze Wege innerhalb Wirges ermöglichen Mobilität zu Fuß, parken ist kostenlos, aber in Geschäftsstrassen werktags tagsüber nur mit Parkscheibe möglich.
== Aktivitäten ==
== Einkaufen ==
== Küche ==
== Weblinks ==
* [https://www.wirges.de Website der Gemeinde Wirges]]
bpb2eqk3aqnapizm9hbaja44h34cbr1
1769168
1769167
2026-04-17T08:25:54Z
~2026-23774-69
58168
/* Lage */
1769168
wikitext
text/x-wiki
'''Wirges''' ist eine Stadt im [[Westerwald]] in [[Rheinland-Pfalz]], Sitz der Verbandsgemeinde Wirges und gemäß der Landesplanung als Grundzentrum ausgelegt
== Lage ==
[[File:WirgesKrambach1.jpg|thumb|right|Der Krambach]]
Wirges befindet sich im Unterwesterwald, umliegende Gemeinden sind Dernbach, Ebernhahn, Bannberscheid und Moschheim
== Anreise ==
Wirges ist über die [[w:Unterwesterwaldbahn: Unterwesterwaldbahn]] ([[Limburg an der Lahn]] - [[Montabaur]] - [[Siershahn]] sowie einige Regionalbuslinien erreichbar.
Nächstgelegener Fernbahnhof sowie Fernbushaltetellen sind der [[w:Bahnhof Montabaur|Bahnhof Montabaur]] sowie der [[w: Koblenz Hauptbahnhof|Hauptbahnhof Koblenz]]
== Mobilität ==
Kurze Wege innerhalb Wirges ermöglichen Mobilität zu Fuß, parken ist kostenlos, aber in Geschäftsstrassen werktags tagsüber nur mit Parkscheibe möglich.
== Aktivitäten ==
== Einkaufen ==
== Küche ==
== Weblinks ==
* [https://www.wirges.de Website der Gemeinde Wirges]]
d9bw5xa478ehjk195emrwbo6pgpzv7t
1769170
1769168
2026-04-17T08:27:52Z
~2026-23774-69
58168
/* Aktivitäten */
1769170
wikitext
text/x-wiki
'''Wirges''' ist eine Stadt im [[Westerwald]] in [[Rheinland-Pfalz]], Sitz der Verbandsgemeinde Wirges und gemäß der Landesplanung als Grundzentrum ausgelegt
== Lage ==
[[File:WirgesKrambach1.jpg|thumb|right|Der Krambach]]
Wirges befindet sich im Unterwesterwald, umliegende Gemeinden sind Dernbach, Ebernhahn, Bannberscheid und Moschheim
== Anreise ==
Wirges ist über die [[w:Unterwesterwaldbahn: Unterwesterwaldbahn]] ([[Limburg an der Lahn]] - [[Montabaur]] - [[Siershahn]] sowie einige Regionalbuslinien erreichbar.
Nächstgelegener Fernbahnhof sowie Fernbushaltetellen sind der [[w:Bahnhof Montabaur|Bahnhof Montabaur]] sowie der [[w: Koblenz Hauptbahnhof|Hauptbahnhof Koblenz]]
== Mobilität ==
Kurze Wege innerhalb Wirges ermöglichen Mobilität zu Fuß, parken ist kostenlos, aber in Geschäftsstrassen werktags tagsüber nur mit Parkscheibe möglich.
== Aktivitäten ==
[[File:Wirges, Barfußpark.JPG|thumb|right|Der Barfußpark]]
Der Barfußpark ist der öffentliche Park in Wirges]]
== Einkaufen ==
== Küche ==
== Weblinks ==
* [https://www.wirges.de Website der Gemeinde Wirges]]
n4124a6e1tpn4a09s6ncwlid9s22wh2
1769171
1769170
2026-04-17T08:29:12Z
~2026-23774-69
58168
/* Lage */
1769171
wikitext
text/x-wiki
'''Wirges''' ist eine Stadt im [[Westerwald]] in [[Rheinland-Pfalz]], Sitz der Verbandsgemeinde Wirges und gemäß der Landesplanung als Grundzentrum ausgelegt
== Lage ==
[[File:WirgesKrambach1.jpg|thumb|right|Der Krambach]]
[[File:Wirges Ortszentrum.jpg|thumb|right|Das Zentrum vin Wirges]]
Wirges befindet sich im Unterwesterwald, umliegende Gemeinden sind Dernbach, Ebernhahn, Bannberscheid und Moschheim
== Anreise ==
Wirges ist über die [[w:Unterwesterwaldbahn: Unterwesterwaldbahn]] ([[Limburg an der Lahn]] - [[Montabaur]] - [[Siershahn]] sowie einige Regionalbuslinien erreichbar.
Nächstgelegener Fernbahnhof sowie Fernbushaltetellen sind der [[w:Bahnhof Montabaur|Bahnhof Montabaur]] sowie der [[w: Koblenz Hauptbahnhof|Hauptbahnhof Koblenz]]
== Mobilität ==
Kurze Wege innerhalb Wirges ermöglichen Mobilität zu Fuß, parken ist kostenlos, aber in Geschäftsstrassen werktags tagsüber nur mit Parkscheibe möglich.
== Aktivitäten ==
[[File:Wirges, Barfußpark.JPG|thumb|right|Der Barfußpark]]
Der Barfußpark ist der öffentliche Park in Wirges]]
== Einkaufen ==
== Küche ==
== Weblinks ==
* [https://www.wirges.de Website der Gemeinde Wirges]]
j50hl8b7wyrwq3vkdoaxq48jtf2hc94
1769172
1769171
2026-04-17T08:30:30Z
~2026-23774-69
58168
/* Anreise */
1769172
wikitext
text/x-wiki
'''Wirges''' ist eine Stadt im [[Westerwald]] in [[Rheinland-Pfalz]], Sitz der Verbandsgemeinde Wirges und gemäß der Landesplanung als Grundzentrum ausgelegt
== Lage ==
[[File:WirgesKrambach1.jpg|thumb|right|Der Krambach]]
[[File:Wirges Ortszentrum.jpg|thumb|right|Das Zentrum vin Wirges]]
Wirges befindet sich im Unterwesterwald, umliegende Gemeinden sind Dernbach, Ebernhahn, Bannberscheid und Moschheim
== Anreise ==
Wirges ist über die [[w:Unterwesterwaldbahn: Unterwesterwaldbahn]] ([[Limburg an der Lahn]] - [[Montabaur]] - Siershahn sowie einige Regionalbuslinien erreichbar.
Nächstgelegener Fernbahnhof sowie Fernbushaltetellen sind der [[w:Bahnhof Montabaur|Bahnhof Montabaur]] sowie der [[w: Koblenz Hauptbahnhof|Hauptbahnhof Koblenz]]
== Mobilität ==
Kurze Wege innerhalb Wirges ermöglichen Mobilität zu Fuß, parken ist kostenlos, aber in Geschäftsstrassen werktags tagsüber nur mit Parkscheibe möglich.
== Aktivitäten ==
[[File:Wirges, Barfußpark.JPG|thumb|right|Der Barfußpark]]
Der Barfußpark ist der öffentliche Park in Wirges]]
== Einkaufen ==
== Küche ==
== Weblinks ==
* [https://www.wirges.de Website der Gemeinde Wirges]]
iw2oafbvfzyuvjwo1gwen4a2s6xcl31
1769192
1769172
2026-04-17T09:30:51Z
~2026-23774-69
58168
1769192
wikitext
text/x-wiki
{{mapframe}}
'''Wirges''' ist eine Stadt im [[Westerwald]] in [[Rheinland-Pfalz]], Sitz der Verbandsgemeinde Wirges und gemäß der Landesplanung als Grundzentrum ausgelegt
== Lage ==
[[File:WirgesKrambach1.jpg|thumb|right|Der Krambach]]
[[File:Wirges Ortszentrum.jpg|thumb|right|Das Zentrum vin Wirges]]
Wirges befindet sich im Unterwesterwald, umliegende Gemeinden sind Dernbach, Ebernhahn, Bannberscheid und Moschheim
== Anreise ==
Wirges ist über die [[w:Unterwesterwaldbahn: Unterwesterwaldbahn]] ([[Limburg an der Lahn]] - [[Montabaur]] - Siershahn sowie einige Regionalbuslinien erreichbar.
Nächstgelegener Fernbahnhof sowie Fernbushaltetellen sind der [[w:Bahnhof Montabaur|Bahnhof Montabaur]] sowie der [[w: Koblenz Hauptbahnhof|Hauptbahnhof Koblenz]]
== Mobilität ==
Kurze Wege innerhalb Wirges ermöglichen Mobilität zu Fuß, parken ist kostenlos, aber in Geschäftsstrassen werktags tagsüber nur mit Parkscheibe möglich.
== Aktivitäten ==
[[File:Wirges, Barfußpark.JPG|thumb|right|Der Barfußpark]]
Der Barfußpark ist der öffentliche Park in Wirges]]
== Einkaufen ==
== Küche ==
== Weblinks ==
* [https://www.wirges.de Website der Gemeinde Wirges]]
gn9lvq1acbmxk71i1wabk82ucyyhpr8
1769195
1769192
2026-04-17T10:04:41Z
DerFussi
6
+IstInKat
1769195
wikitext
text/x-wiki
{{mapframe}}
'''Wirges''' ist eine Stadt im [[Westerwald]] in [[Rheinland-Pfalz]], Sitz der Verbandsgemeinde Wirges und gemäß der Landesplanung als Grundzentrum ausgelegt
== Lage ==
[[File:WirgesKrambach1.jpg|thumb|right|Der Krambach]]
[[File:Wirges Ortszentrum.jpg|thumb|right|Das Zentrum vin Wirges]]
Wirges befindet sich im Unterwesterwald, umliegende Gemeinden sind Dernbach, Ebernhahn, Bannberscheid und Moschheim
== Anreise ==
Wirges ist über die [[w:Unterwesterwaldbahn: Unterwesterwaldbahn]] ([[Limburg an der Lahn]] - [[Montabaur]] - Siershahn sowie einige Regionalbuslinien erreichbar.
Nächstgelegener Fernbahnhof sowie Fernbushaltetellen sind der [[w:Bahnhof Montabaur|Bahnhof Montabaur]] sowie der [[w: Koblenz Hauptbahnhof|Hauptbahnhof Koblenz]]
== Mobilität ==
Kurze Wege innerhalb Wirges ermöglichen Mobilität zu Fuß, parken ist kostenlos, aber in Geschäftsstrassen werktags tagsüber nur mit Parkscheibe möglich.
== Aktivitäten ==
[[File:Wirges, Barfußpark.JPG|thumb|right|Der Barfußpark]]
Der Barfußpark ist der öffentliche Park in Wirges]]
== Einkaufen ==
== Küche ==
== Weblinks ==
* [https://www.wirges.de Website der Gemeinde Wirges]
{{IstInKat|Westerwald}}
lduaxfbpyvk19r7ub8fnxi3ydqr1aat
1769196
1769195
2026-04-17T10:16:04Z
DerFussi
6
+QB; +Mapframe mit Koordinaten; +Vorgabe; +upright
1769196
wikitext
text/x-wiki
{{Quickbar Ort}}
'''Wirges''' ist eine Stadt im [[Westerwald]] in [[Rheinland-Pfalz]], Sitz der Verbandsgemeinde Wirges und gemäß der Landesplanung als Grundzentrum ausgelegt
== Hintergrund ==
[[File:WirgesKrambach1.jpg|thumb|Der Krambach]]
Wirges befindet sich im Unterwesterwald, umliegende Gemeinden sind Dernbach, Ebernhahn, Bannberscheid und Moschheim
== Anreise ==
{{ Mapframe | lat= 50.474167 | long= 7.795278 | zoom= 14 }}
Wirges ist über die [[w:Unterwesterwaldbahn: Unterwesterwaldbahn]] ([[Limburg an der Lahn]] - [[Montabaur]] - Siershahn sowie einige Regionalbuslinien erreichbar.
Nächstgelegener Fernbahnhof sowie Fernbushaltetellen sind der [[w:Bahnhof Montabaur|Bahnhof Montabaur]] sowie der [[w: Koblenz Hauptbahnhof|Hauptbahnhof Koblenz]]
== Mobilität ==
Kurze Wege innerhalb Wirges ermöglichen Mobilität zu Fuß, parken ist kostenlos, aber in Geschäftsstrassen werktags tagsüber nur mit Parkscheibe möglich.
== Sehenswürdigkeiten ==
[[File:Wirges Ortszentrum.jpg|thumb|upright|Das Zentrum vin Wirges]]
== Aktivitäten ==
[[File:Wirges, Barfußpark.JPG|thumb|Der Barfußpark]]
Der Barfußpark ist der öffentliche Park in Wirges]]
== Einkaufen ==
== Küche ==
== Unterkunft ==
== Weblinks ==
* [https://www.wirges.de Website der Gemeinde Wirges]
{{IstInKat|Westerwald}}
60aw28d4b6ric5c3x4pstaxcvh23086
Mogendorf
0
128703
1769176
2026-04-17T08:50:15Z
~2026-23774-69
58168
Die Seite wurde neu angelegt: „[[File:Mogendorf, gusseiserner Brunnen (1).JPG|thumb|right|Der Brunnen in Mogendorf]] [[File:Mogendorf, Friedhof, Kriegerdenkmal, Totale.JPG|thumb|right|Das Kriegerdenkmal]] '''Mogendorf''' ist ein Ort im [[Westerwald]], er liegt im Kannenbäckerland, im Unterwesterwald. == Hintergrund == Mogendorf liegt im Kannenbäckerland, welches in seiner Geschichte für die Tongewinnung sowie die Glasverarbeitung bekannt ist. == Anreise == Mogendorf ist per Regio…“
1769176
wikitext
text/x-wiki
[[File:Mogendorf, gusseiserner Brunnen (1).JPG|thumb|right|Der Brunnen in Mogendorf]]
[[File:Mogendorf, Friedhof, Kriegerdenkmal, Totale.JPG|thumb|right|Das Kriegerdenkmal]]
'''Mogendorf''' ist ein Ort im [[Westerwald]], er liegt im Kannenbäckerland, im Unterwesterwald.
== Hintergrund ==
Mogendorf liegt im Kannenbäckerland, welches in seiner Geschichte für die Tongewinnung sowie die Glasverarbeitung bekannt ist.
== Anreise ==
Mogendorf ist per Regionalbus erreichbar.
Mogendorf liegt an der Holzabachtalbahn, auf welcher derzeit (2026) jedoch kein SPNV stattfindet.
Der nächstgelegene Fernbahnhof ist der [[w: Bahnhof Montabaur|Bahnhof Montabaur]]
Nächstgelegene Autobahnanschlussstelle ist Mogemdorf an der A3.
== Mobilität ==
Zu Fuß oder per KFZ, es existiert keine Parkschein- oder Parkscheibenpflicht
== Unterkunft ==
== Einkaufen ==
* Autohof Mogendorf
* Aral Tankstelle Mogendorf
== Küche ==
* Burger King
* McDonalds
* KFC
* Autohof Mogendorf
== WiFi ==
WiFi ist in den Schnellrestaurants und Tankstellen verfügbar.
== Weblinks ==
[https://www.mogendorf.de Website der Gemeinde Mogendorf]
5f5w2al2g7utj9b59n1sf50i5p0we9a
1769191
1769176
2026-04-17T09:29:37Z
~2026-23774-69
58168
1769191
wikitext
text/x-wiki
{{mapframe}}
[[File:Mogendorf, gusseiserner Brunnen (1).JPG|thumb|right|Der Brunnen in Mogendorf]]
[[File:Mogendorf, Friedhof, Kriegerdenkmal, Totale.JPG|thumb|right|Das Kriegerdenkmal]]
'''Mogendorf''' ist ein Ort im [[Westerwald]], er liegt im Kannenbäckerland, im Unterwesterwald.
== Hintergrund ==
Mogendorf liegt im Kannenbäckerland, welches in seiner Geschichte für die Tongewinnung sowie die Glasverarbeitung bekannt ist.
== Anreise ==
Mogendorf ist per Regionalbus erreichbar.
Mogendorf liegt an der Holzabachtalbahn, auf welcher derzeit (2026) jedoch kein SPNV stattfindet.
Der nächstgelegene Fernbahnhof ist der [[w: Bahnhof Montabaur|Bahnhof Montabaur]]
Nächstgelegene Autobahnanschlussstelle ist Mogemdorf an der A3.
== Mobilität ==
Zu Fuß oder per KFZ, es existiert keine Parkschein- oder Parkscheibenpflicht
== Unterkunft ==
== Einkaufen ==
* Autohof Mogendorf
* Aral Tankstelle Mogendorf
== Küche ==
* Burger King
* McDonalds
* KFC
* Autohof Mogendorf
== WiFi ==
WiFi ist in den Schnellrestaurants und Tankstellen verfügbar.
== Weblinks ==
[https://www.mogendorf.de Website der Gemeinde Mogendorf]
1tqz58nrx74crt7v36is7ppy2eqqzdp
Koblenz/Arenberg
0
128704
1769183
2026-04-17T09:13:46Z
~2026-23774-69
58168
Die Seite wurde neu angelegt: „[[File:KO Arenberg Garden 1.JPG|thumb|right|Die Pfarrer-Kraus-Anlagen]] [[File:Mühlenbach 05 2009 006.jpg|thumb|right|Turm der Burg Mühlenbach Arenberg]] [[File:Lapidarium Arenberg Stein 1.jpg|thumb|right|Stein am Arnsberger Lapidarium]] [[File:Mutterhaus Arenberg.JPG|Das Mutterhaus in Arenberg]] '''Koblenz-Arenberg''' ist ein Stadtteil der Stadt [[Koblenz]] in [[Rheinland-Pfalz]], welches sich auf der [[Westerwald|Westerwald-Seite]] des Rhein|Rheins…“
1769183
wikitext
text/x-wiki
[[File:KO Arenberg Garden 1.JPG|thumb|right|Die Pfarrer-Kraus-Anlagen]]
[[File:Mühlenbach 05 2009 006.jpg|thumb|right|Turm der Burg Mühlenbach Arenberg]]
[[File:Lapidarium Arenberg Stein 1.jpg|thumb|right|Stein am Arnsberger Lapidarium]]
[[File:Mutterhaus Arenberg.JPG|Das Mutterhaus in Arenberg]]
'''Koblenz-Arenberg''' ist ein Stadtteil der Stadt [[Koblenz]] in [[Rheinland-Pfalz]], welches sich auf der [[Westerwald|Westerwald-Seite]] des [[Rhein|Rheins]] befindet.
== Hintergrund ==
Arenberg ist ein Höhenstadtteil in Koblenz, er liegt nahe dem Koblenzer Staatsforst sowie des Golfplatzes Denzer Heide
== Anreise ==
Die Stadtbuslinie 9 der EVM sowie die Regionalbuslinie 460 bedienen Arenberg, nächstgelegener Anschluss an den SPNV ist der Bahnhof Koblenz Ehrenbreitstein, nächstgelegener Fernbahnhof und Fernbushaltetelle der Hauptbahnhof Koblenz.
== Mobilität ==
Die Bulinien können für Fahrten innerhalb des Stadtteils genutzt werden, parken an Straßen ist kostenlos möglich, weswegen auch Autofahrer, welche in die Innenstadt wollen, oft in Arnsberg parken und in den Bus umsteigen.
== Sehenswürdigkeiten ==
Die Pfarrer Kraus Anlagen befinden sich im Zentrum Arenbergs
== Aktivitäten ==
Das Mutterhaus des Kloster Arenberg unterhält ein privates Kur- und Erholungszentrum.
== Unterkunft ==
== Einkaufen ==
Arenberger Tankstelle
== Küche ==
Eine Gaststätte befindet sich im Kloster Arenberg.
== Wifi ==
WiFi ist am Mutterhaus verfügbar.
== Weblinks ==
* [https://www.koblenz-arenberg.de/ Website des Stadtteils]
soptzd89nb6pulavq8aikqso9d10d4n
1769184
1769183
2026-04-17T09:14:47Z
~2026-23774-69
58168
/* Unterkunft */
1769184
wikitext
text/x-wiki
[[File:KO Arenberg Garden 1.JPG|thumb|right|Die Pfarrer-Kraus-Anlagen]]
[[File:Mühlenbach 05 2009 006.jpg|thumb|right|Turm der Burg Mühlenbach Arenberg]]
[[File:Lapidarium Arenberg Stein 1.jpg|thumb|right|Stein am Arnsberger Lapidarium]]
[[File:Mutterhaus Arenberg.JPG|Das Mutterhaus in Arenberg]]
'''Koblenz-Arenberg''' ist ein Stadtteil der Stadt [[Koblenz]] in [[Rheinland-Pfalz]], welches sich auf der [[Westerwald|Westerwald-Seite]] des [[Rhein|Rheins]] befindet.
== Hintergrund ==
Arenberg ist ein Höhenstadtteil in Koblenz, er liegt nahe dem Koblenzer Staatsforst sowie des Golfplatzes Denzer Heide
== Anreise ==
Die Stadtbuslinie 9 der EVM sowie die Regionalbuslinie 460 bedienen Arenberg, nächstgelegener Anschluss an den SPNV ist der Bahnhof Koblenz Ehrenbreitstein, nächstgelegener Fernbahnhof und Fernbushaltetelle der Hauptbahnhof Koblenz.
== Mobilität ==
Die Bulinien können für Fahrten innerhalb des Stadtteils genutzt werden, parken an Straßen ist kostenlos möglich, weswegen auch Autofahrer, welche in die Innenstadt wollen, oft in Arnsberg parken und in den Bus umsteigen.
== Sehenswürdigkeiten ==
Die Pfarrer Kraus Anlagen befinden sich im Zentrum Arenbergs
== Aktivitäten ==
Das Mutterhaus des Kloster Arenberg unterhält ein privates Kur- und Erholungszentrum.
== Unterkunft ==
Das Mutterhaus des Kloster Arenberg ist Beherbergungsbetrieb.
== Einkaufen ==
Arenberger Tankstelle
== Küche ==
Eine Gaststätte befindet sich im Kloster Arenberg.
== Wifi ==
WiFi ist am Mutterhaus verfügbar.
== Weblinks ==
* [https://www.koblenz-arenberg.de/ Website des Stadtteils]
avwat8av1lamswwdrp7vdp0lgr5x9hq
1769189
1769184
2026-04-17T09:26:01Z
~2026-23774-69
58168
/* Anreise */
1769189
wikitext
text/x-wiki
[[File:KO Arenberg Garden 1.JPG|thumb|right|Die Pfarrer-Kraus-Anlagen]]
[[File:Mühlenbach 05 2009 006.jpg|thumb|right|Turm der Burg Mühlenbach Arenberg]]
[[File:Lapidarium Arenberg Stein 1.jpg|thumb|right|Stein am Arnsberger Lapidarium]]
[[File:Mutterhaus Arenberg.JPG|Das Mutterhaus in Arenberg]]
'''Koblenz-Arenberg''' ist ein Stadtteil der Stadt [[Koblenz]] in [[Rheinland-Pfalz]], welches sich auf der [[Westerwald|Westerwald-Seite]] des [[Rhein|Rheins]] befindet.
== Hintergrund ==
Arenberg ist ein Höhenstadtteil in Koblenz, er liegt nahe dem Koblenzer Staatsforst sowie des Golfplatzes Denzer Heide
== Anreise ==
Die Stadtbuslinie '''9''' der EVM sowie die Regionalbuslinie '''460''' bedienen Arenberg, nächstgelegener Anschluss an den SPNV ist der Bahnhof Koblenz Ehrenbreitstein, nächstgelegener Fernbahnhof und Fernbushaltetelle der Hauptbahnhof Koblenz.
== Mobilität ==
Die Bulinien können für Fahrten innerhalb des Stadtteils genutzt werden, parken an Straßen ist kostenlos möglich, weswegen auch Autofahrer, welche in die Innenstadt wollen, oft in Arnsberg parken und in den Bus umsteigen.
== Sehenswürdigkeiten ==
Die Pfarrer Kraus Anlagen befinden sich im Zentrum Arenbergs
== Aktivitäten ==
Das Mutterhaus des Kloster Arenberg unterhält ein privates Kur- und Erholungszentrum.
== Unterkunft ==
Das Mutterhaus des Kloster Arenberg ist Beherbergungsbetrieb.
== Einkaufen ==
Arenberger Tankstelle
== Küche ==
Eine Gaststätte befindet sich im Kloster Arenberg.
== Wifi ==
WiFi ist am Mutterhaus verfügbar.
== Weblinks ==
* [https://www.koblenz-arenberg.de/ Website des Stadtteils]
bxg78yoky2rt9y9x0ri666mr86jnmff
1769193
1769189
2026-04-17T09:31:56Z
~2026-23774-69
58168
1769193
wikitext
text/x-wiki
{{mapframe}}
[[File:KO Arenberg Garden 1.JPG|thumb|right|Die Pfarrer-Kraus-Anlagen]]
[[File:Mühlenbach 05 2009 006.jpg|thumb|right|Turm der Burg Mühlenbach Arenberg]]
[[File:Lapidarium Arenberg Stein 1.jpg|thumb|right|Stein am Arnsberger Lapidarium]]
[[File:Mutterhaus Arenberg.JPG|Das Mutterhaus in Arenberg]]
'''Koblenz-Arenberg''' ist ein Stadtteil der Stadt [[Koblenz]] in [[Rheinland-Pfalz]], welches sich auf der [[Westerwald|Westerwald-Seite]] des [[Rhein|Rheins]] befindet.
== Hintergrund ==
Arenberg ist ein Höhenstadtteil in Koblenz, er liegt nahe dem Koblenzer Staatsforst sowie des Golfplatzes Denzer Heide
== Anreise ==
Die Stadtbuslinie '''9''' der EVM sowie die Regionalbuslinie '''460''' bedienen Arenberg, nächstgelegener Anschluss an den SPNV ist der Bahnhof Koblenz Ehrenbreitstein, nächstgelegener Fernbahnhof und Fernbushaltetelle der Hauptbahnhof Koblenz.
== Mobilität ==
Die Bulinien können für Fahrten innerhalb des Stadtteils genutzt werden, parken an Straßen ist kostenlos möglich, weswegen auch Autofahrer, welche in die Innenstadt wollen, oft in Arnsberg parken und in den Bus umsteigen.
== Sehenswürdigkeiten ==
Die Pfarrer Kraus Anlagen befinden sich im Zentrum Arenbergs
== Aktivitäten ==
Das Mutterhaus des Kloster Arenberg unterhält ein privates Kur- und Erholungszentrum.
== Unterkunft ==
Das Mutterhaus des Kloster Arenberg ist Beherbergungsbetrieb.
== Einkaufen ==
Arenberger Tankstelle
== Küche ==
Eine Gaststätte befindet sich im Kloster Arenberg.
== Wifi ==
WiFi ist am Mutterhaus verfügbar.
== Weblinks ==
* [https://www.koblenz-arenberg.de/ Website des Stadtteils]
cikmijnoeihqvulm0g8cchboj8txiyx
1769197
1769193
2026-04-17T10:19:07Z
DerFussi
6
Ist ein Stadtteil-Artikel notwendig? Nicht recherchiert, nur paar Anpassungen
1769197
wikitext
text/x-wiki
'''Arenberg''' ist ein Stadtteil der Stadt [[Koblenz]] in [[Rheinland-Pfalz]], welches sich auf der [[Westerwald|Westerwald-Seite]] des [[Rhein|Rheins]] befindet.
== Hintergrund ==
{{mapframe}}
Arenberg ist ein Höhenstadtteil in Koblenz, er liegt nahe dem Koblenzer Staatsforst sowie des Golfplatzes Denzer Heide
== Anreise ==
Die Stadtbuslinie '''9''' der EVM sowie die Regionalbuslinie '''460''' bedienen Arenberg, nächstgelegener Anschluss an den SPNV ist der Bahnhof Koblenz Ehrenbreitstein, nächstgelegener Fernbahnhof und Fernbushaltetelle der Hauptbahnhof Koblenz.
== Mobilität ==
Die Bulinien können für Fahrten innerhalb des Stadtteils genutzt werden, parken an Straßen ist kostenlos möglich, weswegen auch Autofahrer, welche in die Innenstadt wollen, oft in Arnsberg parken und in den Bus umsteigen.
== Sehenswürdigkeiten ==
[[File:KO Arenberg Garden 1.JPG|thumb|Die Pfarrer-Kraus-Anlagen]]
[[File:Mühlenbach 05 2009 006.jpg|thumb|Turm der Burg Mühlenbach Arenberg]]
[[File:Lapidarium Arenberg Stein 1.jpg|thumb|Stein am Arnsberger Lapidarium]]
[[File:Mutterhaus Arenberg.JPG|thumb|Das Mutterhaus in Arenberg]]
Die Pfarrer Kraus Anlagen befinden sich im Zentrum Arenbergs
== Aktivitäten ==
Das Mutterhaus des Kloster Arenberg unterhält ein privates Kur- und Erholungszentrum.
== Einkaufen ==
Arenberger Tankstelle
== Küche ==
Eine Gaststätte befindet sich im Kloster Arenberg.
== Unterkunft ==
Das Mutterhaus des Kloster Arenberg ist Beherbergungsbetrieb.
== Post und Telekommunikation ==
WiFi ist am Mutterhaus verfügbar.
== Weblinks ==
* [https://www.koblenz-arenberg.de/ Website des Stadtteils]
oyrvigp5xprivyyj9hmsxddv3dzujwh
1769198
1769197
2026-04-17T10:19:48Z
DerFussi
6
DerFussi verschob die Seite [[Koblenz-Arenberg]] nach [[Koblenz/Arenberg]]: Wenn überhaupt notwendig, dann so
1769197
wikitext
text/x-wiki
'''Arenberg''' ist ein Stadtteil der Stadt [[Koblenz]] in [[Rheinland-Pfalz]], welches sich auf der [[Westerwald|Westerwald-Seite]] des [[Rhein|Rheins]] befindet.
== Hintergrund ==
{{mapframe}}
Arenberg ist ein Höhenstadtteil in Koblenz, er liegt nahe dem Koblenzer Staatsforst sowie des Golfplatzes Denzer Heide
== Anreise ==
Die Stadtbuslinie '''9''' der EVM sowie die Regionalbuslinie '''460''' bedienen Arenberg, nächstgelegener Anschluss an den SPNV ist der Bahnhof Koblenz Ehrenbreitstein, nächstgelegener Fernbahnhof und Fernbushaltetelle der Hauptbahnhof Koblenz.
== Mobilität ==
Die Bulinien können für Fahrten innerhalb des Stadtteils genutzt werden, parken an Straßen ist kostenlos möglich, weswegen auch Autofahrer, welche in die Innenstadt wollen, oft in Arnsberg parken und in den Bus umsteigen.
== Sehenswürdigkeiten ==
[[File:KO Arenberg Garden 1.JPG|thumb|Die Pfarrer-Kraus-Anlagen]]
[[File:Mühlenbach 05 2009 006.jpg|thumb|Turm der Burg Mühlenbach Arenberg]]
[[File:Lapidarium Arenberg Stein 1.jpg|thumb|Stein am Arnsberger Lapidarium]]
[[File:Mutterhaus Arenberg.JPG|thumb|Das Mutterhaus in Arenberg]]
Die Pfarrer Kraus Anlagen befinden sich im Zentrum Arenbergs
== Aktivitäten ==
Das Mutterhaus des Kloster Arenberg unterhält ein privates Kur- und Erholungszentrum.
== Einkaufen ==
Arenberger Tankstelle
== Küche ==
Eine Gaststätte befindet sich im Kloster Arenberg.
== Unterkunft ==
Das Mutterhaus des Kloster Arenberg ist Beherbergungsbetrieb.
== Post und Telekommunikation ==
WiFi ist am Mutterhaus verfügbar.
== Weblinks ==
* [https://www.koblenz-arenberg.de/ Website des Stadtteils]
oyrvigp5xprivyyj9hmsxddv3dzujwh
Koblenz-Arenberg
0
128705
1769199
2026-04-17T10:19:48Z
DerFussi
6
DerFussi verschob die Seite [[Koblenz-Arenberg]] nach [[Koblenz/Arenberg]]: Wenn überhaupt notwendig, dann so
1769199
wikitext
text/x-wiki
#WEITERLEITUNG [[Koblenz/Arenberg]]
g6yvswnz3u252qp5wt6xmwrg4ffyc41