diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 7d12911..343bd33 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -9,7 +9,7 @@ on: jobs: deploy: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 with: @@ -19,8 +19,8 @@ jobs: - name: Setup Hugo uses: peaceiris/actions-hugo@v3 with: - hugo-version: '0.68.3' - # extended: true + hugo-version: '0.111.3' + extended: true - name: Build run: hugo diff --git a/AUFGABE.md b/AUFGABE.md new file mode 100644 index 0000000..5ca1734 --- /dev/null +++ b/AUFGABE.md @@ -0,0 +1,61 @@ + +# Die Aufgabe dieser Webseite + +Die Website openstreetmap.de ist das Portal der deutschen OSM-Community in die +Welt von OpenStreetMap. Es richtet sich an die allgemeine Öffentlichkeit, +insbesondere in Deutschland bzw. an deutschsprachige Leser. Die Webseite soll +OSM in seiner ganzen Breite darstellen. + +Die Website stellt darüber hinaus auch die Aktivitäten der deutschen +OSM-Community innerhalb und außerhalb des FOSSGIS e.V. dar. Sie ist +außerdem Anlaufpunkt für die deutschsprachige OSM-Community. + +## Zielgruppen + +Die Webseiten richten sich an + +1. Interessenten, die OSM noch überhaupt nicht kennen oder nur eine grobe Idee + haben. Wenn sie (z.B. über eine Suche) auf diese Webseiten kommen, sollen + sie Einführungstexte zu den wichtigsten Themen direkt auf der Seite finden + und häufige Fragen direkt beantwortet bekommen. Sie sollen auch angeregt + werden, bei OSM mitzumachen und dazu entsprechende Informationen finden. +2. Einsteiger, die OSM schon kennen, aber nach weiteren Informationen suchen. + Sie sollen Informationen direkt auf der Seite finden, oder Links ins Wiki + oder zu anderen Seiten, die ein Thema vertieft darstellen. +3. Mapper, also die OSM-Community für ihre täglichen Bedürfnisse. Hier gibt es + Antworten auf FAQs, Hinweise auf Tools und Möglichkeiten mit anderen Mappern + in Kontakt zu kommen oder sich über Aktivitäten in Deutschland zu + informieren. +4. Nutzer, also alle, die OSM niedrigschwellig nutzen wollen, zum Beispiel + einfach mal auf der OSM-Karte etwas anschauen oder eine Route von A nach B + finden wollen. + +## Sprache + +Die Webseiten werden in deutscher Sprache verfasst. Wo sinnvoll wird bei +Verweisen auf externe Webseiten (z.B. zum Wiki) auf die deutsche Version einer +Seite verwiesen. + +Der Stil ist in der Regel informell, wir duzen unsere Leser. + +Wir versuchen soweit wie möglich, komplizierte Fachbegriffe zu vermeiden. +Aber ohne sie geht es auch nicht immer, gerade auch in OSM werden viele +englische Wörter verwendet, das ist okay. + +## Verhältnis zu anderen Webseiten + +openstreetmap.de ist das Portal der deutschen Community. Wo es ohne relevanten +Mehraufwand möglich ist, wird die Anschlussfähigkeit an den deutschsprachigen +Raum in Österreich, der Schweiz, Luxemburg und Belgien mitgedacht, ggf. unter +Einbeziehung dortiger Informationsangebote. Schwerpunkt dieser Communities +sollen aber jeweilige nationalen Webseiten sein. + +Das OSM-Wiki enthält eine Fülle von Informationen, wir können und wollen das +Wiki nicht ersetzen. Weil Inhalte im Wiki aber häufig unvollständig, veraltet, +schlecht sortiert oder schlicht falsch sind, soll openstreetmap.de einen +leichteren, redaktionell betreuten Einstieg bieten. + +Die Webseite des Projektes unter openstreetmap.org enthält relativ wenig +Informationen über das Projekt und lässt daher eine Lücke, die wir (zumindest +für Deutschland) füllen können. + diff --git a/README.md b/README.md index be0f352..87aa485 100644 --- a/README.md +++ b/README.md @@ -3,33 +3,52 @@ Aus diesem Repository wird die Webseite [openstreetmap.de](https://openstreetmap.de) generiert. -## Inhalt anlegen +## Hugo -Die openstreetmap.de-Website wird aus den Inhalten, die in den untergeordneten Verzeichnissen existieren, erzeugt. +Diese Webseite benutzt [Hugo](https://gohugo.io/), um aus den Dateien in diesem +Repository eine Webseite zu bauen. -Um einen neuen Artikel anzulegen, muss eine neue Datei in `content` mit der Endung `.md` (Markdown) angelegt werden. Ein Artikel beginnt mit den Metadaten ganz oben: +Derzeit verwendet wir Hugo Version 0.111.3, wie es bei Debian installiert wird. - --- - title: "Dies ist ein Titel" - date: "2019-02-29T15:00:00+02:00" - author: "Marta Musterfrau" - --- +Du kannst Hugo selbst installieren und lokal laufen lassen, um die Webseite zu +generieren: [Hugo +Installationsanweisungen](https://gohugo.io/getting-started/installing/). +Anschließend kann im Verzeichnis `hugo serve` ausgeführt werden. Dies startet +einen lokalen Webserver, der üblicherweise unter +[http://localhost:1313/](http://localhost:1313/) zu erreichen ist. -Anschließend kann der Inhalt geschrieben werden, z.B. +## Automatische Generierung der Webseite -```markdown -## Unterüberschrift +Jedes mal, wenn dieses Repository auf Github geändert wird (entweder weil man +auf Github eine Datei ändert oder wenn man in den `main` Branch pushed), dann +wird die Webseite neu generiert und auf den Webserver übertragen. Das passiert +über die "Github actions"-Funktion, die unter +`.github/workflows/build-and-deploy.yml` konfiguriert wird. Der neue Inhalt ist +dann nach wenigen Sekunden auf dem Webserver verfügbar. -Hier ist etwas Text. +Zum Testen wird zusätzlich der Inhalt des `staging` Branches nach +staging.openstreetmap.de installiert, auf das man nur mit einem Passwort +zugreifen kann. -Und hier ist ein neuer Absatz. -``` +## Inhalt anlegen -Statische Inhalte wie Bilder und dergleichen, die nicht von Hugo interpretiert werden sollen, gehören unter `static`, nicht nach `content`. +Die openstreetmap.de-Website wird aus den Inhalten, die in den untergeordneten +Verzeichnissen existieren, erzeugt. Webseiten gehören in das Verzeichnis +`content`, sie werden dort im +[Markdown-Format](https://www.markdownguide.org/tools/hugo/) angelegt und +automatisch nach HTML konvertiert. -Lokal kann die Webseite mithilfe von hugo generiert werden: [Hugo Installationsanweisungen](https://gohugo.io/getting-started/installing/). Anschließend kann im Verzeichnis `hugo serve` ausgeführt werden. Dies startet einen lokalen Webserver, der üblicherweise unter [http://localhost:1313](http://localhost:1313) zu erreichen ist. +Statische Inhalte wie Bilder gehören nach `static`. Für Inhalte, die nur von +einer Webseite gebraucht werden wird dabei eine zum `content`-Verzeichnis +parallele Dateihierarchie benutzt. Mehrfach genutzte Bilder gehören nach +`static/img/'. -Im Zweifelsfall Inhalte anlegen und Pull Request öffnen, wir finden eine Lösung :) +Achtung: Die Quelle für die Index-Seite hat bei Hugo einen führenden +Unterstrich: + +``` +_index.md +``` ## Kalender @@ -49,12 +68,18 @@ neu generiert wird. Trotzdem sollte man alte Events gelegentlich entfernen. Für Events kann ein Bild hinterlegt werden, das muss im Verzeichnis `static/img/cal/` abgelegt werden. -## Generierung der Webseite +## Suchfunktion -Jedes mal, wenn dieses Repository auf Github geändert wird (entweder weil man -auf Github eine Datei ändert oder wenn man in den `main` Branch pushed), dann -wird die Webseite neu generiert und auf den Webserver übertragen. Das passiert -über die "Github actions"-Funktion, die unter -`.github/workflows/build-and-deploy.yml` konfiguriert wird. Der neue Inhalt ist -dann nach wenigen Sekunden auf dem Webserver verfügbar. +Da wir mit statischen Seiten arbeiten, gibt es keine Suchunterstützung vom +Server. Stattdessen wird beim Erzeugen der Seiten auch eine Datei `index.json` +erzeugt, die alle Inhalte aller Seiten enthält. Die wird dann bei der Suche +im Browser von etwas Javascript geladen und darin gesucht. + +Dazu werden diese Javascript-Libraries benutzt: + +* [Fuse.js](https://www.fusejs.io/) für die Suche. +* [Mark.js](https://markjs.io/) für das Markieren der Suchergebnisse. + +Die Implementierung in `static/js/search.js` basiert auf [dieser +Beschreibung](https://makewithhugo.com/add-search-to-a-hugo-site/). diff --git a/assets/css/style.css b/assets/css/style.css index c8c02c0..f2b4cc9 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -1,30 +1,81 @@ +@font-face { + font-family: 'Sarabun'; + src: url('/fonts/Sarabun-Regular.woff2') format('woff2'), + url('/fonts/Sarabun-Regular.woff') format('woff'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'Sarabun'; + src: url('/fonts/Sarabun-Bold.woff2') format('woff2'), + url('/fonts/Sarabun-Bold.woff') format('woff'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'Sarabun'; + src: url('/fonts/Sarabun-Italic.woff2') format('woff2'), + url('/fonts/Sarabun-Italic.woff') format('woff'); + font-weight: normal; + font-style: italic; +} + :root { --primary: #9ed284; --primary-darker: #619645; --grey: #f8f8f8; --border-color: #ccc; + --contrast-color: #ff6b8c; } body { margin: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-family: 'Sarabun', sans-serif; } -main { - width: 70%; - margin-left: auto; - margin-right: auto; +@media screen { + body { + min-height: 100vh; + display: grid; + grid-template-rows: calc(77px + 45px) 1fr 50px; + } } +div.top { + position: relative; + display: flex; + justify-content: space-between; + height: 71px; + z-index: 1; + padding-top: 6px; + background-image: url(/img/header-bg.jpg); + box-shadow: 0 1px 4px #888; +} nav { - text-align: center; - padding: 14px 16px; + background-color: var(--grey); +} + +@media screen and (min-width: 981px) { + nav { + display: flex !important; + gap: 4px; + justify-content: center; + text-align: center; + padding: 8px 15% 6px 15%; + border-bottom: 1px solid #f0f0f0; + } + + nav a { + border-radius: 3px; + } } nav a { color: #000; - padding: 14px 16px; + padding: 2px 12px 6px 12px; text-decoration: none !important; font-size: 1.2rem; } @@ -34,11 +85,25 @@ nav a:hover { color: black; } -nav a.active { +nav a.nav-link-active { background-color: var(--primary); color: white; } +nav a span { + white-space: nowrap; +} + +.nav-link-spacer { + flex-grow: 100; +} + +@media screen and (min-width: 981px) { + .nav-link-short span { + display: none; + } +} + nav .icon { display: none; } @@ -50,6 +115,13 @@ nav svg { height: 20px; } +main { + width: 70%; + margin-left: auto; + margin-right: auto; + margin-bottom: 32px; +} + /* Style the tab */ .tab { overflow: hidden; @@ -92,21 +164,25 @@ nav svg { border-top: none; } -#osm_logo_karte { - width: 50px; +#osm-logo-karte { + position: absolute; + display: block; + padding: 4px; } -header { - background-color: var(--grey); +#osm-logo-karte img { + width: 140px; } #weekly-osm { + position: relative; + top: 30px; display: block; float: right; - background-color: var(--grey); - margin-left: 10px; + margin: 0 0 12px 12px; border: 1px solid maroon; border-radius: 30px; + background-color: var(--grey); padding: 10px 20px; text-align: center; color: maroon; @@ -114,58 +190,319 @@ header { text-decoration: none; } +#weekly-osm img { + width: 100px; +} + +@media screen and (max-width: 980px) { + #weekly-osm { + float: none; + margin: 10px 0 0 0; + background-image: url(/img/weekly-osm.svg); + background-repeat: no-repeat; + background-position-x: 20px; + background-position-y: -4px; + text-align: right; + padding-right: 30px; + } + #weekly-osm img { + display: none; + } +} + #title { - display: block; - padding-top: 10px; - text-align: center; + margin-top: 4px; text-decoration: none; + text-shadow: 0 0 3px white; +} + + +@media screen and (min-width: 981px) { + #title { + margin-left: 15%; + } +} + +@media screen and (max-width: 980px) { + #title { + padding-left: 5%; + padding-right: 5%; + } } #title img { - width: 64px; + position: relative; + left: -8px; + width: 220px; } -#title span { +@media screen and (max-width: 400px) { + #title img { + width: 180px; + } +} + +code { + font-size: 1.3rem; +} + +.float-left { + float: left; + margin: 0 12px 12px 0; +} + +.float-right { + float: right; + margin: 0 0 12px 12px; +} + +img.with-border { + border: 1px solid #aaa; + border-radius: 5px; + padding: 0px; +} + +.link-intern { + clear: left; + padding: 2px 0 4px calc(20px + 0.4em); + background-image: url('data:image/svg+xml;utf8,'); + background-repeat: no-repeat; + background-position: 0 5px; + margin: 2px 0; + color: #808080; +} + +.link-intern a { + color: #808080; +} + +.link-extern { + clear: left; + padding: 2px 0 4px calc(20px + 0.4em); + background-image: url('data:image/svg+xml;utf8,'); + background-repeat: no-repeat; + background-position: 0 5px; + margin: 2px 0; + color: #808080; +} + +.link-extern a { + padding: 0 !important; + background-image: none !important; + color: #808080; + margin: 0; +} + +figure { + border: 2px solid #808080; + border-radius: 8px; + width: min-content; +} + +figure a { + display: block; + width: max-content; + margin: 0; + padding: 0; +} + +figure img { + display: block; + border-top-left-radius: 8px; + border-top-right-radius: 8px; + margin: 0; +} + +figcaption { + background-color: #808080; + padding: 4px; + color: white; +} + +.spendenbutton { + float: right; + margin: 10px 0 10px 10px; + transform: rotate(6deg); + width: 130px; + height: 130px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 30px; + border-radius: 50%; + background-color: var(--contrast-color); + border: 3px solid #40493b; + color: white; + text-decoration: none; +} + +.spendenbutton b { position: relative; - top: -26px; - font-size: 2rem; + top: -20px; + display: block; + font-size: 1.5rem; +} + +.spendenbutton span { + position: relative; + top: -10px; +} + +.spbutton { + color: white; + background-color: var(--primary); + border: 1px solid #f0f0f0; + border-radius: 8px; + padding: 2px 14px 4px 14px; + font-size: 1.5rem; + text-decoration: none; + text-shadow: none; +} + +.spbutton:hover { + border: 1px solid #808080; + color: #808080; + background-color: var(--grey); +} + +.spbutton svg { + position: relative; + top: 3px; +} + +#button-karte { + display: block; + width: 120px; + height: 22px; + border: 1px solid white; + border-radius: 8px; + background-image: url(/img/world.png); + background-size: 90px; + background-repeat: no-repeat; + background-position: top 4px center; + background-color: var(--primary); + color: white; + text-decoration: none; + font-size: 16px; + padding-top: 40px; + text-align: center; + font-weight: bold; + transition: all .2s ease-in-out; +} + +#button-karte:hover { + transform: scale(1.04); +} + +@media screen and (min-width: 981px) { + .top form { + margin-right: 15%; + margin-top: 26px; + z-index: 2; + } +} + +@media screen and (max-width: 980px) { + #button-karte { + margin-right: 5%; + } + + .top form { + display: none; + } +} + +.infobox { + display: block; + border: 1px solid #ffde89; + border-radius: 8px; + padding: 10px 20px; + background-color: #fdeeca; + font-size: 1.4rem; + margin: 10px 0; + /* CSS trick: make floated images inside this infobox stay inside */ + float: left; + width: calc(100% - 40px); } h1 { font-size: 3rem; + text-align: center; } h2 { font-size: 2rem; + margin: 2rem 0 1rem 0; +} + +.infobox h2 { + margin-top: 0; + text-align: center; } h3 { + font-size: 1.4rem; + margin-bottom: 0; +} + +a.anchorlink { display: none; } -p { +h2 a.anchorlink { + text-decoration: none; + filter: grayscale(1); + font-size: 1.4rem; +} + +h2:hover a.anchorlink { + display: inline; +} + +p, ul, ol { font-size: 1.4rem; line-height: 1.8rem; + margin: 1rem 0; } -a.extlink { - background-image: url('data:image/svg+xml;utf8,'); +p { + hyphens: auto; +} + +.infobox p { + text-align: justify; +} + +@media screen and (min-width: 800px) { + main > p { + text-align: justify; + } +} + +input#search-query { + background-image: url('data:image/svg+xml;utf8,'); + background-position: right; background-repeat: no-repeat; - background-position: left; - padding-left: 16px; + font-size: 1.2rem; + padding: 5px 8px; + border: 1px solid #e0e0e0; + border-radius: 8px; } -span.read_more { - text-align: right; - float: right; +mark { + background-color: #f4d67b; } a { - color: var(--primary-darker); + color: black; } -div.span-one-half { - width: 450px; +p a[href^="https:"], li a[href^="https:"] { + background-image: url('data:image/svg+xml;utf8,'); + background-repeat: no-repeat; + background-position: left; + padding-left: 16px; } .article { @@ -208,11 +545,10 @@ div.span-one-half { } footer { + clear: both; background-color: var(--primary); text-align: center; - padding-top: 20px; - padding-bottom: 20px; - margin-top: 32px; + padding-top: 8px; color: white; } @@ -221,7 +557,6 @@ footer a { } .footer-linklist { - padding-bottom: 1em; text-align: center; } @@ -244,36 +579,14 @@ footer a { -/* @media screen and (max-width: 600px) { */ @media screen and (max-width: 980px) { - #header { - text-align: center; - width: 100%; - padding: 0; - } - - #header-text { - float: none; - padding: 0; - } - - #header-left-section { - float: none; - margin-right: 0; - } - - #header-logo-image { - float: none; - padding-top: 20px; - } - main { width: 90%; } nav { - padding: 0; + margin-top: 2px; } nav a { @@ -344,22 +657,6 @@ footer a { width: 90%; } - div.span-one-half { - width: 100%; - float: none; - } - - .footer-banners { - background-color: #F2F2F2; - padding-bottom: 32px; - } - - .footer-green-section { - padding-top: 30px; - padding-bottom: 30px; - margin-top: 0; - } - .screenshots { display: block; float: none; @@ -415,7 +712,7 @@ div.boxes > div > p { display: grid; grid-template-rows: 1fr repeat(2, max-content); align-items: center; - border: 1px solid #e0e0e0; + border: 1px solid var(--primary); border-radius: 3px; padding: 10px; text-align: center; @@ -432,3 +729,287 @@ div.boxes > div > p { margin-top: 10px; } +.themen-grid { + display: flex; + gap: 10px; + flex-wrap: wrap; +} + +.themen-grid a { + position: relative; + display: block; + width: 150px; + height: 150px; + overflow: hidden; + border-radius: 3px; + text-decoration: none; + background-color: var(--primary); + background-size: cover; + box-shadow: 3px 5px 10px #a0a0a0; +} + +.themen-grid a span { + position: absolute; + bottom: 0; + left: 0; + padding: 2px 6px; + width: 100%; + background-color: #404040; + border-top: 1px solid #e0e0e0; + color: white; + font-weight: bold; + font-size: 1.4rem; +} + +@media screen and (max-width: 1400px) { + .themen-title { + margin-top: 20px; + height: 150px; + max-width: 680px; + border-radius: 8px; + background-position-x: right; + background-size: auto 150px; + background-repeat: no-repeat; + } + + .themen-title h1 { + margin: 0; + padding: 46px 10px 0 10px; + text-align: left; + text-shadow: 0 0 10px black; + color: white; + line-height: 2.5rem; + } + + .themen-title h1 span { + font-size: 1.6rem; + text-transform: uppercase; + } +} + +@media screen and (min-width: 1401px) { + .themen-top { + position: relative; + } + + .themen-title { + margin-top: 20px; + margin-left: auto; + height: 150px; + max-width: 680px; + border-radius: 8px; + background-position-x: right; + background-size: auto 150px; + background-repeat: no-repeat; + } + + .themen-title h1 { + position: absolute; + left: 0; + bottom: 0; + margin: 0; + padding-bottom: 20px; + text-align: left; + line-height: 3.5rem; + border-bottom: 2px solid #808080; + } + + .themen-title h1 span { + font-size: 1.6rem; + text-transform: uppercase; + } +} + +.themen-attribution { + text-align: right; + margin-right: 20px; +} + +.themen-attribution a { + text-decoration: none; +} + +.grid-container { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); + gap: 20px; + clear: both; +} + +.grid-container h2, .grid-container h3 { + margin-top: 0; +} + +.grid-container-500 { + grid-template-columns: repeat(auto-fill, minmax(500px, 1fr)); +} + +.grid-box { + border: 2px solid var(--primary); + border-radius: 8px; + padding: 10px; +} + +.grid-box-app-left { + float: left; + border-radius: 8px; +} + +.grid-box-app-right { + margin-left: 220px; +} + +.grid-box-app-right a[href^="https:"] { + background-image: none; + padding-left: 0; +} + +.grid-box-app-right img.logo { + width: 50px; + border-radius: 8px; +} + +.grid-box-app-right img { + width: 100px; +} + +.with-link { + display: block; + text-decoration: none; +} + +.with-link img { + float: left; + border-radius: 3px; + margin-right: 10px; +} + +.grid-box .description { + font-size: 1.2rem; +} + +.grid-box .description h2 { + font-size: 1.2rem; +} + +.grid-box td { + vertical-align: top; +} + +/******************************************/ + +.subtitle { + margin-top: -20px; + text-align: center; + font-weight: bold; + font-size: 1.8rem; +} + +.intro { + margin-top: 20px; + font-size: 1.6rem; +} + +.overview-grid { + display: grid; + gap: 1vw; + grid-template-columns: 1fr 2fr; + align-items: center; + clear: both; + max-width: 1100px; +} + +@media screen and (max-width: 980px) { + .overview-grid { + grid-template-columns: 1fr; + } +} + +div.overview { + padding: 10px; + margin-bottom: 20px; +} + +div.overview h2 { + margin-top: 0; +} + +img.overview { + border-radius: 8px; + width: 100%; + max-width: 360px; +} + + +/******************************************/ + +table.sitemap { + border-collapse: collapse; +} + +table.sitemap tr:nth-child(odd) { + background-color: #f0f0f0; +} + +table.sitemap td { + padding: 2px 4px; +} + +table.sitemap td.sitemap-source { + font-family: fixed; +} + +/******************************************/ + +@media print { + .top { + padding-left: 20px; + } + + nav, #button-karte, .top form { + display: none; + } + + main { + width: 100%; + } + + p { + text-align: justify; + } + + footer { + border-top: 1px solid black; + } + + .infobox { + border: 1px solid black; + border-radius: 3px; + text-shadow: none; + } + + figure, img, .infobox { + break-inside: avoid; + } + + figcaption { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + } + + div.top, .link-intern, .link-extern, .themen-grid a { + -webkit-print-color-adjust: exact; + color-adjust: exact; + print-color-adjust: exact; + } + + p a[href^="https:"] { + padding: 0; + } +} + +.backlinks { + margin-top: 40px; + border-top: 1px solid black; +} + diff --git a/assets/js/script.js b/assets/js/script.js index 7a7a970..8bb23ca 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -4,49 +4,3 @@ document.getElementById('menu-toggle').addEventListener('click', (event) => { document.getElementsByTagName('nav')[0].classList.toggle('responsive'); }); -// Opens the specific tab in the "shop window". -function openTab(evt, tabName) { - var i, tabcontent, tablinks; - tabcontent = document.getElementsByClassName("tabcontent"); - for (i = 0; i < tabcontent.length; i++) { - tabcontent[i].style.display = "none"; - } - tablinks = document.getElementsByClassName("tablinks"); - for (i = 0; i < tablinks.length; i++) { - tablinks[i].className = tablinks[i].className.replace(" active", ""); - } - document.getElementById(tabName).style.display = "block"; - evt.currentTarget.className += " active"; -} - -// Opens "Karten" in the "Schaufenster" per default -if (document.getElementById("defaultOpen")) { - document.getElementById("defaultOpen").click(); -} - -// Sets options for the swiper in the "shop window." -var swiper = new Swiper(".mySwiper", { - slidesPerView: 4, - pagination: { - el: ".swiper-pagination", - clickable: true, - }, - navigation: { - nextEl: ".swiper-button-next", - prevEl: ".swiper-button-prev", - }, - breakpoints: { - 0: { - slidesPerView: 1 - }, - 640: { - slidesPerView: 2 - }, - 768: { - slidesPerView: 3 - }, - 820: { - slidesPerView: 4 - } - }, -}); diff --git a/config.toml b/config.toml deleted file mode 100644 index ae458f6..0000000 --- a/config.toml +++ /dev/null @@ -1,86 +0,0 @@ -baseURL = "https://openstreetmap.de/" -languageCode = "de-de" -title = "OpenStreetMap Deutschland" - -############################# Modules ############################## -[module.hugoVersion] -extended = true -min = "0.68.3" - -############################# Image Processing ############################## -[imaging] -quality = 95 - -############################# Outputs ############################## -[outputs] -home = ["HTML"] - -[markup.goldmark.renderer] -unsafe= true - -############################## Plugins ############################## -# CSS Plugins -[[params.plugins.css]] -link = "/css/swiper-bundle.min.css" - -# JS Plugins -[[params.plugins.js]] -link = "plugins/swiperjs/swiper-bundle.min.js" - -#################### default parameters ################################ -[params] -favicon = "img/favicon.ico" -# Meta data -description = "OpenStreetMap Deutschland" -author = "FOSSGIS e.V." -# search -search = false -copyright = "FOSSGIS e.V" - -# Preloader -[params.preloader] -enable = false -preloader = "" # use jpg, png, svg or gif format. - -# cookies -[params.cookies] -enable = false -expire_days = 2 - -############################# Main Menu ######################## -[[menu.main]] -name = "Startseite" -url = "/" -pre = '' -weight = 1 - -[[menu.main]] -name = "FAQ" -url = "faq/" -pre = '' -weight = 2 - -[[menu.main]] -name = "Karte" -url = "karte/" -pre = '' -weight = 3 - -[[menu.main]] -name = "Community" -url = "community/" -pre = '' -weight = 4 - -[[menu.main]] -name = "Spenden" -url = "spenden/" -pre = '' -weight = 5 - -[[menu.main]] -name = "Veranstaltungen" -url = "veranstaltungen/" -pre = '' -weight = 6 - diff --git a/content/_index.md b/content/_index.md index d43096a..fd0a1af 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,50 +1,78 @@ --- -title: "Die freie Weltkarte" -menu_title: "Startseite" +title: Die freie Weltkarte aliases: [/index.html] --- -## Was ist OpenStreetMap? - {{< weekly-osm >}} -[OpenStreetMap.org](https://www.openstreetmap.org/) ist ein im Jahre 2004 gegründetes internationales Projekt mit dem Ziel, eine freie Weltkarte zu erschaffen. Dafür sammeln wir weltweit Daten über Straßen, Eisenbahnen, Flüsse, Wälder, Häuser und vieles mehr. -[Mehr erfahren\...](faq#was-ist-openstreetmap) +# OpenStreetMap + +Die freie Weltkarte +{.subtitle} + +Willkommen auf den Webseiten von **OpenStreetMap Deutschland**. Hier wollen wir +OpenStreetMap und seine Community vorstellen und Hilfestellung bei der Nutzung +und beim Mitmachen geben. +{.intro} + +{{% rawhtml %}} + +
+ +
+ +## Das Projekt + +OpenStreetMap (OSM) ist ein internationales Projekt mit dem Ziel, eine freie +Weltkarte zu erschaffen. Dafür sammeln wir weltweit Daten über Straßen, Flüsse, +Wälder, Häuser, Restaurants und vieles mehr. Und stellen alles kostenlos und +frei zur Verfügung. + +Mehr über das [Projekt](/projekt/) erfahren +{.link-intern} + +
+ +
+ +## OpenStreetMap nutzen + +Es gibt ganz verschiedene Möglichkeiten die Karten, Dienste und Daten +des OpenStreetMap-Projekts zu nutzen. Viele Webseiten und Apps benutzen unsere +Daten. Aber alle Daten stehen auch zum Herunterladen frei zur Verfügung und +können damit vielfältig verwendet werden. -## Wie kann ich mitmachen? +OpenStreetMap [nutzen](/nutzen/) +{.link-intern} -Es gibt viele verschiedene Möglichkeiten zu OpenStreetMap beizutragen, -vom Melden kleiner Fehler in der Karte, über das Vervollständigen -bestehender Daten bis zum Abzeichnen neuer Gebäuden aus Luftbildern und -dem Erfassen von Wegen und interessanten Punkten mit dem GPS-Gerät. -Unsere Anleitungen helfen dir beim Benutzen der passenden Programme und -dem Eintragen von Daten. -[Mitmachen\...](faq#wie-kann-ich-mitmachen) +
+ +
-## Wie kann ich die Daten nutzen? +## Zu OSM beitragen -OpenStreetMap selbst bietet die gesammelten Daten entweder in Rohform -oder in Form vorberechneter Kartenbilder an. Für bestimmte Programme und -Geräte gibt es außerdem spezielle Downloads. -[Mehr erfahren\...](faq#wie-kann-ich-die-daten-nutzen) +Bei OpenStreetMap tragen tausende Menschen jeden Tag dazu bei, das Gebiet in +dem sie leben, arbeiten oder Urlaub machen, noch besser zu erfassen und aktuell +zu halten. Jede und jeder trägt bei, was sie können und was sie interessiert. +Auch Ihre Beiträge sind willkommen! -## Wo geht\'s zur Karte? -{{< open-map >}} +Zum OpenStreetMap-Projekt [beitragen](/beitragen/) +{.link-intern} -## Schaufenster +
+ +
-Mit den vielfältigen OpenStreetMap-Daten kann man viele tolle Sachen -machen. Im Folgenden findest du eine Auswahl der besten Karten und -Anwendungen. Da die Daten für jeden offen stehen, sind deiner eigenen -Kreativität keine Grenzen gesetzt. +## Die OSM-Community -{{< shop-window >}} +OpenStreetMap ist mehr als eine Karte. Es ist eine Community. Manche machen das +aus Spaß an der Sache, andere im Auftrag ihres Arbeitgebers. Aber sie alle arbeiten +auf vielfältige Art und Weise zusammen, um eine gemeinsame Karte zu erschaffen. -## Community +Die [OpenStreetMap-Community](/community/) +{.link-intern} -OpenStreetMap (OSM) wird ganz wesentlich durch seine Community geprägt. -Ohne die vielen Freiwilligen, die die Arbeit erledigen, wäre -OpenStreetMap nicht denkbar. Natürlich kann jeder auch „einfach so" -Geodaten sammeln und beitragen, aber zusammen macht es viel mehr Spaß. -[Zur Community...](community) +
+
+{{% /rawhtml %}} diff --git a/content/beitragen/_index.md b/content/beitragen/_index.md new file mode 100644 index 0000000..bf9b709 --- /dev/null +++ b/content/beitragen/_index.md @@ -0,0 +1,119 @@ +--- +title: Zu OpenStreetMap beitragen +--- + +# Beitragen + +OpenStreetMap lebt davon, dass viele Leute etwas beitragen. Dabei ist es egal, +ob Du das als Hobby machst oder von einer Organisation beauftragt bist. Die +verschiedenen besonderen Interessen und Sichten auf die Welt führen dazu, dass +wir gemeinsam die beste Karte der Welt erschaffen. + +{{% infobox %}} +Du willst eigentlich nicht groß beitragen, sondern nur einen **Fehler melden**? +Das ist auch ein wertvoller Beitrag. [**Hier erklären wir, wie das +geht**](/beitragen/fehler-melden/). +{{% /infobox %}} + +{{% rawhtml %}} + +
+ +
+ +## Zugang einrichten + +Als erstes brauchst Du einen OpenStreetMap-Zugang (*account*). + +[OSM-Zugang einrichten](/beitragen/osm-zugang/) +{.link-intern} + +
+ +
+ +## Grundlagen + +Dann solltest Du Dir ein paar OSM-Grundlagen anschauen: + +[OSM bearbeiten](/beitragen/bearbeiten/) +{.link-intern} + +[Wie die OSM-Daten aussehen](/beitragen/datenmodell/) +{.link-intern} + +[Die Tags](/beitragen/tags/) +{.link-intern} + +
+ +
+ +## Editoren + +Es gibt mehrere Editoren, über die man die OSM-Daten ändern kann. Der Editor +*iD* läuft im Browser und eignet sich gut für Einsteiger. Oder man +installiert den Editor *JOSM*, der mit vielen Erweiterungen dem Profi alle +Möglichkeiten gibt. + +Mehr zu diesen und weiteren [Editoren](/beitragen/editoren/) +{.link-intern} + +
+ +
+ +## Mit dem Smartphone + +Auch mit dem Smartphone kann man unterwegs „mal eben schnell“ zu OSM beitragen. +Zum Beispiel mit den Apps *StreetComplete* und *EveryDoor*. + +[Beitragen mit dem Smartphone](/beitragen/smartphone/) +{.link-intern} + +
+ + + +
+ +## Informationsquellen + +OSM ist ein unglaublich komplexes Gebilde geworden. Je nachdem, was man +eintragen will. Das OpenStreetMap Wiki enthält eine Fülle von Informationen, +nicht immer aktuell und nicht immer korrekt, aber für den ernsthaften Mapper +unverzichtbar. + +[Das OSM-Wiki](https://wiki.openstreetmap.org/) +{.link-extern} + +
+ +
+ +{{% /rawhtml %}} + +## Kontakt zur Community + +Früher oder später werden Fragen auftauchen, die auf diesen Webseiten nicht +beantwortet werden. Aber dafür haben wir die Community. Auch kann es sein, dass +Du mal was falsch machst oder irgendwo aneckst. Das passiert jedem mal, egal +ob Neuling oder erfahrenem Hasen. Da hilft es, mit anderen drüber zu reden +und Probleme gemeinsam zu lösen. + +[Die OSM-Community](/community/) +{.link-intern} + diff --git a/content/beitragen/bearbeiten.md b/content/beitragen/bearbeiten.md new file mode 100644 index 0000000..70f26c3 --- /dev/null +++ b/content/beitragen/bearbeiten.md @@ -0,0 +1,56 @@ +--- +title: Die OpenStreetMap-Daten bearbeiten (editieren) +--- + +# Bearbeiten (Editieren) + +Wenn Du bei OSM Daten bearbeitest, das heißt neue Objekte anlegst oder +bestehende Objekte änderst oder löschst, dann sind diese Änderungen nach dem +Abspeichern sofort weltweit aktiv! Auf manchen Karten werden sie innerhalb von +Minuten sichtbar, bei manchen dauert es wenige Tage bis mehrere Monate. + +Wir haben hier absichtlich keine Prüfung eingebaut, damit Du sofort das +Ergebnis sehen kannst. Das erfordert aber auch etwas Veranwortung von Dir. +Fange am besten mit kleineren Änderungen an und arbeite Dich langsam zu den +komplexeren Dingen hoch. + +## Änderungssätze (*changesets*) + +Jedesmal, wenn Du eine Änderung abspeicherst, wird ein sogenannter +Änderungsdatensatz (*changeset*) angelegt. Der enthält Deinen Usernamen, +einen Zeitstempel, wann die Änderung erfolgt ist. + +Du kannst auch einen Kommentar angeben, der Deine Änderungen beschreibt. Es ist +wichtig hier immer einen kurzen, aber möglichst treffenden Text anzugeben, weil +das anderen Mappern hilft, Deine Änderungen zu verstehen. Sowas wie +„Straßenverlauf in Hintertupfingen korrigiert“ oder „Mehrere Geschäfte in der +Innenstadt von München ergänzt.“ + +Kommentare für Änderungen innerhalb Deutschlands kannst Du ruhig auf Deutsch +verfassen. Wenn Du Änderungen in anderen Ländern vornimmst, dann solltest Du +die lokale Sprache verwenden. Und Englisch ist auch immer möglich. + +Mapper können Änderungssätze anderer Mapper kommentieren. Wirst eine Änderung +von Dir kommentiert, bekommst Du eine Nachricht und solltest antworten. Dieser +Mechanismus ist ganz wichtig für OSM, weil wir uns ja auf eine Sicht der Welt +einigen müssen. + +## Kontrolle anfordern (*review requested*) + +Bist Du Dir bei einer Änderung nicht so sicher, kannst Du im Editor beim +Abspeichern eine Kontrolle anfordern ("review requested"). Dann wird Dein +Changeset mit einem entsprechenden Hinweis versehen. + +Manche Mapper schauen sich solche Änderungen an und prüfen sie dann und melden +sich ggf. bei Dir. Das passiert allerdings nicht systematisch, es kann also +auch sein, dass sich niemand dieser Änderung annimmt. Die Änderung ist in jedem +Fall sofort in der OSM-Datenbank und eventuell auf Karten sichtbar, wie alle +Änderungen. + +## Die Historie (*history*) + +Alle Änderungen werden für immer gespeichert, mit der Information wer wann +diese Änderungen vorgenommen hat. Den Profis ist es damit möglich, alte +Versionen von allen Objekten zu sehen und auch wiederherzustellen, wenn — +absichtlich oder unabsichtlich — etwas kaputt gemacht wurde. + diff --git a/content/beitragen/datenmodell.md b/content/beitragen/datenmodell.md new file mode 100644 index 0000000..5e763ef --- /dev/null +++ b/content/beitragen/datenmodell.md @@ -0,0 +1,77 @@ +--- +title: Wie die OSM-Daten aussehen +--- + +# Wie die OSM-Daten aussehen (Datenmodell) + +Ganz unten bestehen die OSM-Daten aus „OSM-Objekten“. Jedes OSM-Objekt hat +eine eindeutigen numerische ID und sogenannte „Tags“, die angeben, was das +für ein Objekt ist. + +Bei OSM gibt es drei Arten von Objekten: + +{{% rawhtml %}} + +
+ +
+ +## Nodes + +Nodes (englisch für „Knotenpunkte“) sind Punkte auf der Welt. Sie haben einen +Längen- und einen Breitengrad. + +Nodes werden benutzt, um sogenannte Points of Interest zu mappen. Zum Beispiel +einen Briefkasten oder eine Ampel oder einen Baum. Alles, was so klein ist, +dass man die Ausdehnung des Objektes nicht braucht, oder wie die nicht so +wichtig ist. + +
+ +
+ +## Ways + +Ways (englisch für „Wege“) sind for linienförmige Objekte wie Straßen, Wege, +Bahnlinien, kleine Flüsse, und so weiter. Oder, wenn die Linie wieder zum +Anfangspunkt zurückführt, auch für flächenhafte Objekte, wie Gebäude, Wälder +oder Seen. + +Ways enthalten selbst keine Koordinaten, sie verweisen dazu auf die Nodes. +Hat man zwei Straßen, die sich kreuzen, benutzen sie einen gemeinsamen Node. +Dadurch erkennt man, dass hier eine Verbindung besteht. Geht eine Straße über +eine Brücke über einen Fluß hinweg, haben sie keinen gemeinsamen Node, gibt +es einen, dann ist da eine Furt. + +
+ +
+ +## Relations + +Mit Relations (englisch für „Verbindung“ oder „Zusammenhang“) kann man +komplexere Gebilde bauen. Relations werden zum beispiel benutzt, um Buslinien +oder ausgeschilderte Wanderwege einzutragen. Die häufigste Anwendung sind +sogenannte Multipolygon-Relationen (für Polygone mit mehreren Bestandteilen +und/oder Löchern, zum Beispiel ein Gebäude mit Innenhof) und Grenzen von +Ländern, Gemeinden und dergleichen. + +
+ +
+ +{{% /rawhtml %}} + +Je nach benutztem Editor wird mehr oder weniger davon vor Dir versteckt sein, +beziehungsweise anders dargestellt werden. Aber es hilft mit den Grundlagen und +Begriffen vertraut zu sein. Am Anfang solltest Du Dich eher an Nodes und Ways +halten, Relations sind schon etwas für Fortgeschrittene. + +## Weitere Informationen + +Mehr über [Tags](/beitragen/tags/) +{.link-intern} + +[Hinweise für GIS-Profis](/beitragen/für-gis-profis/) +{.link-intern} + diff --git a/content/beitragen/editoren.md b/content/beitragen/editoren.md new file mode 100644 index 0000000..e1035ea --- /dev/null +++ b/content/beitragen/editoren.md @@ -0,0 +1,54 @@ +--- +title: OSM-Editoren +--- + +# Editoren + +Um diese Anwendungen benutzen zu können, wird ein +[OSM-Zugang](/beitragen/osm-zugang/) gebraucht. + +## iD + +Der Editor *iD* ist einsteigerfreundlich und direkt ohne Installation nutzbar. +Gehe einfach auf [www.openstreetmap.org](https://www.openstreetmap.org/), +finden den Ort, den Du bearbeiten möchtest, und klicke links oben auf "Edit". + +[Einführung zum iD-Editor](https://learnosm.org/de/beginner/id-editor/) +{.link-extern} + +## JOSM + +Der mächtigste Editor ist der *JOSM*. Dieser in Java geschriebene Editor wird +seit 2005 stetig weiterentwickelt und kann mit seinem Plugin-System vielfältig +erweitert werden. Insbesondere wenn man mit Relations arbeiten will, ist dieser +Editor unverzichtbar. + +[JOSM-Webseite](https://josm.openstreetmap.de/) mit Download +{.link-extern} + +[Einführung zum JOSM-Editor](https://learnosm.org/de/josm/) +{.link-extern} + +## Mobile Editoren + +Einige Editoren gibt es als Apps für das Smartphone. Kleinere Änderungen kann +man besonders einfach mit *StreetComplete* und *EveryDoor* machen. *Vespucci* +ist ein voll ausgewachsener Editor. + +[Beitragen mit dem Smartphone](/beitragen/smartphone/) +{.link-intern} + +## Weitere Editoren + +Es gibt noch einige weitere Editoren, teilweise eher für Spezialfälle +gedacht. Hier ist eine Auswahl: + +[Potlatch](https://wiki.openstreetmap.org/wiki/Potlatch) +{.link-extern} + +[Merkaartor](https://wiki.openstreetmap.org/wiki/Merkaartor) +{.link-extern} + +[Level0](https://wiki.openstreetmap.org/wiki/Level0) +{.link-extern} + diff --git a/content/beitragen/fehler-melden.md b/content/beitragen/fehler-melden.md new file mode 100644 index 0000000..cf2c09b --- /dev/null +++ b/content/beitragen/fehler-melden.md @@ -0,0 +1,62 @@ +--- +title: Fehler in OSM melden +--- + +# Fehler oder fehlende Einträge melden + +Du hast einen Fehler in der Karte gefunden oder vermisst etwas? Beispielsweise +eine fehlende Straße, ein dauerhaft geschlossenes Geschäft, oder eine falsche +Hausnummer? Dann hilf mit die Daten zu verbessern! + +Wenn Du nicht [selber direkt am Projekt mitarbeiten](/beitragen/) willst, aber +den Freiwilligen einen Hinweis geben möchtest, dann kannst Du ein sogenannte +*Notiz* anlegen. Notizen sind öffentlich einsehbare Anmerkungen zur Karte. +Diese Anmerkungen können dann von den Freiwilligen des OpenStreetMap-Projektes +gelesen und berücksichtigt werden. + +Aber bitte beachten: Nur Fakten, die vor Ort für die Freiwilligen prüfbar sind, +solltest Du in den Notizen anführen. Außerdem garantiert eine Notiz keine +sofortige Umsetzung Ihres Hinweises, da ja erst einmal jemand von den +Freiwilligen des OpenStreetMap-Projekts Zeit haben muss die Lage vor Ort zu +prüfen und dann in den Daten umzusetzen. Trotzdem funktioniert das Notizsystem +überwiegend sehr gut bei der Behebung kleinerer Fehler und Unvollständigkeiten. + +## Welche Karte? + +Es gibt ganz verschiedene Karten, die von ganz verschiedenen Firmen, +Organisationen und Einzelpersonen auf Basis von OpenStreetMap-Daten betrieben +werden. Wir vom OpenStreetMap-Projekt haben keinen Einfluß darauf, was genau +auf dieser Karte erscheint und wie häufig sie aktualisiert wird. + +Bevor Du eine Notiz anlegst, solltest Du schauen, ob das Problem auch auf [der +Karte auf unserer internationalen +Projekthomepage](https://www.openstreetmap.org/) zu sehen ist. + +## Wie lege ich eine Notiz an? + +1. Gehe auf [die internationale Projekthomepage](https://www.openstreetmap.org/) und logge Dich ggf. mit Deinem OSM-Zugang ein. +2. Zoome auf die Stelle mit dem Fehler. +3. Auf der rechten Bildschirmseite siehst Du eine Werkzeugleiste. Klicke den zweiten Punkt von unten „Einen Hinweis/Fehler zu den Kartendaten melden“ an. +4. Verschiebe den neu aufgetauchten, blauen Marker in der Bildschirmmitte genau auf die Position des Fehlers. +5. Gib Deine Hinweise in der Textbox auf der linken Seite ein. +6. Drücke auf „Hinweis/Fehler melden““ und Du bist fertig. + +Es ist auch möglich ohne OSM-Zugang eine Notiz anonym anzulegen. Bei +Unklarheiten gibt es aber dann keine Möglichkeit nachzufragen, daher ist es +besser, wenn Du angemeldet bist. + +## Was passiert nach Anlegen der Notiz? + +Nach dem Anlegen einer Notiz schau bitte regelmäßig nach, ob die Notiz +bearbeitet werden konnte oder ob es vielleicht noch Rückfragen der Freiwilligen +gab. (Das geht natürlich nur, wenn Du die Notiz nicht anonym abgegeben hast.) + +## Die Notiz wurde bearbeitet, aber die Karte zeigt immernoch den alten Stand an! + +Es dauert eine Weile, bis die Online-Karte aus veränderten Daten neu gezeichnet +wird. Meist erscheinen die Änderungen innerhalb weniger Minuten, manchmal ein +paar Stunden, gelegentlich auch länger. Bei Karten oder Apps, die nicht direkt +von OpenStreetMap betrieben werden, sondern von Firmen, Organisationen und +Einzelpersonen, kann es bedeutend länger dauern. In diesem Fall musst Du Dich +für nähere Informationen direkt an die entsprechenden Betreiber wenden. + diff --git "a/content/beitragen/f\303\274r-gis-profis.md" "b/content/beitragen/f\303\274r-gis-profis.md" new file mode 100644 index 0000000..e255036 --- /dev/null +++ "b/content/beitragen/f\303\274r-gis-profis.md" @@ -0,0 +1,71 @@ +--- +title: Für GIS-Profis +--- + +# Hinweise für GIS-Profis + +Wenn Du mit den „üblichen“ GIS (Geographic Information System) vertraut bist, +dann wird Dir bei OSM einiges bekannt vorkommen, aber vieles ist auch mehr +oder wenig subtil anders. Das kann anfangs etwas verwirrend sein, aber dafür +gibt es diese Seite. + +## Feature + +Was der GISler „Feature” nennt, nennen wir „OSM-Objekt“. OSM-Objekte haben +immer eine eindeutige numerische ID. Für die verschiedenen Objektarten (Nodes, +Ways, Relations) gibt es getrennte ID-Räume, das heisst es gibt sowohl einen +Node mit der Nummer 17 als auch einen Way 17. + +## Layer + +OSM kennt keine Layers. Oder, anders gesehen, es gibt nur einen. GIS +unterscheidet typischweise zwischen dem Typ eines Features und den Attributen. +Der Typ wird durch den Layer bestimmt in dem das Feature ist. +Bei OSM wird sowohl der Typ als auch die Attribute durch die Tags bestimmt. + +## Attribute/Tags + +Die Attribute heißen bei OSM „Tags“ und sie haben keinen Typ wie im GIS. Alle +Tags bestehen aus einem „Key“ und einem „Value“, die beide Strings sind. In der +Praxis sind Keys immer Strings, Values sind häufig auch Integer oder +Boolean-Werte, werden aber immer in String-Form ausgedrückt. + +## Geometrien + +Vom GIS kennt man Geometrien mit verschiedenen Typen: Point, LineString, +Polygon, und deren Multi-Varianten. Das gibt es bei OSM nicht. + +Nur Nodes haben eine Geometrie, eine Punkt-Geometrie. Ways haben keine eigene +Geometrie sondern verweisen nur auf die Nodes. Damit kann man aber einen +LineString (und für geschlossene Wege auch ein Polygon) zusammenbauen. + +Relations sind noch komplexer und können, je nach Typ, zu allen möglichen +Geometrien zusammengebaut werden. + +## Knoten-Kanten-Modell + +In vieler Hinsicht ist das OSM-Datenmodell eher ein Knoten-Kanten-Graph, +wie man ihn für das Routing braucht. Das macht die Arbeit manchmal etwas +umständlich, aber man kann in diesem Modell den Unterschied zwischen einer +echten Verbindung und einer (zufälligen) Überlappung richtig abbilden. + +## Maßstab/Detail + +GIS-Profis erwarten bei Daten häufig, dass sie einen definierten Detailgrad +haben oder für einen bestimmten Maßstab gemacht sind. Bei OSM ist das nicht der +Fall. Daten werden mit mehr oder weniger Detail erfaßt und Positionen mit mehr +oder weniger Genauigkeit, je nachdem, was die Datenquelle (GPS, Luftbilder, +...) hergibt und wie wichtig die Genauigkeit ist. + +Generell ist die absolute Positionsgenauigkeit in OSM nicht so hoch. Sie ist +aber für das, was wir damit machen, auch nicht so wichtig, wie die relative +Genauigkeit. Es ist eben wichtiger, dass sich Gebäude und Straße nicht +überlappen, als dass die Lage auf den Zentimeter genau stimmt. + +## Konvertierung + +Es gibt verschiedene Programme, die OSM-Daten in GIS-Format transformieren +können. Dabei gehen aber immer Informationen verloren! Außer in ganz einfachen +Fällen, muss man diese Konvertierung entsprechend konfigurieren, damit man +die Daten sinnvoll herausbekommt. + diff --git a/content/beitragen/osm-zugang.md b/content/beitragen/osm-zugang.md new file mode 100644 index 0000000..0ba9ba7 --- /dev/null +++ b/content/beitragen/osm-zugang.md @@ -0,0 +1,86 @@ +--- +title: OSM-Zugang einrichten +--- + +# OSM-Zugang einrichten + +{{< rawhtml >}} +OSM-Account anlegen +{{< /rawhtml >}} + +Wenn Du bei OSM mitmachen willst oder im OSM-Forum eine Frage stellen willst, +dann brauchst Du einen OSM-Zugang. Das geht ganz einfach: + +Rufe die Webseite +[`https://www.openstreetmap.org/user/new`](https://www.openstreetmap.org/user/new) +auf und gebe Deine Mailadresse und einen frei gewählten Benutzernamen an. Der +Benutzernamen ist öffentlich und alle Deine Bearbeitungen der OSM-Daten werden +damit verbunden. Deine E-Mail-Adresse wird nicht weitergegeben, aber andere +Benutzer können Dir später an den Benutzernamen Nachrichten senden, die per +E-Mail an Dich weitergegeben werden. + +Du musst außerdem ein Password wählen, es muss mindestens 8 Zeichen lang sein. +Bitte benutze ein anderes Passwort als für andere Dienste. + +Du musst außerdem der OpenStreetMap-Teil­nehmer­verein­barung +(„Contributor Terms“) zustimmen. Dabei erklärst Du, dass Du auch die Rechte an +allen Deinen Beiträge hast bzw. das Recht hast, diese bei OSM einzutragen. + +Wenn Du das Formular abgeschickt hast, bekommst Du eine Bestätigungsmail mit +einem Link — rufe diesen Link auf. Dein Zugang ist nun eingerichtet. +Du bist nun ein „Mapper“. + +Wenn Du willst, kannst Du Deinen Heimatort in der Karte anklicken, damit andere +sehen können, wer in der Nähe aktiv ist. + +[Neuen OSM-Zugang einrichten](https://www.openstreetmap.org/user/new) +{.link-extern} + +[Deutsche Version der +Teilnehmervereinbarung](https://osmfoundation.org/wiki/Licence/Contributor_Terms/DE) +{.link-extern} + +[Offizielle Nutzungsbedingungen — *Terms of Use*](https://osmfoundation.org/wiki/Terms_of_Use) (auf Englisch) +{.link-extern} + +[Wiki-Seite „OpenStreetMap Account“](https://wiki.openstreetmap.org/wiki/OpenStreetMap_account) mit weiteren Anleitungen +{.link-extern} + +## Kann ich auch mehrere Zugänge einrichten? + +Ja, Du kannst Dir mehrere Zugänge unter verschiedenen Benutzernamen einrichten. +Das ist zum Beispiel sinnvoll, wenn Du die Änderungen, die Du privat machst, +von denen trennen willst, die Du für die Arbeit machst. + +Alle Änderungen sind öffentlich mit Deinem Zugang verknüpft. Das erlaubt dann +schon gewisse Einblicke in Dein Leben. Auch daher haben manche getrennte +Zugänge. + +Das ist aber kein Freibrief, sich viele Zugänge einzurichten, um andere zu +täuschen oder Sperren zu umgehen. + +## Was ist wenn ich meinen Zugang wieder löschen will? + +Du kannst Dich einloggen und den Zugang selbst löschen. Bestimmte Daten +bleiben dabei aber notwendigerweise erhalten, insbesondere bleiben Deine +Änderungen an den OSM-Daten natürlich in der Datenbank. + +Dazu gehst Du auf die [Einstellungsseite für Deinen +Zugang](https://www.openstreetmap.org/account/edit) und klickst rechts unten +auf *Delete Account...*. + +## Was müssen Organisationen beachten? + +Grundsätzlich sollten Zugänge immer einer bestimmten Person zugeordnet werden, +nicht einer Organisation. Jede und jeder in der Organisation sollte einen +eigenen Zugang haben. + +Bei Zugängen, die nicht privat mappen, sondern für eine Organisation, sollte im +Profil vermerkt werden, für wen man aktiv ist. Weitere Details zu den +Anforderungen gibt es in den Richtlinien für organisiertes Editieren (Organised +Editing Guidelines). + +[Organised Editing +Guidelines](https://osmfoundation.org/wiki/Organised_Editing_Guidelines) (engl.) +{.link-extern} + diff --git a/content/beitragen/smartphone/_index.md b/content/beitragen/smartphone/_index.md new file mode 100644 index 0000000..6b9b728 --- /dev/null +++ b/content/beitragen/smartphone/_index.md @@ -0,0 +1,56 @@ +--- +title: Beitragen mit dem Smartphone +--- + +# Beitragen mit dem Smartphone + +Es gibt viele Möglichkeiten bei OSM beizutragen. Auch direkt mit dem Smartphone +von unterwegs. Die Apps mögen vielleicht nicht so viel können wie die [Editoren +für den Desktop](/beitragen/editoren), aber dafür kann man viel schneller und +einfacher die vielen Kleinigkeiten eintragen und aktualisieren, die OSM so +interessant machen. + +Um diese Apps benutzen zu können, wird ein [OSM-Zugang](/beitragen/osm-zugang/) +gebraucht. + +## StreetComplete + +{{< rawhtml >}} +StreetComplete +{{< /rawhtml >}} + +Mit der App *StreetComplete* für Android kann man auf einfachste Art und Weise +unterwegs zu OSM beitragen. Sie zeigt eine Karte der Umgebung mit markierten +Punkten hinter denen sich jeweils eine Frage verbirgt. Zum Beispiel: "Was sind +die Öffnungszeiten dieses Restaurants?" oder "Gibt es an dieser Straße einen +Fußweg?". So kann man einfach mal nebenher etwas kleines zu OSM beitragen. + +[StreetComplete](https://streetcomplete.app/) +{.link-extern} + +## EveryDoor + +{{< rawhtml >}} +EveryDoor +{{< /rawhtml >}} + +*EveryDoor* ist eine Android App, die vorallem das Eintragen und Aktualisieren +von POIs (Points of Interest), wie Restaurants, Geschäfte, Parkbänke usw. +vereinfacht. Sie ist für das schnelle Mappen zwischendurch prima geeignet. + +[Every Door im OSM-Wiki](https://wiki.openstreetmap.org/wiki/Every_Door) +{.link-extern} + +## Vespucci + +{{< rawhtml >}} +Vespucci +{{< /rawhtml >}} + +Vespucci ist ein OSM-Editor für Android. Anders als andere hier vorgestellte +Apps hat er das Ziel ein Editor für alle Anwendungen zu sein. Im Vergleich +mit Desktop-Editoren gibt es aber natürlich schon einige Einschränkungen. + +[Vespucci-Webseite](https://vespucci.io/) +{.link-extern} + diff --git a/content/beitragen/tags.md b/content/beitragen/tags.md new file mode 100644 index 0000000..3edee64 --- /dev/null +++ b/content/beitragen/tags.md @@ -0,0 +1,57 @@ +--- +title: Tags in OpenStreetMap +--- + +# Tags in OSM + +Jedem [Objekt](/beitragen/datenmodell/), das in OSM eingetragen wird, können +sogenannte „Tags“ (Kennzeichnungen) zugewiesen werden. Durch jeden Tag werden +die Eigenschaften eines OSM-Objekts genauer beschrieben. Arbeitet man mit +modernen Bearbeitungsprogrammen (Editoren), werden häufig nicht alle Tags +angezeigt, sondern man wählt aus einem Menü aus, um was für ein Objekt es sich +handelt und was für Attribute es haben soll. Aber hinter den Kulissen spielen +Tags eine große Rolle, weshalb der Begriff und die Funktionen dahinter bekannt +sein sollten. + +Tags haben immer das Format „Schlüssel=Wert“ (*key=value*). + +Hier sind ein paar typische Tags: + +* Ein Briefkasten wird als `amenity=post_box` eingetragen. +* Ein Restaurant ist ein `amenity=restaurant`. Der Name ist dann vielleicht + `name=Hirschen`. +* Eine Straße könnte diese Tags haben: `highway=primary` (die Klassifizierung + `primary` wird für eine wichtige Durchgangssstraße verwendet, vielleicht eine + Bundesstraße.), `name=Schillerstraße`, `ref=B 31` (die Bezeichnung der Straße, + hier die Bundesstraße 31), `oneway=yes` (weil es eine Einbahnstraße ist), + `maxspeed=30` (man darf nur 30km/h fahren). + +## Dokumentation + +Tags werden im OSM-Wiki dokumentiert. Wie bei allem im Wiki muss man immer +etwas Vorsicht walten lassen. Nicht immer ist die Dokumentation korrekt und +aktuell. Manchmal hängt auch die deutsche Übersetzung der Beschreibung etwas +hinterher. + +[Map Features](https://wiki.openstreetmap.org/wiki/Map_features) ist eine +riesige Liste mit vielen (aber nicht allen) dieser Tags +{.link-extern} + +Bei [Taginfo](https://taginfo.openstreetmap.org/) kann man alle möglichen +Informationen über Tags abrufen, nach Tags suchen und vieles mehr +{.link-extern} + +## Tags „erfinden“ + +Grundsätzlich ist es jeder und jedem möglich einfach einen neuen Tag zu +„erfinden“. Technisch gibt es da keine Einschränkungen. Man sollte aber schon +etwas Erfahrung haben, um so etwas zu machen. Meistens erfindet man aber nicht +einfach so einen neuen Tag, sondern diskutiert das mit der Community und +durchläuft einen Abstimmungsprozeß. + +[Community-Forum](https://community.openstreetmap.org/) +{.link-extern} + +[Tagging-Mailingliste](https://lists.openstreetmap.org/listinfo/tagging) +{.link-extern} + diff --git a/content/community.md b/content/community.md deleted file mode 100644 index 3e9dadf..0000000 --- a/content/community.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: "Community" -menu_title: "Community" -aliases: [/community.html] ---- - -# Community - -{{< weekly-osm >}} - -OpenStreetMap (OSM) wird ganz wesentlich durch seine Community geprägt. Ohne die vielen Freiwilligen, die die Arbeit erledigen, wäre OpenStreetMap nicht denkbar. Natürlich kann jeder auch „einfach so“ Geodaten sammeln und beitragen, aber zusammen macht es viel mehr Spaß. - -## Wiki - -Das [OpenStreetMap-Wiki](https://wiki.openstreetmap.org/wiki/Hauptseite) enthält eine Fülle von Informationen, allerdings sind sie nicht immer leicht zu finden, und vieles ist auch nur auf Englisch. - -* [Deutsche Hauptseite](https://wiki.openstreetmap.org/wiki/Hauptseite) -* [Englische Hauptseite](https://wiki.openstreetmap.org/) - -![Wiki](/img/osm_logo_wiki.png) - -Das Wiki kann von jedem geändert werden, Du musst Dir dazu allerdings einen [Wiki-Login](https://wiki.openstreetmap.org/w/index.php?title=Special:UserLogin&returnto=Hauptseite) zulegen. Wenn Du Lust hast, etwas beizutragen, aber nicht weißt, wo Du anfangen sollst: Wir brauchen immer Leute, die englischsprachige Wiki-Seiten ins Deutsche übersetzen. - -## FOSSGIS/OSM-Konferenz - -FOSSGIS steht für Freie und Open Source Software für Geoinformationssysteme. Die FOSSGIS-Konferenz ist die führende Konferenz zu diesem Thema im deutschsprachigen Raum und wird vom gemeinnützigen Verein [FOSSGIS e.V](https://www.fossgis.de/), der [OpenStreetMap Community](https://www.openstreetmap.de/) und der [Open Source Geospatial Foundation (OSGeo)](https://www.osgeo.org/) organisiert. - -Jedes Jahr reist die Konferenz zu einem anderen Standort. Dabei unterstützt das Lokal Team der jeweils veranstaltenden Hochschule die Umsetzung. Wir bringen damit die Themen FOSSGIS und OpenStreetMap im gesamten deutschsprachigen Raum auf die Agenda und setzen am Veranstaltungsort besondere Akzente. -Weitere Informationen: https://fossgis-konferenz.de/ - -## Foren - -OpenStreetMap bietet unter [community.openstreetmap.org](https://community.openstreetmap.org/) mehrere Webforen an, darunter auch ein [deutschsprachiges Forum](https://community.openstreetmap.org/c/communities/de/56). - -Für GeoCacher bietet sich das OSM-Forum auf [geoclub.de](https://www.geoclub.de/forum/f/openstreetmap.70/) an. Und für Freunde der mobilen Navigation das Forum auf [pocketnavigation.de](https://forum.pocketnavigation.de/). - - -## Chat - -Das OpenStreetMap-Projekt betreibt einen Matrix-Kanal auf Deutsch: - -https://matrix.to/#/#osm-de:matrix.org - -Weiter gibt es einen aktiven Telegram-Kanal: [https://t.me/OSM_de](https://t.me/OSM_de) - - -## Lokale Gruppen - -In einigen Städten und Regionen sind lokale Gruppen entstanden, die sich mehr oder weniger regelmäßig treffen. Die Gruppen sind informell, die Treffen sind öffentlich, jeder kann vorbei kommen. Eine ideale Möglichkeit, erfahrene Mapper zu treffen und vielleicht auch gemeinsame Mapping-Aktionen zu starten. - -![Forum](/img/karte-dach.png) - -Die lokalen Gruppen sind im Wiki [zu finden](https://wiki.openstreetmap.org/wiki/Category:Lokale_Gruppe). (Deine lokale Gruppe fehlt in der Liste? Lege eine Infoseite im Wiki an und baue dort das Template [Lokale Gruppe](https://wiki.openstreetmap.org/wiki/Template:User_group) ein.) - -Im Wiki gibt es auch eine Liste mit Städten in Deutschland. - -## Mapping Parties - -Die Community trifft sich immer mal wieder zu sogenannten Mapping Weekends oder Mapping Parties, nicht nur in Deutschland. Meistens übernimmt eine lokale Gruppe die Organisation. Die Veranstaltungen werden auf der [Mailingliste](https://lists.openstreetmap.de/mailman/listinfo) und im [Terminkalender](https://wiki.openstreetmap.org/wiki/Current_events) angekündigt. - -Mapping Parties dauern mal einen Tag, mal aber auch ein verlängertes Wochenende. Man trifft sich, um gemeinsam Daten für OpenStreetMap in einem Bereich zu sammeln und einzutragen. Meist verbringt man einen Teil der Zeit draußen zum Datensammeln, einen Teil am Rechner, um die Daten einzutragen, und einen Teil in der Kneipe, um sich für die getane Arbeit zu belohnen. - -## Der FOSSGIS e.V. - -Um bei OpenStreetMap mitzumachen, braucht man nicht Mitglied in einem Verein zu sein. Für manche Aufgaben ist es aber sinnvoll, eine Organisation in der Hinterhand zu haben, zum Beispiel wenn es um Geld geht oder wenn man einen Ansprechpartner für Behörden braucht. Für solche Fälle haben wir den [FOSSGIS e.V.](https://www.fossgis.de/), einen gemeinnützigen Verein, der sich für freie Software im Geo-Bereich und für freie Geodaten einsetzt. Viele Open-Source-Projekte, die in einer ähnlichen Situation wie OSM sind, haben sich hier ebenfalls zusammengeschlossen. - -Auch ohne Mitglied zu sein, kann jeder sich im FOSSGIS e.V. engagieren. Wir freuen uns aber auch über neue Mitglieder! diff --git a/content/community/_index.md b/content/community/_index.md new file mode 100644 index 0000000..dda4091 --- /dev/null +++ b/content/community/_index.md @@ -0,0 +1,175 @@ +--- +title: OSM-Community +aliases: [/community.html] +--- + +# Die OSM-Community + +OpenStreetMap ist nicht nur eine Datenbank oder eine Karte. Es ist eine +Gemeinschaft von vielen Leuten, die zu OSM beitragen oder OSM nutzen. Das +Projekt und diese Gemeinschaft ändern sich ständig mit jeder neuen Idee und +jeder neuen Herausforderung. Ohne den Austausch untereinander wäre das Projekt +nicht, was es ist. + +[Bei OSM mitmachen](/community/mitmachen/) +{.link-intern} + +[Umgang mit Vandalismus](/community/vandalismus/) +{.link-intern} + +## Community-Forum + +Der erste Anlaufpunkt für den Kontakt zu den Mapper-Kollegen ist unsere +Community-Forum unter +[community.openstreetmap.org](https://community.openstreetmap.org/). Dort +findet man Diskussionsforen zu allen möglichen Themen, kann Fragen stellen und +mit anderen über OSM-Themen diskutieren. + +In vielen Foren wird die englische Sprache verwendet, schließlich ist OSM ein +internationales Projekt. Aber es gibt auch Foren in vielen anderen +Sprachen. Im [deutschsprachigen +Forum](https://community.openstreetmap.org/c/communities/de/56) sind sehr +viele aktive Mapper unterwegs und Fragen werden dort in aller Regel schnell +beantwortet. + +Um im Community-Forum zu schreiben, brauchst Du einen +[OSM-Zugang](/beitragen/osm-zugang/). + +[Diese Anleitung für neue User +](https://community.openstreetmap.org/t/osm-forum-auf-discourse-tipps-und-tricks-fur-neue-user/3264) +hilft Dir, Dich im Forum zurechtzufinden. +{.link-extern} + +## Die OSM-Plattform + +Auf der [OSM-Plattform](https://www.openstreetmap.org/) haben alle Beitragenden +einen [Zugang](/beitragen/osm-zugang/). Hier gibt es verschiedene Möglichkeiten +mit anderen Beitragenden in Kontakt zu kommen. + +Jeder Beitragende hat unter ```https://www.openstreetmap.org/user/```*USERNAME* +eine **persönliche Seite**, auf der man **direkte Nachrichten** mit anderen +Mappern austauschen kann. Hier kannst Du ein **Tagebuch** („diary“) führen oder +die Tagebuch-Einträge anderer kommentieren. + +Alle Änderungen an den OSM-Daten werden in **Anderungssätzen** (Changesets) +zusammengefasst. Jeder Änderungssatz ist mit Eurem Benutzernamen versehen. +Jede und jeder kann solche Änderungssätze kommentieren. Dadurch kommt ein +wichtiger Ausstausch zustande, wenn es mal Unklarheiten geben sollte oder +verschiedene Meinungen, wie etwas in die Daten einzutragen ist. + +{{% infobox %}} + +{{< rawhtml >}} + Zum Veranstaltungskalender +{{< /rawhtml >}} + +## Veranstaltungen + +{{< rawhtml >}} +SotM 2019 Gruppenfoto +{{< /rawhtml >}} + +Die OSM-Community organisiert diverse Veranstaltungen oder beteiligt sich an +welchen. Aktuelles dazu gibts im [Kalender](/veranstaltungen/). In manchen +Städten treffen sich [lokale Gruppen]() zu mehr oder weniger regelmäßigen +**Stammtischen**. Auf der [Karte](/karte/) kann man sich die Stammtische +anzeigen lassen. + +Mehrmals im Jahr gibt es **Hacking Weekends** in [Karlsruhe und +Berlin](https://wiki.openstreetmap.org/wiki/Hackathon). +Dort treffen sich vorallem Software-Entwickler aus dem OSM-Umfeld. Manchmal +werden auch **Mapping Parties** oder **Mapathons** veranstaltet, bei denen wir +gemeinsam OSM-Daten beitragen. Im FOSSGIS-Verein Aktive treffen sich mehrmals +im Jahr in Essen zum +[**Community-Treffen**](https://www.fossgis.de/wiki/FOSSGIS_Hacking_Events). + +Darüber hinaus ist OSM manchmal mit Ständen oder Vorträgen auf anderen +Veranstaltungen vertreten. + +Einmal im Jahr findet die [**FOSSGIS-Konferenz**](https://fossgis-konferenz.de/) +statt, immer an wechselnden Orten in Deutschland, Österreich oder der Schweiz. +Hier ist OpenStreetMap immer ein großes Thema und es gibt Vorträge dazu. +einige Jahren hat es sich der **OSM-Samstag** nach der Konferenz als Treffen +der Community etabliert. + +Auch in anderen Ländern gibt es mehr oder weniger regelmäßig +OSM-Veranstaltungen. Die [**State of the Map**](https://stateofthemap.org/) ist +unsere jährliche internationale Veranstaltung, auf der sich die weltweite +Community trifft. In manchen Jahren gibt es auch eine [**State of the Map +Europe**](https://stateofthemap.eu/). + +{{% /infobox %}} + +## Das OpenStreetMap-Wiki + +{{< rawhtml >}} + +{{< /rawhtml >}} + +Im [OpenStreetMap-Wiki](https://wiki.openstreetmap.org/wiki/Hauptseite) +dokumentieren wir alles, was so mit OSM zu tun hat. Vieles dort ist so ein +bischen unaufgeräumt und teilweise auch veraltet, aber es gibt viele +Informationen nur dort. + +[Deutsche Startseite](https://wiki.openstreetmap.org/wiki/Hauptseite) des Wikis +{.link-extern} + +[Englische Startseite](https://wiki.openstreetmap.org/) des Wikis +{.link-extern} + +Das Wiki kann von jedem geändert werden, Du musst Dir dazu allerdings einen +speziellen +[Wiki-Login](https://wiki.openstreetmap.org/w/index.php?title=Special:UserLogin&returnto=Hauptseite) +zulegen. (Der normale OSM-Zugang funktioniert dort nicht.) Wenn Du Lust hast, +etwas beizutragen, aber nicht weißt, wo Du anfangen sollst: Wir brauchen immer +Leute, die helfen englischsprachige Wiki-Seiten ins Deutsche zu übersetzen bzw. +die Übersetzungen zu aktualisieren. + +## Lokale Treffen + +In mehrere Städten und Gegenden in Deutschland gibt es mehr oder weniger +regelmäßige Treffen und Stammtische. + +Mehr zu [lokalen Treffen](/community/lokale-treffen/) +{.link-intern} + +## Online Chat + +Für die schnelle Frage zwischendurch eignet sich der deutschsprachige +Matrix-Kanal [#osm-de:matrix.org](https://matrix.to/#/#osm-de:matrix.org). + +Weiter gibt es einen aktiven Telegram-Kanal: +[https://t.me/OSM_de](https://t.me/OSM_de) + +## Der FOSSGIS e.V. + +{{< rawhtml >}} + +{{< /rawhtml >}} + +Um bei OpenStreetMap mitzumachen, braucht man nicht Mitglied in einem Verein zu +sein. Für manche Aufgaben ist es aber sinnvoll, eine Organisation in der +Hinterhand zu haben, zum Beispiel wenn es um Geld geht oder wenn man einen +Ansprechpartner für Behörden braucht. In Deutschland gibt es dafür den FOSSGIS +e.V., einen gemeinnützigen Verein, der sich für freie Software im Geo-Bereich +und für freie Geodaten einsetzt. Der FOSSGIS ist auch der nationale Vertreter +(„local chapter“) der OpenStreetMap Foundation in Deutschland. + +Der FOSSGIS betreibt auch diese Webseiten und stellt verschiedene Dienste +für die OSM-Community zur Verfügung. + +Wenn Du unsere Arbeit unterstützen willst oder selbst aktiv werden willst, +dann werden doch Mitglied im FOSSGIS! + +Zum [FOSSGIS e.V.](https://www.fossgis.de/) +{.link-extern} + +Zur [OpenStreetMap Foundation](https://osmfoundation.org/) +{.link-extern} + +[OSM in anderen Ländern](/community/andere-länder/) +{.link-intern} + +[Fördermöglichkeiten für OSM-Projekte](/community/fördermöglichkeiten/) +{.link-intern} + diff --git "a/content/community/andere-l\303\244nder.md" "b/content/community/andere-l\303\244nder.md" new file mode 100644 index 0000000..6e5e616 --- /dev/null +++ "b/content/community/andere-l\303\244nder.md" @@ -0,0 +1,21 @@ +--- +title: Community in anderen Ländern +--- + +# Community in anderen Ländern + +Auch in anderen Ländern gibt es lokale OSM-Vertretungen. Hier sind einige +unserer Nachbarländer: + +* [Belgien](https://openstreetmap.be/en/) +* [Frankreich](https://www.openstreetmap.fr/) +* [Niederlande](https://openstreetmap.nl/) +* [Polen](https://openstreetmap.org.pl/) +* [Schweiz](https://openstreetmap.ch/) +* [Tschechien](https://openstreetmap.cz/) +* [Österreich](https://www.openstreetmap.at/) + +[Liste aller Lokalvertretungen (*local +chapters*)](https://osmfoundation.org/wiki/Local_Chapters) bei der OSMF +{.link-extern} + diff --git a/content/community/data-working-group.md b/content/community/data-working-group.md new file mode 100644 index 0000000..9b2b716 --- /dev/null +++ b/content/community/data-working-group.md @@ -0,0 +1,42 @@ +--- +title: Die Data Working Group (DWG) +--- + +## Die Data Working Group (DWG) + +Die Data Working Group kümmert sich um Copyright-Verletzungen und Vandalismus, +und sie schreitet auch ein, wenn es Konflikte gibt, die die Community nicht +selbst lösen kann. Sie versucht dann zu moderieren, damit eine gemeinsame +Lösung gefunden werden kann, die für alle funktioniert. Sie kann aber auch +Änderungen rückgängig machen, Benutzende ermahnen oder notfalls auch sperren. + +Alle Mitglieder der DWG sind erfahrene Mapper, die ihre Arbeit ehrenamtlich +machen. Sie hat Mitglieder aus verschiedenen Ländern, auch aus Deutschland, die +die Sprache sprechen und sich mit der Community vor Ort auskennen. + +Sie sollte nur involviert werden, wenn es nicht anders geht. Versucht Konflikte +erstmal selbst zu lösen! + +## Sanktionen + +Die DWG kann Zugänge zu OSM vorübergehend oder dauerhaft sperren und andere +Sanktionen ergreifen, zum Beispiel Postings in Foren löschen. + +## Kontakt + +Die Data Working Group könnt ihr per E-Mail an +[data@openstreetmap.org](mailto:data@openstreetmap.org) erreichen. + +Mehr über die Arbeit der DWG auf der Seite der OSM Foundation zur +[Data Working Group (DWG)](https://osmfoundation.org/wiki/Data_Working_Group) +{.link-extern} + +{{% infobox %}} + +Übrigens: Die Data Working Group kann immer Hilfe gebrauchen. Ein bischen +Erfahrung mit OSM gehört schon dazu, man sollte die Kultur bei OSM kennen +und ein bischen Fingerspitzengefühl im Umgang mit einer Community von +Freiwilligen haben. + +{{% /infobox %}} + diff --git "a/content/community/f\303\266rderm\303\266glichkeiten.md" "b/content/community/f\303\266rderm\303\266glichkeiten.md" new file mode 100644 index 0000000..03ad069 --- /dev/null +++ "b/content/community/f\303\266rderm\303\266glichkeiten.md" @@ -0,0 +1,122 @@ +--- +title: Fördermöglichkeiten für OSM-Projekte +--- + +# Fördermöglichkeiten für OSM-Projekte + +Aus der Community heraus entstehen immer wieder Ideen für Projekte, die +manchmal auch etwas Geld brauchen. + +Es gibt viele verschiedene Möglichkeiten an finanzielle Förderungen für +OSM-Projekte zu kommen. Je nach der Organisation, die die Gelder vergibt, nach +Förderschwerpunkten und der Höhe der Förderungen ist mit mehr oder weniger +Aufwand bei der Beantragung von Geldern zu rechnen. + +Bei Fragen zu Förderungen oder auch Anregungen zu den Informationen auf dieser +Seite könnt ihr Euch gerne per E-Mail unter info@openstreetmap.de an uns +wenden. Wir können Euch ggf. auch mit Leuten zusammenbringen, die schon +gefördert wurden und Euch vielleicht ein paar Fragen „aus der Praxis“ +beantworten können. + +Scheut Euch nicht bei uns oder den Förderorganisationen anzufragen, wenn ihr +über eine Förderung nachdenkt. Förderbedingungen werden häufig weiter ausgelegt +als man denkt. Die Organisationen *wollen* das Geld unter die Leute bringen, +dafür sind sie da. + +Die folgenden Organisationen fördern OpenStreetMap-Projekte in der einen oder +anderen Weise. Das ist nur ein Ausschnitt, gerade für größere Projekte im +akademischen und kommerziellen Bereich gibt es noch weitere potentielle +Fördermöglichkeiten. + +## FOSSGIS e.V. + +Der [FOSSGIS e.V.](https://www.fossgis.de/) ist die offizielle Vertretung des +OpenStreetMap-Projektes in Deutschland. Wir fördern unbürokratisch kleinere +Projekte mit drei- bis zu kleineren vierstelligen Beträgen. Gefördert werden +zum Beispiel Community-Veranstaltungen oder Reisekosten für Mapper, die die OSM +auf Veranstaltungen präsentieren. Wir zahlen auch Serverkosten für interessante +Community-Projekte, teilweise auch über Jahre hinweg. Aber auch viele andere +Förderungen sind denkbar. + +Anträge können jederzeit eingereicht werden, die Bearbeitung dauart in der +Regel ein paar Wochen bis zu zwei Monate. Von Antragstellern wird in der Regel +erwartet, dass sie ihr Projekt der Community vorstellen und es mit den +FOSSGIS-Mitgliedern diskutieren. Anträge können von jeder und jedem eingereicht +werden, eine Mitgliedschaft im FOSSGIS e.V. ist ausdrücklich nicht +erforderlich. + +Mehr Informationen gibt es auf den [Webseiten des +FOSSGIS](https://www.fossgis.de/f%C3%B6rderungen/) +{.link-extern} + +Eine Liste bereits geförderter Projekte gibt es [im Wiki des +FOSSGIS](https://www.fossgis.de/wiki/F%C3%B6rderantr%C3%A4ge) +{.link-extern} + +## OSM Foundation + +Die [OpenStreetMap Foundation](https://osmfoundation.org/) ist die offizielle +Vertretung des weltweiten OpenStreetMap-Projekts. Sie unterstützt das Projekt +auf vielfältige Art- und Weise. + +Es gibt aber derzeit kein strukturiertes Förderprogramm, für das man sich +bewerben kann. + +## Prototype Fund + +Der [Prototype Fund](https://prototypefund.de/) fördert Open-Source-Projekte +von Einzelpersonen oder Gruppen aus Deutschland. Wie der Name schon sagt, geht +es dabei vorallem um neue Projekte oder um neue Entwicklungen in bestehenden +Projekten. Gezahlt werden bis zu 47.500 EUR pro Projekt. + +Der Förderzeitraum beträgt immer ein halbes Jahr (September bis Februar bzw. +März bis August). Zweimal im Jahr gibt es eine Antragsfrist für den kommenden +Förderzeitraum. Der Antrag ist nicht schwierig, aber man muss schon sein +konkretes Projekt klar beschreiben können. + +Die Förderung kommt letztlich vom Bundesministerium für Bildung und Forschung. +Der Prototype Fund hilft bei der Bürokratie. + +Bereits geförderte Projekte sind unter Anderem [Generalisierung von +OpenStreetMap-Daten mit +osm2pgsql](https://prototypefund.de/project/generalisierung-von-openstreetmap-daten-mit-osm2pgsql/), +[Parkraumdaten aus OpenStreetMap - Prozessierung und +Visualisierung](https://prototypefund.de/project/parkraumdaten-aus-openstreetmap-prozessierung-und-visualisierung/), +[StreetComplete](https://prototypefund.de/project/streetcomplete/), und +[Grandine](https://prototypefund.de/project/grandine/). + +## NGI Zero + +Die europäische Initiative [Next Generation Internet (NGI) +Zero](https://www.ngi.eu/ngi-projects/ngi-zero/) fördert Open-Source-Projekte, +die helfen die Zukunft des Internets als offene Platform zu sichern. + +Es gibt mehrere Förderprogramme mit leicht unterschiedlichem Fokus. Anträge +können zweimal pro Jahr eingereicht werden, Förderungen reichen von wenigen +Monaten bis zu Jahren. + +Bereits geförderte Projekte sind unter Anderem +[Nominatim](https://nominatim.org/), [MapComplete](https://mapcomplete.org/), +[Protomaps](https://protomaps.com/), +[StreetComplete](https://streetcomplete.app/), und +[uMap](https://umap-project.org/). + +## Wikimedia Deutschland e.V. + +[Wikimedia Deutschland](https://www.wikimedia.de/) ist der deutsche Ableger der +Wikimedia Foundation, die hinter der Wikipedia und deren Schwesterprojekten +steht. Wikimedia Deutschland hat ein spezielles Förderprogramm für +OpenStreetMap-Projekte oder Projekte an der Schnittstelle zwischen OSM und den +Wikimedia-Projekten. + +Gefördert werden zum Beispiel die Bereitstellung von Technik oder die +Durchführung von Veranstaltungen. Anträge können jederzeit gestellt werden. + +Weitere Informationen gibt es [in der +Wikipedia](https://de.wikipedia.org/wiki/Wikipedia:F%C3%B6rderung/OpenStreetMap) +{.link-extern} + +Bereits geförderte Projekte: +[Elbe-Labe-Meetings](https://wiki.openstreetmap.org/wiki/Elbe-Labe-Meeting) +{.link-extern} + diff --git a/content/community/konflikte.md b/content/community/konflikte.md new file mode 100644 index 0000000..1a58277 --- /dev/null +++ b/content/community/konflikte.md @@ -0,0 +1,57 @@ +--- +title: Wie wir mit Konflikten umgehen +--- + +# Wie wir mit Konflikten umgehen + +Natürlich kann es immer mal wieder passieren, dass es verschiedene Meinungen +gibt, ob und wie etwas bei OSM einzutragen ist. Oder es wird mal etwas „laut“ +in einer Diskussion im Forum. Wir sind alle Menschen, da kann sowas schon +vorkommen. Das Wichtigste ist: Ruhe bewahren, tief durchatmen, Finger erstmal +weg von der Tastatur. Und vielleicht mal alles bis zum nächsten Tag ruhen +lassen. Dann die Nachricht nochmal lesen oder die Datenänderung nochmal +anschauen. Und nochmal drüber nachdenken, was der andere wohl gemeint haben +könnte oder erreichen wollte. Vielleicht hat er sich ja nur schlecht +ausgedrückt oder die Daten ausversehen kaputt gemacht. Meist ist da kein +böser Wille, sondern nur eine andere Sicht der Dinge. + +## Persönliche Nachrichten + +Jeder Beitragende kann über die OSM-Plattform persönliche Nachrichten an andere +Beitragende schreiben. Das ist ein guter Weg, wenn man jemand anderes auf einen +kleinen Fehler hinweisen will (oder einfach mal jemandem Danke für seine Arbeit +sagen will). + +Die Erfahrung zeigt aber, dass es bei Konflikten besser ist, die Öffentlichkeit +zu suchen. Persönliche Nachrichten gleiten gerne mal in Beschimpfungen ab und +niemand sonst bekommt etwas mit und kann helfend oder moderierend eingreifen. + +## Kommentare an Änderungssätzen + +Geht es um Änderungen an den OSM-Daten, so schreibt man am besten einen +Kommentar an den Änderungssatz. Der Kommentar ist öffentlich. Andere Mapper +können sehen, dass es eine Diskussion gibt und sich beteiligen. + +Schreibt jemand einen Kommentar an eine Deiner Änderungen, dann solltest Du +auf jeden Fall auch dort antworten. + +## Diskussion im Forum + +Bei Themen von allgemeinerem Interesse, zum Beispiel wenn es um viele +Änderungen geht oder um grundsätzlichere Fragen, ob und wie etwas zu mappen +ist, dann kannst Du eine Diskussion im [Community +Forum](https://community.openstreetmap.org/) starten. + +Du kannst das im [deutschsprachigen +Forum](https://community.openstreetmap.org/c/communities/de/56) machen, wenn +das Thema vorallem Deutschland (oder andere deutschsprachige Gegenden) +betrifft. Für Themen von weltweitem Interesse ist eines der englischsprachigen +Foren vielleicht besser, aber nicht jeder spricht gut Englisch, dann ist es +auch in Ordnung, das im deutschsprachigen Forum zu schreiben. Wenn nötig werden +andere das dann schon international weiter tragen. + +## Die Data Working Group (DWG) + +Wenn das alles nichts mehr hilft, dann könnt ihr die [Data Working Group +(DWG)](/community/data-working-group/) ansprechen. + diff --git a/content/community/lokale-treffen.md b/content/community/lokale-treffen.md new file mode 100644 index 0000000..480af5e --- /dev/null +++ b/content/community/lokale-treffen.md @@ -0,0 +1,19 @@ +--- +title: Lokale Treffen +--- + +# Lokale Treffen + +In einigen Städten und Regionen sind lokale Gruppen entstanden, die sich mehr +oder weniger regelmäßig treffen. Die Gruppen sind informell, die Treffen sind +öffentlich, jeder kann vorbei kommen. Eine ideale Möglichkeit, erfahrene Mapper +zu treffen und vielleicht auch gemeinsame Mapping-Aktionen zu starten. + +![](/img/karte-dach.png) + +Die lokalen Gruppen sind im Wiki [zu +finden](https://wiki.openstreetmap.org/wiki/Category:Lokale_Gruppe). (Deine +lokale Gruppe fehlt in der Liste? Lege eine Infoseite im Wiki an und baue dort +das Template [Lokale +Gruppe](https://wiki.openstreetmap.org/wiki/Template:User_group) ein.) + diff --git a/content/community/mitmachen.md b/content/community/mitmachen.md new file mode 100644 index 0000000..3ccd5fb --- /dev/null +++ b/content/community/mitmachen.md @@ -0,0 +1,80 @@ +--- +title: Bei OpenStreetMap mitmachen +--- + +# Bei OpenStreetMap mitmachen + +OpenStreetMap kann nur funktionieren, wenn ganz viele Leute mitmachen. Bei +uns heißen alle Beitragenden „Mapper“. Ob als Hobbyist oder im Auftrag einer +Firma, bei uns sind alle willkommen. + +Bei uns gibt es niemanden, der „zuständig“ ist. Man darf ich ruhig „zuständig“ +fühlen, für einen geographischen oder thematischen Bereich. Aber das heißt +nicht, dass man andere ausschließen kann oder mehr zu sagen hat als andere. +Jede und jeder kann und darf gleichberechtigt mitarbeiten. + +## Änderungen sind live! + +Alle Änderungen, die Ihr bei OSM macht, sind sofort für alle anderen Mapper und +für die ganze Welt sichtbar! Wir haben absichtlich keine Kontrolle +dazwischengeschaltet. Es ist ein tolles Gefühl, etwas in dem OSM-Daten +einzutragen, zu korrigieren oder zu ergänzen und das dann wenige Minuten später +auf der Karte zu sehen. Wir vertrauen Euch, dass ihr das Richtige tut. + +Auf den ersten Blick scheint das riskant zu sein, und, ja, ab und zu geht +das auch mal schief. Aber in 20 Jahren OSM haben wir die Erfahrung gemacht, +dass es funktioniert. + +## Erwartungen an Mapper + +Bitte seit sorgfältig bei der Arbeit. OSM wird weltweit von Millionen Menschen +jeden Tag benutzt. Sie alle verlassen sich auf die Daten. Wenn Ihr Euch mal mit +einer Änderung nicht sicher seit, dann lasst sie einfach weg. Früher oder +später wird jemand anderes das machen. (Ihr könnt aber eine [Notiz +anlegen](/beitragen/fehler-melden/) als Hinweis.) + +Gleichzeitig solltet ihr Euch aber auch nicht zu sehr bremsen lassen. Die Welt +geht nicht gleich unter, wenn mal etwas Kleines falsch auf der Karte ist. +Entweder ihr seht es selbst oder früher oder später auch jemand anderes und es +wird repariert. Es soll ja auch Spaß machen, an der Karte zu arbeiten. Benutzt +Euren gesunden Menschenverstand. Bei wichtigen Dingen, die viele Kartennutzer +betreffen werden, ist man halt etwas sorgfältiger oder diskutiert die Änderung +zuerst mit den „Kollegen“. + +## Organized Editing Guidelines + +OSM ist also Hobbyprojekt enstanden, aber inzwischen wird ein nicht +unerheblicher Teil der Daten von Firmen und anderen Organisationen beigetragen. +Und das ist gut so. Nicht überall gibt es Hobbymapper und wenn so viele Firmen +unsere Daten benutzen, dann ist es auch richtig, dass sie selbst dazu +beitragen. + +Beim sogenannten „Organisierten Editieren“ („organized editing“) sind +allerdings einige Grundregeln zu beachten. Als „organisiert“ gilt das Mappen +immer dann, wenn man nicht nur als Einzelperson selbstmotiviert aktiv wird, +sondern im Auftrag eines Anderen. Das kann als Mitarbeiter einer Firma sein, +es kann aber auch im Rahmen von Schulungen oder im Studium passieren. Dann +ist es der Lehrer oder die Professorin, die vorgeben, was zu tun ist. + +[Organised Editing +Guidelines](https://osmfoundation.org/wiki/Organised_Editing_Guidelines) +{.link-extern} + +{{% infobox %}} + +### Warum ist das wichtig? + +OpenStreetMap hat ein sehr starkes demokratisches Element, weil letztlich jede +Mapperin und jeder Mapper selbst entscheiden, was sie wie eintragen. Die +Community als Ganzes entscheidet auf diese Weise, wie sich OSM entwickelt. +Einzelne Personen oder Firmen können nicht vorgeben, wohin die Richtung geht. +Werden jetzt zu viele Änderungen von einigen wenigen gemacht, die auch noch +koordiniert vorgehen, kann das aus der Balance geraten. Das wollen wir +vermeiden, in dem immer klar gemacht wird, in wessen Auftrag jemand handelt. + +Außerdem entsteht im Rahmen von organisierten Edits immer mal wieder die +Situation, dass „Neulinge“ mit OSM interagieren, die noch nicht so richtig +wissen, wie alles funktioniert. Dann ist es wichtig, dass man einen erfahrenen +Ansprechpartner findet, den Lehrer oder die Chefin des Mappers zum Beispiel. + +{{% /infobox %}} diff --git a/content/community/vandalismus.md b/content/community/vandalismus.md new file mode 100644 index 0000000..1ba2d03 --- /dev/null +++ b/content/community/vandalismus.md @@ -0,0 +1,69 @@ +--- +title: Umgang mit Vandalismus +--- + +# Umgang mit Vandalismus + +Eine Karte, bei der jede und jeder mitmachen kann. Macht da nicht als jemand +was absichtlich kaputt? + +Meistens ist es keine Absicht, wenn jemand was kaputt macht. Aber es kommt +schon vor, dass absichtlich Daten gelöscht oder verfälscht werden. Manchmal in +einer kleinen Ecke irgendwo, aber wir hatten auch schon größere Fälle von +Vandalismus. + +Wir haben einige technische Maßnahmen dagegen getroffen. Zum Beispiel gibt es +Einschränkungen, was neue Mapper dürfen. Aber die große Mehrheit macht ihre +Arbeit gut, den wollen wir das Leben nicht schwer machen. Daher gibt es auch +keine Vorabkontrolle. + +Was es gibt sind viele Leute, die Probleme auf der Karte schnell erkennen und +melden oder sogar korrigieren. Es gibt Mapper, die Änderungen an OSM in „ihrer +Gegend“ verfolgen und drauf achten, dass da nichts kaputt geht. Und es gibt +auch Tools, um „verdächtige“ Änderungen aufzuspüren und Leute, die sowas wieder +korrigieren. Es gibt sogar Firmen, die Mitarbeiter dafür bezahlen, dass sie +Fehler in OSM-Daten aufspüren und korrigieren. + +## Was soll ich machen, wenn ich Vandalismus sehe? + +Bitte den Vandalismus nicht öffentlich melden, schon garnicht mit Screenshots! +Wir wollen ja nicht noch „Reklame“ dafür machen. + +Es kann sein, dass der Vandalismus schon längst korrigiert wurde, aber die +Karte noch nicht aktualisiert wurde. Geh auf die Standard-Karte auf +[www.openstreetmap.org](https://www.openstreetmap.org/). Ist der Vandalismus +dort nicht zu sehen, wurde er wahrscheinlich korrigiert. Ist er dort zu sehen, +klicke mit der rechten Maustaste auf den Vandalismus, es erscheint ein Menu +in dem Du „Objektabfrage“ ("Query Features") auswählst. Wenn Du das nicht +auswählen kannst, musst Du weiter hineinzoomen. Findet sich kein Objekt, das +dem Vandalismus entspricht, wurde er bereits korrigiert. + +Wenn der Vandalismus immernoch in den Daten ist, dann melde dies bitte per +E-Mail an die Data Working Group (DWG) (siehe unten). Bitte gib so genau wie +möglich an, wo das Problem ist (zum Beispiel mit der ID des kaputten Objektes, +Changeset-ID, Link zu der Stelle auf der Karte). + +[Dieser Artikel](https://community.openstreetmap.org/t/update-13-06-2024-neue-vandalismuswelle-strassen-kreuz-und-quer-teilweise-namen-geandert/113287) +beschreibt noch mehr Möglichkeiten und Details. +{.link-extern} + +## Soll ich Vandalismus selber korrigieren? + +Wenn es nicht ganz offensichtlich nur ein kleiner Einzelfall ist, dann solltest +Du die Korrektur von Vandalismus den Profis überlassen. Die haben mehr +Erfahrung und können auch spezielle Tools nutzen. Wenn Du den Vandalismus +unvollständig entfernst, macht es nachher manchmal mehr Arbeit, die Korrektur +zu korrigieren. + +## Die Data Working Group + +Die Data Working Group (DWG) der OpenStreetMap Foundation kümmert sich bei uns +im Projekt darum, Vandalismus zu beseitigen. Sie vermittelt auch bei Konflikten +zwischen Mappern und versucht eine Einigung herbeizuführen. + +[EMail-Kontakt zur DWG: data@openstreetmap.org](mailto:data@openstreetmap.org) +{.link-extern} + +Zur [Data Working Group (DWG)](/community/data-working-group/) +{.link-extern} + diff --git a/content/fan-artikel.md b/content/fan-artikel.md deleted file mode 100644 index c14a55b..0000000 --- a/content/fan-artikel.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "Fan-Artikel" -aliases: [/fan-artikel.html] ---- - -## Fan-Artikel bei kernel concepts - -{{< fan-artikel >}} diff --git a/content/faq.md b/content/faq.md index f7fde05..2e62469 100644 --- a/content/faq.md +++ b/content/faq.md @@ -1,6 +1,5 @@ --- title: "FAQs: Fragen und Antworten" -menu_title: "FAQ" aliases: [/faq.html] --- @@ -44,8 +43,8 @@ Siehe auch die [Mitmachseite](https://wiki.openstreetmap.org/wiki/DE:Getting_Inv ## Wie kann ich meinen Account wieder löschen? -Im Menü [Einstellungen](https://www.openstreetmap.org/account/edit) auf openstreetmap.org gibt es einen Button 'Konto löschen', wo man seinen Account selbstständig löschen kann. -Dabei werden die Stammdaten aus der OpenStreetMap-Datenbank gelöscht. Ihre E-Mail-Adresse wird normalerweise aufgehoben, damit ein OSM-Administrator Sie kontaktieren kann, sollte das in der Zukunft nötig sein. +Im Menü [Einstellungen](https://www.openstreetmap.org/account/edit) auf openstreetmap.org gibt es einen Button 'Konto löschen', über den man seinen Account selbstständig löschen kann. +Dabei werden die Stammdaten aus der OpenStreetMap-Datenbank gelöscht. Ihre E-Mail-Adresse wird normalerweise aufgehoben, damit ein OSM-Administrator Dich kontaktieren kann, sollte das in der Zukunft nötig sein. ## Brauche ich ein GPS? @@ -97,12 +96,6 @@ Siehe auch die [Statistik](https://wiki.openstreetmap.org/wiki/Stats) im Wiki. Alle Arbeit im Projekt wird von Freiwilligen getan, die dafür kein Geld bekommen. Die Server, auf denen die Datenbank und andere zentrale Dienste laufen, sind zum Teil gesponsert, zum Teil von einzelnen Projektmitgliedern aus eigener Tasche bezahlt. Den Betrieb der zentralen Server (Strom, Datenverkehr, usw.) bezahlt eine englische Universität. In Großbritannien gibt es einen OpenStreetMap-Verein, die [Open Street Map Foundation](https://wiki.openstreetmap.org/wiki/Foundation), der ein geringes Maß an Spendengeldern einnimmt. In Deutschland gibt es den [FOSSGIS e.V.](https://www.fossgis.de/), über den Spenden abgewickelt werden können. [Zur Spenden-Seite…]( {{< relref "/spenden" >}}) -## Gibt es auch Fan-Artikel? - -Die Firma kernel concepts läßt seit Jahren für Linux und andere Open-Source-Projekte, Plüsch-Pinguine, Pins, T-Shirts und dergleichen herstellen und verkauft sie über ihren Online-Shop. Viele werden sie auch vom LinuxTag oder anderen Messen kennen. Ab sofort gibt es dort auch OpenStreetMap-Fan-Artikel. - -Hier geht es zu den [Fan-Artikeln](/fan-artikel/). - ## Server Der FOSSGIS e.V. betreibt mehrere Server für die OpenStreetMap-Community. Weitere Informationen, zum Beispiel darüber wie ihr die Dienste auf diesen Servern nutzen und selbst mitmachen könnt, findet ihr im [Wiki](https://wiki.openstreetmap.org/wiki/FOSSGIS/Server). diff --git a/content/germanstyle.md b/content/germanstyle.md index e4b331d..9ce8753 100644 --- a/content/germanstyle.md +++ b/content/germanstyle.md @@ -1,6 +1,5 @@ --- -title: "Deutscher Kartenstil" -menu_title: "Karte" +title: Deutscher Kartenstil aliases: [/germanstyle.html] --- @@ -111,5 +110,5 @@ nichtkommerzielle Zwecke erlauben. Kleinere Webanwendungen, wie z.B. der Anfahrtsplan auf der Firmenwebseite dürfen die Kacheln selbstverständlich verwenden. Bitte beachten sie auch die [Tile usage policy](https://wiki.openstreetmap.org/wiki/Tile_usage_policy). -[Ausführlichere Informationen zu den Nutzungsbedingungen finden Sie +[Ausführlichere Informationen zu den Nutzungsbedingungen findest Du hier.](https://fossgis.de/arbeitsgruppen/osm-server/nutzungsbedingungen/) diff --git a/content/impressum.md b/content/impressum.md deleted file mode 100644 index 88b6909..0000000 --- a/content/impressum.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "Kontakt / Impressum" -aliases: [/impressum.html] ---- - - -## Presse-Ansprechpartner - -Bei OpenStreetMap gibt es keine offiziellen Ansprechpartner. Die folgenden Freiwilligen haben sich aber bereit erklärt, Presseanfragen zu beantworten. - -``` -Roland Ramthun -osm@roland-ramthun.de -0651-20 65 06 9 -``` - -## Behörden und andere öffentliche Stellen - -Behörden und andere öffentliche Stellen wenden sich bitte an: - -info@fossgis.de - -## Flyer - -Der OpenStreetMap-Flyer im DIN A7-Format eignet sich zum Verteilen bei Veranstaltungen. Man kann sich auch ein paar in die Tasche stecken, wenn man zum Mappen unterwegs ist - so ist die Frage, was man denn da tut, schnell beantwortet! Auf [diesem Bild](/img/flyer-big.jpg) kannst Du sehen, wie der Flyer aussieht. - -Die [Geofabrik GmbH](https://www.geofabrik.de/) sponsort den Druck der Flyer (bislang wurden ca. 40.000 hergestellt). Solange der Vorrat reicht, können die Flyer kostenlos in Mengen von ca. 10, ca. 100 und ca. 200 Stück (passt dann vom Gewicht genau in verschieden Briefgrößen) von der Geofabrik angefordert werden. Wende Dich an Frederik Ramm (frederik.ramm@geofabrik.de). - -Ein [Beispiel](https://wiki.openstreetmap.org/wiki/OSM-Werbetafel_Bikepark), wie der Flyer eingesetzt wurde. - -## Webseiten - -Wenn Du Fragen oder Anregungen zu diesen Webseiten hast, kannst Du den Webmaster unter webmaster@openstreetmap.de erreichen. - - -## Impressum - - - -Der {{< extlink href="https://www.fossgis.de/" text="FOSSGIS e.V." >}} betreibt -diese Webseiten für die OSM-Community. Er ist Eigentümer der Domain -openstreetmap.de. - -``` -FOSSGIS e.V. -Bundesallee 23 -D-10717 Berlin -``` - -Vertreten durch den Vorstand: - -* Jörg Thomsen -* Pirmin Kalberer -* David Arndt -* Falk Zscheile - -Der Verein wurde unter der Registernummer 90 VR 3594 am 18. Januar 2001 beim -Registergericht der Stadt Mainz eingetragen. - diff --git a/content/impressum/_index.md b/content/impressum/_index.md new file mode 100644 index 0000000..0cf9070 --- /dev/null +++ b/content/impressum/_index.md @@ -0,0 +1,51 @@ +--- +title: Impressum +aliases: [/impressum.html] +--- + +# Impressum + +Möglichkeiten zur [Kontaktaufnahme](/kontakt/). +{.link-intern} + +{{< rawhtml >}} +

+{{< /rawhtml >}} + +Der [FOSSGIS e.V.](https://www.fossgis.de/) betreibt diese Webseiten für die +OSM-Community. Er ist Eigentümer der Domain openstreetmap.de. + + + +FOSSGIS e.V.
+Bundesallee 23
+D-10717 Berlin + +Vertreten durch den Vorstand: + +* Jörg Thomsen +* Pirmin Kalberer +* David Arndt +* Falk Zscheile + +Der Verein wurde unter der Registernummer 90 VR 3594 am 18. Januar 2001 beim +Registergericht der Stadt Mainz eingetragen. + +## Bildrechte + +Die im Menu und an einigen anderen Stellen verwendeten Icons stammen aus der +[Ionicons](https://github.com/ionic-team/ionicons)-Sammlung. Sie werden unter +der [MIT-Lizenz](https://opensource.org/license/MIT) zur Verfügung gestellt. + +Wenn nicht anders vermerkt, basieren die Karten auf diesen Seiten auf +OpenStreetMap-Daten und sind [© +OpenStreetMap-Mitwirkende](https://www.openstreetmap.org/copyright). + +Die gemalten Menu- bzw. Aufmacher-Bilder im Themenportal wurden extra für uns +von Irina Hoffmann gemalt. Alle Rechte liegen bei ihr. + +Sonstiges Bilder sind mit einem Herkunfts- bzw. Copyright-Vermerk an den +Bildern versehen. Bei einigen Bildern befindet der sich der Vermerk im HTML +title Attribut und kann durch Überfahren des Bildes mit der Maus +dargestellt werden. + diff --git a/content/impressum/datenschutz.md b/content/impressum/datenschutz.md new file mode 100644 index 0000000..4876ada --- /dev/null +++ b/content/impressum/datenschutz.md @@ -0,0 +1,58 @@ +--- +title: Datenschutzerklärung +--- + +# Datenschutzerklärung + +## Datenschutz + +Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr +ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und entsprechend +der gesetzlichen Datenschutzvorschriften sowie dieser Datenschutzerklärung. + +Die Nutzung unserer Website ist ohne Angabe personenbezogener Daten möglich. + +## Cookies + +Diese Internetseiten verwenden keine so genannten Cookies. + +## Server-Log-Files + +Wir erheben und speichern automatisch Informationen in so genannten Server-Log +Files, die Ihr Browser automatisch an uns übermittelt. Dies sind: + +* Browsertyp und Browserversion +* verwendetes Betriebssystem +* Referrer URL +* IP-Adresse des zugreifenden Rechners +* Datum und Uhrzeit der Serveranfrage + +Diese Daten sind nicht bestimmten Personen zuordenbar. Eine Zusammenführung +dieser Daten mit anderen Datenquellen wird nicht vorgenommen. Wir behalten uns +vor, diese Daten nachträglich zu prüfen, wenn uns konkrete Anhaltspunkte für +eine rechtswidrige Nutzung bekannt werden. + +## TLS-Verschlüsselung + +Diese Seite nutzt aus Gründen der Sicherheit und zum Schutz der Übertragung +vertraulicher Inhalte eine TLS-Verschlüsselung. + +## Recht auf Auskunft, Löschung, Sperrung + +Sie haben jederzeit das Recht auf unentgeltliche Auskunft über Ihre +gespeicherten personenbezogenen Daten, deren Herkunft und Empfänger und den +Zweck der Datenverarbeitung sowie ein Recht auf Berichtigung, Sperrung oder +Löschung dieser Daten. Hierzu sowie zu weiteren Fragen zum Thema +personenbezogene Daten können Sie sich jederzeit unter der im +[Impressum](/impressum/) angegebenen Adresse an uns wenden. + +## Externe Karten + +Auf der Seite https://openstreetmap.de/karte/ binden wir Kartenkacheln +verschiedener externer Kartendienste ein und benutzen für die Suche externe +Dienste. Es gelten die Datenschutzbestimmungen dieser Dienste: + +* Kartenkacheln "OSM-Standard (Mapnik)": [OSMF Privacy Policy](https://osmfoundation.org/wiki/Privacy_Policy) +* Kartenkacheln "ÖPNV-Karte": [ÖPNVKarte](https://öpnvkarte.de/) +* Suche (Nominatim): [OSMF Privacy Policy](https://osmfoundation.org/wiki/Privacy_Policy) + diff --git a/content/karte/_index.md b/content/karte/_index.md index 35e580b..808dd20 100644 --- a/content/karte/_index.md +++ b/content/karte/_index.md @@ -1,6 +1,5 @@ --- -title: "Karte" -menu_title: "Karte" -layout: "karte" +title: Karte +layout: karte aliases: [/karte.html] --- diff --git a/content/kontakt/_index.md b/content/kontakt/_index.md new file mode 100644 index 0000000..c6ac616 --- /dev/null +++ b/content/kontakt/_index.md @@ -0,0 +1,77 @@ +--- +title: Kontakt +--- + +# Kontakt + +OpenStreetMap wird überwiegend von Freiwilligen in ihrer Freizeit betreut, die +über ganz Deutschland und die ganze Welt verstreut sind. Man kommt am besten +über unser Community-Forum oder eine unserer Veranstaltungen mit uns in +Kontakt. Stellt man dort Fragen, gibt es viele Leute, die sie lesen und die +Chance sind recht gut, dass man Antworten bekommt. Und der nächste mit der +gleichen Frage, kann die Antwort dann schnell im öffentlichen Forum finden. + +Für uns sehr wichtig ist der Kontakt innerhalb und zur lokalen Community. An +manchen Orten gibt es Stammtische oder lokale Mailinglisten. Will man OSM +besser verstehen oder lokale Probleme oder Besonderheiten besprechen, hilft es +hier den Kontakt zu suchen. + +Mehr dazu auf der [Community-Seite](/community/). +{.link-intern} + +## Fehler in OSM gefunden? + +Die OSM-Daten und -Karten enthalten Fehler. Das ist ganz normal und wird immer +so sein. Im Unterschied zu anderen Datensammlungen und Karten kann aber jede +und jeder dazu beitragen, die Daten zu verbessern. Das ist einfacher als man +denkt. + +Wenn Du einen Fehler irgendwo anders auf einer OSM-Karte gefunden hast, +solltest Du erstmal auf [unserer Karte](/karte/) verifizieren, ob der Fehler +dort auch zu sehen ist. Wenn nicht, dann wurde er vielleicht bei uns schon +korrigiert, aber die Korrektur ist noch nicht bei allen Karten angekommen. +Unsere Karte wird in der Regeln innerhalb von Minuten nach einer Änderung +aktualisiert. Wenn der Server grad viel zu tun hat kann es aber auch mal ein +paar Stunden oder mal einen Tag dauern. Bei anderen Karten geht das manchmal +viel länger, da mußt Du den Betreiber der jeweiligen Karte fragen. + +Wenn die Daten wohl wirklich noch falsch sind, dann kannst Du + +[Eine Fehlermeldung abgeben](/beitragen/fehler-melden/) +{.link-intern} + +[Die Daten selbst korrigieren](/beitragen/) +{.link-intern} + +## Du hast ein anderes Anliegen? + +Du kannst uns an **[info@openstreetmap.de](mailto:info@openstreetmap.de)** eine +Mail schreiben. Die Mail wird in der Regel von Freiwilligen aus der deutschen +Community bearbeitet und beantwortet, das kann schon mal etwas dauern. + +## Presse-Ansprechpartner für Deutschland + +Für Presse-Anfragen steht Roland Ramthun unter +[osm@roland-ramthun.de](mailto:osm@roland-ramthun.de) und 0651-20 65 06 9 zur +Verfügung. + +## Ansprechpartner für Behörden und Organisationen + +Behörden und Organisationen mit Fragen zu OSM können sich an Jochen Topf +([jochen.topf@fossgis.de](mailto:jochen.topf@fossgis.de)) wenden. + +## Die OSM Foundation + +Die [OpenStreetMap Foundation](https://osmfoundation.org/wiki/Contact) in +Großbritannien ist der offizielle Betreiber der OSM-Datenbank und Inhaber der +Lizenz- und Markenrechte. + +Die OSM Foundation ist auch der offizielle Ansprechpartner, wenn es um die +Löschung von Daten in OSM geht, die gegen Urheberrechte verstoßen. Wenn es +um einen Fall in Deutschland geht, können wir aber unter info@openstreetmap.de +auch schon weiterhelfen. + +[Informationen zum Vorgehen bei +Urheberrechtsverletzungen](https://osmfoundation.org/wiki/Takedown_procedure) +{.link-extern} + diff --git a/content/nutzen/_index.md b/content/nutzen/_index.md new file mode 100644 index 0000000..418b69f --- /dev/null +++ b/content/nutzen/_index.md @@ -0,0 +1,76 @@ +--- +title: OpenStreetMap nutzen +--- + +# OpenStreetMap nutzen + +Es gibt ganz verschiedene Wege, wie OpenStreetMap genutzt werden kann. Das +OSM-Projekt bietet selbst einige Dienste an und es gibt auch viele andere +Organisationen und Firmen, die OSM-basierte Dienste und Anwendungen anbieten, +teilweise kostenlos, teilweise gegen Geld. Und schließlich kann man die +OSM-Daten auch herunterladen und selbst etwas damit bauen. + +## Webdienste + +Es gibt viele Webdienste mit OSM-basierten Karten, zur Suche in OSM oder +zur Berechnung von Routen und viele andere Anwendungen. + +Die OSM-Community betreibt viele solche Webdienste selbst, aber es gibt auch +viele andere Privatpersonen, Firmen und Organisationen, die solche Dienste +betreiben. Viele davon sind kostenlos nutzbar, aber nicht alle. +Diese Dienste unterliegen ihren eigenen Nutzungsbedingungen. + +Zu den [Webdiensten von OSM Deutschland](dienste-osm-de) +{.link-intern} + +Zu den [Webdiensten der OSM Foundation](dienste-osm-org) +{.link-intern} + +## Karten für unterwegs + +Es gibt viele Apps für alle populären Smartphone-Betriebssysteme. Viele richten +sich an spezielle Zielgruppen, wie Wanderer oder Radfahrer. Meistens kann man +die Karten herunterladen, sodass man unterwegs auch ohne Netz navigieren kann. + +Für Outdoor-Profis gibt es auch OSM-Karten für GPS-Geräte wie die von Garmin. + +[OSM mobil nutzen](/nutzen/mobil/) +{.link-intern} + +## Karten für den Druck + +OSM-Karten können natürlich auch ausgedruckt werden. Speziell für den Druck +angepasste Karten kann man sich bei MyOSMatic erzeugen lassen. + +[MyOSMatic](https://print.get-map.org/) +{.link-extern} + +## Selber machen + +Alle Daten, die im OSM-Projekt gesammelt wurden, stehen frei zum Download zur +Verfügung. Alle Änderungen der Daten in einem Zeitraum (Minute, Stunde, Tag) +gibt es ebenfalls zum Download. So ist es möglich eine lokale, selbst +betriebene Datenbank mit OSM-Daten auf dem aktuellen Stand zu halten. + +Es gibt jede Menge Open-Source-Software, die man selbst installieren kann, +um mit diesen Daten zu arbeiten. + +[OSM-Daten herunterladen](/nutzen/daten/) +{.link-intern} + +Software für [Navigation (Routing)](/nutzen/navigation/) +{.link-intern} + +[Switch2OSM](https://switch2osm.org/) hat Anleitungen zur Datennutzung +{.link-extern} + +## Jemand anders machen lassen + +Du brauchst einen OSM-basierten Dienst, aber es gibt keinen passenden? Du +brauchst eine spezielle Software? Rund um OSM gibt es ein ganzes Ökosystem an +Firmen, die so etwas für Dich bauen können. Der FOSSGIS e.V. hat eine +Datenbank von Anbietern für eine erste Orientierung zusammengestellt. + +[Dienstleisterliste](https://www.fossgis.de/dienstleister/) des FOSSGIS e.V. +{.link-extern} + diff --git a/content/nutzen/daten.md b/content/nutzen/daten.md new file mode 100644 index 0000000..2ac2f4b --- /dev/null +++ b/content/nutzen/daten.md @@ -0,0 +1,108 @@ +--- +title: OpenStreetMap-Daten herunterladen +--- + +# OpenStreetMap-Daten herunterladen + +Alle OpenStreetMap-Daten können kostenlos und ohne Anmeldung heruntergeladen +werden. + +{{% infobox %}} + +Denk daran, dass diese Daten einer Lizenz unterliegen. Du bist bestimmte Dinge +bei der Nutzung beachten. Das wichtigste ist die Pflicht zur +[Namensnennung](/nutzen/namensnennung/). + +[Weitere Informationen zum Copyright](https://www.openstreetmap.org/copyright) +{.link-extern} + +{{% /infobox %}} + +## Datenformate + +OpenStreetMap benutzt Dateiformate, die speziell für OpenStreetMap entwickelt +wurden. + +Das heute am häufigsten benutzte Datenformat heißt PBF. Dateien haben meist +die Endung `.osm.pbf`. Dieses Binär-Format komprimiert die OSM-Daten auf eine +besondere Weise, damit sie besonders klein werden. (Trotzdem brauchen alle +Daten für den Planeten ca. 80 GByte!) + +Fast alle Software, die mit OSM-Daten arbeitet, unterstützt dieses Format +und kann damit besonders effizient arbeiten. Wenn möglich, solltest Du mit +diesem Format arbeiten. + +{{% infobox %}} + +Auch für Vektor-Kacheln wird manchmal die Dateiendung `.pbf` verwendet. Das +ist aber ein ganz anderes Format, sie haben nichts miteinander zu tun. + +{{% /infobox %}} + +Manchmal noch verwendet wird das Original-Format von OSM, das auf XML +basiert. Selbst gepackt (zum Beispiel mit bzip2) sind die Daten aber fast +doppelt so groß wie im PBF-Format und die Verarbeitung ist aufwändiger und +langsamer. + +Es gibt für so ziemlich alle Programmiersprachen entsprechende Bibliotheken, +die diese Formate lesen und schreiben können. + +[PBF-Format im OSM-Wiki](https://wiki.openstreetmap.org/wiki/PBF_Format) +{.link-extern} + +## Datenausschnitte + +Häufig braucht man nicht alle OSM-Daten auf einmal, sondern nur die für ein +Land oder eine Region. Verschiedene Anbieter stellen Datenausschnitte zur +Verfügung. Bei der Geofabrik gibt es Ausschnitte für Länder und Kontinente und +teilweise auch für kleinere Regionen, die täglich aktualisiert werden. Bei +BBBike kann man den Ausschnitt selbst wählen. + +[Download bei der Geofabrik](https://download.geofabrik.de/) +{.link-extern} + +[Download bei BBBike](https://download.bbbike.org/osm/) +{.link-extern} + +[Weitere Download-Optionen im Wiki](https://wiki.openstreetmap.org/wiki/Planet.osm) +{.link-extern} + +## Daten für den ganzen Planeten + +Alle OpenStreetMap-Daten für den ganzen Planeten gibt es zum Download bei der +OSM Foundation. Einmal pro Woche wird ein kompletter Datenbank-Dump zur +Verfügung gestellt. + +Die Verarbeitung von OSM-Daten für den ganzen Planet stellt hohe Anforderungen +an Hardware und Software. Bevor Du mit den Daten für die ganze Welt arbeitest, +sammle erstmal etwas Erfahrung mit Ausschnitten der Daten. + +Download auf [planet.openstreetmap.org](https://planet.openstreetmap.org/) +{.link-extern} + +## Änderungsdateien + +Damit man alle Änderungen an den OSM-Daten nachvollziehen kann, gibt es bei der +OSM Foundation Änderungsdatensätze zum herunterladen. Jede Minute wird ein +neuer Datensatz erzeugt. Diese werden dann zu stündlichen und täglichen +Datensätzen zusammengefaßt. Manche OSM-Software kann diese Daten automatisch +herunterladen und zum Beispiel eine Datenbank damit aktualisieren. + +Änderungsdatensätze auf [planet.openstreetmap.org](https://planet.openstreetmap.org/replication/) +{.link-extern} + +## Historische Daten + +Meistens braucht man nur die aktuellen OSM-Daten. Aber alle Änderungen an den +OpenStreetMap-Daten werden bei OSM gespeichert, das heißt alte Versionen der +Objekte und auch gelöschte Objekte sind in der Datenbank vorhanden. Für +bestimmte Auswertungen können diese Daten nützlich sein. + +Achtung! Die meiste OSM-Software kommt mit diesen Daten nicht zurecht. Schau +Dir erst die Anleitung der Software an, ob sie damit arbeiten kann. Ein +Komplettauszug der OSM-Daten mit Historie braucht selbst im PBF-Format 130 +GByte! + +[Full history dumps](https://planet.openstreetmap.org/pbf/full-history/) +{.link-extern} + diff --git a/content/nutzen/dienste-osm-de.md b/content/nutzen/dienste-osm-de.md new file mode 100644 index 0000000..bc0e9c9 --- /dev/null +++ b/content/nutzen/dienste-osm-de.md @@ -0,0 +1,183 @@ +--- +title: Dienste von OSM Deutschland +--- + +{{< spendenbutton >}} +Der Betrieb dieser Dienste kostet uns viel Geld und viel Arbeit. Wir freuen +uns über eine Spende! +{{< /spendenbutton >}} + +# OSM-basierte Dienste von OSM Deutschland + +OpenStreetMap Deutschland (vertreten durch den FOSSGIS e.V.) bietet +verschiedene Dienste an. Diese Dienste betreiben wir für die OSM-Community in +Deutschland und der ganzen Welt. Sie sind — mit Einschränkungen — +aber auch durch die allgemeine Öffentlichkeit nutzbar. + +Für alle Dienste gilt: Sie werden von Freiwilligen in ihrer Freizeit betreut. +Wir können nicht garantieren, dass die Dienste jederzeit zur Verfügung stehen, +korrekt funktionieren oder morgen noch da sind. Die Erfahrung der letzten +Jahre zeigt allerdings, dass sie sehr zuverlässig laufen. + +{{% infobox %}} +Alle Dienste sind ohne eine Registrierung benutzbar. Aber bitte haltet Euch an +die +[Nutzungsbedingungen](https://www.fossgis.de/arbeitsgruppen/osm-server/nutzungsbedingungen/)! +{{% /infobox %}} + +Alle diese Dienste basieren auf Open-Source-Software, die Du auch selbst +installieren kannst. Es gibt auch Dienstleister, die Dir bei der Installation +(und eventuellen Anpassung) helfen oder die die Dienste im Auftrag betreiben. +Wenn das für Dich interessant sein könnte, dann schau dich auf unserer +[Dienstleisterliste](https://www.fossgis.de/dienstleister/) um. + +{{% rawhtml %}} + +
+ +
+ +## Karten-Server (*„tile server“*) + +{{< rawhtml >}} + +{{< /rawhtml >}} + +Wir betreiben einen Karten-Server, der Karten-Kacheln für die ganze Welt zur +Verfügung stellt. Der Stil basiert auf dem Standard-OSM-Stil, mit kleinen +Änderungen. Namen auf der Karte werden zusätzlich zur lokalen Sprache auch auf +Deutsch angezeigt. + +Der Server kann auch in eigene Webseiten eingebunden werden. Aber eine +gewerbliche Nutzung ist nur mit Einschränkungen erlaubt! + +Infos zum Kartenstil: [Projekt](https://github.com/giggls/openstreetmap-carto-de), [Wiki-Seite](https://wiki.openstreetmap.org/wiki/German_Style) +{.link-extern} + +
+
+ +## uMap + + + + + + +Mit uMap kannst Du ganz einfach und schnell eine individuelle Karte +zusammenstellen. Die OpenStreetMap-Karte im Hintergrund kannst Du durch +darübergelegte Punkte, Linien und Flächen ergänzen oder auch externe Daten +importieren. + +Im OpenStreetMap-Projekt benutzen wir diese Karten gerne, um uns lokal +abzusprechen, woran man vielleicht arbeiten will. Aber uMap eignet sich auch +prima dazu, den Anfahrtplan zu Deiner Grillparty aufzumalen oder +Schlaglöcher in Deiner Gemeinde zu erfassen. + +Unser uMap-Server auf [umap.openstreetmap.de](https://umap.openstreetmap.de/de/) +{.link-extern} + +[uMap-Projektseite](https://umap-project.org/) +{.link-extern} + +
+
+ +## Overpass API + +{{< rawhtml >}} + +{{< /rawhtml >}} + +Wir betreiben mehrere „Overpass API Server“. Diese Server haben alle aktuellen +OSM-Daten gespeichert (und auch die historischen!) und stellen sie über die +Overpass API zur Verfügung. Damit kann man Webdienste bauen, ohne selbst die +OSM-Daten herunterladen zu müssen oder einen Server betreiben zu müssen. + +Mehr Informationen zur Nutzung der Overpass API gibt es auf der +[Projektseite](https://overpass-api.de/) +{.link-extern} + +Unter [overpass turbo](https://overpass-turbo.eu/) gibt es eine Oberfläche +zur Nutzung der Overpass API +{.link-extern} + +
+
+ +## Routing-Server: OSRM + +{{< rawhtml >}} + +{{< /rawhtml >}} + +Open Source Routing Machine (OSRM) ist ein Open-Source-Routing-Server. +OpenStreetMap Deutschland betreibt mehrere Test-/Demo-Server. Dort kann man +sich Routen für Autos, Radfahrer und Fußgänger errechnen lassen. + +Der Dienst kann über die API auch in eigene Seiten eingebunden werden. + +Zum [OSRM +Demo-Server](https://map.project-osrm.org/?z=6¢er=51.536086%2C10.634766&hl=de&alt=0&srv=1) +{.link-extern} + +[OSRM-Projektseite](https://project-osrm.org/) — [Projektseite auf +Github](https://github.com/Project-OSRM) +{.link-extern} + +[Über den Demo-Server](https://map.project-osrm.org/about.html) +{.link-extern} + +
+
+ +## Routing-Server: Valhalla + +{{< rawhtml >}} + +{{< /rawhtml >}} + +Valhalla ist ein Open-Source-Routing-Server. OpenStreetMap Deutschland betreibt +mehrere Test/Demo-Server. Dort kann man die Navigation für sechs verschiedene +Verkehrsmittel berechnen lassen, mit vielen Zusatzoptionen. Außerdem ist es +möglich, Isochronen berechnen zu lassen. Das sind die Bereiche, die in einer +vorgegebenen Zeit mit einem Verkehrsmittel erreicht werden können. + +Der Dienst kann über die API auch in eigene Seiten eingebunden werden. + +Zum [Valhalla Demo-Server](https://valhalla.openstreetmap.de/) +{.link-extern} + +[Dokumentation des Valhalla-Projektes](https://valhalla.github.io/valhalla/) +{.link-extern} + +
+
+ +## Datendownload + +Für viele Anwendungen braucht man Polygone der Landmassen dieser Erde, oder +alternativ Polygone der Ozeane. Für Weltkarten auch wichtig sind die Eisflächen +der Antarktis. Beides braucht bei OpenStreetMap eine spezielle Vorverarbeitung. +Damit das nicht jeder selbst machen muss, stellen wir diese Daten zum Download +zur Verfügung. In der Regel werden die Daten täglich aus den OSM-Daten +aktualisiert. + +Zum [Download-Server](https://osmdata.openstreetmap.de/) +{.link-extern} + +
+
+ +{{% /rawhtml %}} + +{{% infobox %}} + +Alle von uns betriebene Software ist freie und Open-Source-Software. Du kannst +sie selbst bei Dir installieren und bei der Weiterentwicklung helfen. Unser +[Sysadmin-Team](https://www.fossgis.de/arbeitsgruppen/osm-server/) kümmert +sich um dem Betrieb. Wenn Du etwas Sysadmin-Erfahrung hast und noch mehr lernen +willst, dann hilf uns doch dabei! + +{{% /infobox %}} + diff --git a/content/nutzen/dienste-osm-org.md b/content/nutzen/dienste-osm-org.md new file mode 100644 index 0000000..6ab81b5 --- /dev/null +++ b/content/nutzen/dienste-osm-org.md @@ -0,0 +1,29 @@ +--- +title: Dienste der OSM Foundation +--- + +# OSM-basierte Dienste der OpenStreetMap Foundation + +## Karten-Server (*tile server*) + +Die OSM Foundation betreibt mehrere Karten-Server, die Kacheln für die +OSM-Standard-Karte ausliefern. Dieser Dienst darf allgemein und ohne Anmeldung +genutzt werden, solange man sich an die Nutzungsbedingungen hält. + +[Anleitung und Nutzungsbedingungen](https://operations.osmfoundation.org/policies/tiles/) +{.link-extern} + +## Geocoding-Server + +Für das Geocoding stellt die OSM Foundation einige Server mit der Software +Nominatim bereit. + +[Über diesen Dienst](https://nominatim.osm.org/ui/about.html) +{.link-extern} + +[Nutzungsbedingungen](https://operations.osmfoundation.org/policies/nominatim/) +{.link-extern} + +Die Software [Nominatim](https://nominatim.org/) +{.link-extern} + diff --git a/content/nutzen/mobil.md b/content/nutzen/mobil.md new file mode 100644 index 0000000..57c3708 --- /dev/null +++ b/content/nutzen/mobil.md @@ -0,0 +1,84 @@ +--- +title: OpenStreetMap Mobil +--- + +# OpenStreetMap Mobil + +## OSM auf dem Smartphone + +Es gibt viele Apps für alle populären Smartphone-Betriebssysteme. Viele richten +sich an spezielle Zielgruppen, wie Wanderer oder Radfahrer. Meistens kann man +die Karten herunterladen, sodass man unterwegs auch ohne Netz navigieren kann. + +{{% rawhtml %}} +
+
+ +
+ + + +### Organic Maps + +Eine einfach zu benutzende Open-Source-App für OSM. Sie steht für Android und +Apple Smartphones zur Verfügung. Für Einsteiger genau das richtige. Die App +gibts in den App Stores der Hersteller und auch im F-Droid Store. OSM-Daten +können kostenlos heruntergeladen werden und brauchen nur wenig Platz auf Deinem +Telefon. + +Zur Homepage von [Organic Maps](https://organicmaps.app/) +{.link-extern} + +[Quellcode auf Github](https://github.com/organicmaps/organicmaps) +{.link-extern} + +[![Über Apple Map Store installieren](/img/appstores/apple-appstore.svg)](https://apps.apple.com/de/app/organic-maps-navi-karten/id1567437057) +[![Über Google Play installieren](/img/appstores/googleplay.svg)](https://play.google.com/store/apps/details?id=app.organicmaps&hl=de) +[![Über F-Droid installieren](/img/appstores/f-droid.svg)](https://f-droid.org/de/packages/app.organicmaps/) + +
+
+
+ +
+ + + +### OsmAnd + +Eine Open-Source-App für Fortgeschrittene. Die Bedienung ist nicht ganz so +einfach, dafür gibt es eine Menge Funktionen. Man kann sogar OSM editieren. Die +App gibt es für Android und Apple in den App Stores und auch über F-Droid. + +Es gibt auch eine kostenpflichtige Version namens „OsmAnd+“. + +Zur Homepage von [OSMAnd](https://osmand.net/) +{.link-extern} + +[Quellcode auf Github](https://github.com/osmandapp/Osmand) +{.link-extern} + +[![Über Apple Map Store installieren](/img/appstores/apple-appstore.svg)](https://apps.apple.com/us/app/osmand-maps-travel-navigate/id934850257) +[![Über Google Play installieren](/img/appstores/googleplay.svg)](https://play.google.com/store/apps/details?id=net.osmand&hl=de) +[![Über F-Droid installieren](/img/appstores/f-droid.svg)](https://f-droid.org/de/packages/net.osmand.plus/) + +
+
+
+ +{{% /rawhtml %}} + +Es gibt außerdem noch viele andere Apps, die OSM benutzen, schau Dich in den +App Stores um. + +## OSM auf GPS-Geräten + +Für Outdoor-Profis, die ein GPS-Gerät von Garmin oder Magellan haben: Auch +für viele dieser Geräte gibt es OSM-Karten. + +[Garmin-Seite im OSM-Wiki](https://wiki.openstreetmap.org/wiki/DE:Garmin) +{.link-extern} + +[Magellan-Seite im OSM-Wiki](https://wiki.openstreetmap.org/wiki/Magellan) +{.link-extern} + diff --git a/content/nutzen/namensnennung.md b/content/nutzen/namensnennung.md new file mode 100644 index 0000000..436e48b --- /dev/null +++ b/content/nutzen/namensnennung.md @@ -0,0 +1,164 @@ +--- +title: Leitlinien für die Namensnennung bei der Nutzung von OpenStreetMap +--- + +# Leitlinien für die Namensnennung + +Die OpenStreetMap-Daten sind von einer großen Community gesammelt worden. Wir +freuen uns, wenn die Daten und Karten benutzt werden. Daher kostet es auch +nichts, wenn man die Daten benutzen will. Wir wollen das so einfach und +kostengünstig wie möglich machen. Aber wir haben eine Bedingung: **Du musst +sagen, dass die Daten von OpenStreetMap kommen.** Wir finden, dass das sehr +fair ist. Dadurch, dass OpenStreetMap genannt wird, werden mehr Leute auf OSM +aufmerksam und mehr Leute helfen mit, OSM noch besser zu machen. Das ist auch +in Ihrem Interesse! + +Weil man sich leider nicht darauf verlassen kann, dass alle Leute den Anstand +haben, OSM zu nennen, steht das auch in der Lizenz so drin. Wir verwenden die +Open Database License (ODbL), die ausdrücklich die Namensnennung +(*attribution*) vorsieht. + +{{% infobox %}} + +Achtung: Wenn Du nicht nur die *Daten* von uns verwendest sondern unsere +Karten- oder andere Dienste, dann gibt es noch andere Bedingungen, die zum +Beispiel sicherstellen sollen, dass die Server nicht überlastet werden. Bitte +beachte dazu die Nutzungsbedingungen der jeweiligen Dienste. + +{{% /infobox %}} + +## Namensnennung + +Wenn Du OpenStreetMap-Daten bzw. -Karten nutzt, dann musst Du OpenStreetMap +immer als Quelle angeben. Die Art und Weise, wie das zu geschehen hat, hängt +vom Anwendungsfall ab. Es spielt dabei keine Rolle, ob Du eine Karte von OSM +nutzt oder aus den OSM-Daten selbst eine Karte erstellt hast. Maßgebend ist +hier, dass OSM-Daten verwendet werden. Das ergibt sich aus der Open Database +License (ODbL) unter der die Daten lizensiert sind. + +Im Folgenden stellen wir ein paar typische Anwendungen dar und geben +Empfehlungen, wie die Namensnennung umzusetzen ist. + +## Namensnennung auf einer Webkarte + +{{< rawhtml >}} +
+ +
Namensnennung auf einer PDF-Karte des Hamburger Verkehrsverbundes
+
+{{< /rawhtml >}} + +Viele Organisationen benutzen Karten im Web. Es hat sich dabei eingebürgert, +dass man Copyright-Informationen rechts unten auf der Karte anzeigt. Das muss +aber nicht so sein, solange die Informationen irgendwoanders auf der Seite +einfach zu finden sind. + +Der akzeptierte übliche Text für OSM ist hierbei „© OpenStreetMap-Beitragende“ +(oder die englische Version „© OpenStreetMap Contributors“), der mit einem Link +auf die Seite +[https://www.openstreetmap.org/copyright](https://www.openstreetmap.org/copyright) +unterlegt ist. + +Wenn wenig Platz ist, zum Beispiel auf Seiten, die für den Gebrauch auf +Smartphones gedacht sind, dann kann man auch einen kleinen Button irgendwo +anbringen, der zu einer anderen Seite führt oder ein Popup öffnet, in dem die +Information dann zu finden ist. + +Wenn eine Karte neben OSM weitere Datenquellen verwendet, dann muss OSM +mindestens genauso prominent wie anderen Datenquellen genannt werden. + +Wird OSM nur für einige geographische Bereiche verwendet, so kann man die +Namensnennung auch dynamisch anpassen, je nachdem welcher Ausschnitt der Karte +gerade angezeigt wird. + +## Mehrere Quellen + +Viele Karte stellen Daten aus verschiedenen Quellen dar. Das ist kein Grund, +die Namensnennung von OSM zu unterlassen. Solange OSM-Daten in der Karte sind, +muss eine Namensnennung erfolgen. Sind besonders viele Quellen zu nennen, kann +das nicht unbedingt direkt im Zusammenhang mit der Karte passieren. Dann kann +man ggf. auf eine weitere Seite verweisen, auf der die Quellen aufgeführt +werden. Manchmal ist es technisch möglich, je nach dargestelltem +Karten-Ausschnitt, andere Quellen zu nennen. + +In jedem Fall sollte man eine Abwägung treffen, wie „prominent“, die +verschiedenen Datenquellen zu sehen sind. + +Letztlich bleibt die Entscheidung (und das rechtliche Risiko) Ihnen überlassen. + +## Muss ich bei einer selbst erstellten Karte trotzdem OpenStreetMap nennen? + +Ich habe selbst eine Karte erstellt, die zwar aus OpenStreetMap-Daten enthält, +aber einen ganz eigenen Stil hat. Dann habe ich doch das Copyright an diesem +Stil und nicht OSM? + +Richtig ist, dass Du an dem Stil Deiner Karte unter gewissen Bedingungen ein +Urheberrecht haben könntest. Das ändert aber nichts daran, dass Du OSM-Daten +als Grundlage verwenden und damit fällt das unter die Lizenzregelungen der +ODbL. + +Du kannst Deine Karte als sogenanntes „produced work“ unter eine Lizenz +stellen, die für Dich passt. Aber das heißt nicht, dass Du OSM nicht erwähnen +musst. + +Das Urheberrecht ist nämlich das eine, aber es gibt auch noch die +Datenbankrichtlinie, die in einer Datenbank gesammelte Fakten schützt. Die +OSM-Daten unterliegen diesem Datenbank-Schutz. Du musst also OpenStreetMap +immer als Quelle nennen, auch wenn Du die Karte selbst erstellt hast. + +## Was passiert, wenn ich die Namensnennung nicht korrekt durchführe? + +Streng genommen verlierst Du das Recht, OSM zu benutzen, wenn Du Dich nicht +an die Lizenz hälst. So steht das in der ODbL (Artikel 9.1). Praktisch haben +wir besseres zu tun als den ganzen Tag nach Lizenzverletzern Ausschau zu +halten. Es gibt aber immer wieder Mitglieder der OSM-Community, die nach sowas +schauen und auf die Verletzung aufmerksam machen. + +Wir behalten uns aber natürlich vor, entsprechend auf Lizenzverletzungen zu +reagieren. Es ist auch schon vorgekommen, dass wir da einen Anwalt +eingeschaltet haben. + +{{% infobox %}} + +**Ich habe entdeckt, dass jemand die Nutzungsbedingungen nicht einhält. Was +soll ich tun?** + +Meist fehlt die Namensnennung nur aus Unkenntnis oder weil die Leute nicht +wissen, wie sie die umsetzen sollen. Man muss also nicht immer davon ausgehen, +dass jemand uns absichtlich schaden will. + +Von „offizieller Seite“ werden wir meist nicht tätig. Wenn Du sicher bist, dass +es sich um eine OSM-basierte Karte handelt, kannst Du dem Betreiber der +Webseite oder Autor der Karte aber selbst eine höfliche Mail schreiben und ihn +auf den Lizenzverstoß hinweisen. Aus der Mail sollte dabei klar hervorgehen, +dass Du die Mail als Mitglied der OSM-Community schreibst, nicht in offiziellem +Auftrag der OSM Foundation. Am besten du schickst einen kleinen Text mit Link +auf diese Seite. + +Bei größeren Verstößen oder wenn Du Dir unsicher bist, kannst Du den Fall +auch im [Community Forum](https://community.openstreetmap.org/c/communities/de/56) +diskutieren. + +Es passiert selten, aber leider ist es schon vorgekommen, dass freundliche +Hinweise auf die Vorschrift zur Namensnennung mit (juristischen) Drohungen +beantwortet wurden. In so einem Fall wende Dich an +[info@openstreetmap.de](mailto:info@openstreetmap.de). + +{{% /infobox %}} + +## Ich habe Nutzung X mit OSM-Daten vor. Wer sagt mir, ob das okay ist? + +Frag einen Rechtsanwalt, der sich mit Urheberrecht und Datenbankrecht auskennt. +Weder die OSM Foundation noch der FOSSGIS e.V. als Vertreter der OSM Foundation +in Deutschland können dazu in Einzelfällen Auskunft erteilen. + +## Weitere Informationen + +Offizielle [OpenStreetMap Attribution +Guidelines](https://osmfoundation.org/wiki/Licence/Attribution_Guidelines) der +OSM Foundation +{.link-extern} + +[Die Open Database License (ODbL)](https://opendatacommons.org/licenses/odbl/) +{.link-extern} + diff --git a/content/nutzen/navigation.md b/content/nutzen/navigation.md new file mode 100644 index 0000000..fc8ce4d --- /dev/null +++ b/content/nutzen/navigation.md @@ -0,0 +1,124 @@ +--- +title: Navigation (Routing) +--- + +# Navigation (Routing) + +Es gibt eine erstaunliche Fülle an Software für die Navigation of OSM-Daten. +Die bekanntesten Open-Source-Programme stellen wir hier vor. Üblicherweise +unterstützen sie mehrere „Profile“, das sind passende Einstellungen für +Autofahrer, Radfahrer oder Fußgänger. Die kann man dann häufig noch mehr oder +weniger detailliert konfigurieren. + +Neben der Routenfindung von A nach B (häufig auch mit optionalen +Zwischenpunkten) erzeugen die Programme auch Navigationshinweise („jetzt rechts +auf die B31 abbiegen...“). Manche Programme können auch Isochrone berechnen, +das sind die Bereiche um einen Ort die innerhalb einer vorgegebenen Zeit +erreicht werden können. Und es gibt häufig noch eine Menge anderer Features. + +{{% rawhtml %}} + +
+
+ +## OpenRouteService + + + +Die Java-Anwendung OpenRouteService (ORS) wird federführend vom Heidelberg +Institute for Geoinformation Technology [HeiGIT](https://heigit.org/) +entwickelt. + +[Anwendung](https://maps.openrouteservice.org/) +{.link-extern} + +[Projekt-Homepage](https://openrouteservice.org/) +{.link-extern} + +
+
+ +## GraphHopper + + + +GraphHopper wird von der deutschen Firma gleichen Namens entwickelt. Sie +verkaufen den Zugang zur API und entwickeln Speziallösungen, aber alle +Grundfunktionen sind auch in der Open-Source-Version enthalten und können +so kostenfrei benutzt werden. + +[Anwendung](https://graphhopper.com/maps/) +{.link-extern} + +[Projekt-Homepage](https://www.graphhopper.com/) +{.link-extern} + +
+
+ +## Valhalla + + + +Valhalla ist eine Bibliothek mit Routing Engine und vielen weiteren Tools +rund um die Navigation. + +[Anwendung](https://valhalla.openstreetmap.de/) +{.link-extern} + +[Projekt-Homepage](https://valhalla.github.io/valhalla/) +{.link-extern} + +
+
+ +## OSRM + + + +Ursprünglich aus Forschungsarbeiten am Karlsruher Institut für Technologie +([KIT](https://www.kit.edu/)) hervorgegangen wurde OSRM dann im Firmenauftrag +und durch die Community weiterentwickelt. + +[Demo-Anwendung](https://map.project-osrm.org/) +{.link-extern} + +[Projekt-Homepage](https://project-osrm.org/) +{.link-extern} + +
+
+ +## BRouter + +Besonders bei Radfahrern beliebt ist der BRouter der sich sehr flexibel +konfigurieren läßt. + +[Anwendung](https://brouter.de/brouter-web/) +{.link-extern} + +[Projekt-Homepage](https://brouter.de/) +{.link-extern} + +
+ +
+ +## pgRouting + + + +pgRouting ist anders als die anderen hier vorgestellten Produkte. Es ist ein +Plugin mit dem man die SQL-Datenbank [PostgreSQL](https://www.postgresql.org/) +um Routing-Funktionen erweitert. Etwas für Bastler, die viel Flexibilität +brauchen. Erkauft wir das mit schlechterer Performance als bei den anderen +Lösungen. + +[Projekt-Homepage](https://pgrouting.org/) +{.link-extern} + +
+
+ +{{% /rawhtml %}} + diff --git a/content/projekt/_index.md b/content/projekt/_index.md new file mode 100644 index 0000000..d3da471 --- /dev/null +++ b/content/projekt/_index.md @@ -0,0 +1,140 @@ +--- +title: Das OpenStreetMap-Projekt +--- + +# Das OpenStreetMap-Projekt + +{{< rawhtml >}} + +{{< /rawhtml >}} + +Im internationalen OpenStreetMap-Projekt erschaffen wir gemeinsam eine Karte +der Welt. Jede und jeder kann mitmachen. Über 2 Millionen Menschen weltweit +haben schon dazu beigetragen. Das Ergebnis ist eine riesige Datenbank mit +Geodaten, die frei verfügbar ist und für ganz viele Zwecke genutzt werden kann. + +## Nicht nur *eine* Karte + +OpenStreetMap (OSM) ist nicht nur *eine* Karte. Wir sammeln Daten über die Welt +aus denen *ganz verschiedene* Karten erzeugt werden können. Zum Beispiel +spezielle Karten für Wanderer oder Radfahrer. Oder Karten mit ÖPNV-Linien oder +Windkraftanlagen. + +Unsere [Sammlung von Karten](/projekt/karten/) zeigt was möglich ist +{.link-intern} + +Unser [Themenportal](/themen/) zeigt Nutzungsmöglichkeiten von OSM +{.link-intern} + +[Wer nutzt alles OpenStreetMap?](/projekt/wer-nutzt-osm/) +{.link-intern} + +## Nicht nur eine *Karte* + +Alle Daten, die das Projekt gesammelt hat, stehen allgemein und kostenlos zum +Download zur Verfügung. Viele Hobbyisten, Organisationen und Firmen weltweit +nutzen diese Daten, um daraus Karten zu erstellen oder andere Anwendungen zu +bauen. + +Aus unseren Daten kann man automatisch **Karten** generieren lassen. Aber das +ist nicht alles. + +Die Daten eignen sich auch zur **Navigation** von A nach B. Auch hier gibt es +viele Varianten, je nach Verkehrsmitteln. Und es muss auch nicht immer nur die +Navigation auf der Straße sein. Vielleicht willst Du Dich ja über Bahngleise +navigieren lassen? Oder über Skipisten und Skilifte? + +Beim sogenannten **Geocoding** geht es darum von einem Ortsnamen oder eine +Adresse den passenden Punkt auf der Karte zu finden. Umgekehrt kann man mit den +Daten für einen Punkt die nächste Adresse finden (*reverse Geocoding*). + +Und auch die **Analyse** der Daten wird vielfach benutzt, um unsere Welt +besser zu verstehen. Welche Gegenden sind besonders gut vom ÖPNV abgedeckt? +Wie weit ist es zum nächsten Krankenhaus? + +[Für was kann man OpenStreetMap alles nutzen?](/projekt/osm-für-was/) +{.link-intern} + +[Wie kann ich OSM selber nutzen?](/nutzen/) +{.link-intern} + +## Alle können mitmachen + +OpenStreetMap steht Allen zum Mitmachen offen. Wir freuen uns über jede +Helferin und jeden Helfer. Du musst Dir einmal [einen Zugang +anlegen](/beitragen/osm-zugang/), die Teilnahmebedingungen bestätigen und schon +kann es losgehen. + +Es gibt ganz verschiedene Möglichkeiten beizutragen. Man kann mit einfach zu +nutzenden Apps anfangen, kleine Beiträge zu leisten. So lernt man allmählich +wie das geht und mit der Zeit kann man immer mehr machen. Für die Profis +gibt es dann einen speziellen Editor, mit dem auch die kompliziertesten +Beiträge möglich sind. + +OSM lebt davon, dass ganz verschiedene Menschen, Organisationen und Firmen ihre +Erfahrungen, Interessen und Perspektiven einbringen. + +[Wie kann ich zu OSM beitragen?](/beitragen/) +{.link-intern} + +## Was wir alles eintragen + +{{< rawhtml >}} +
+ +
Der Berliner Zoo bei OpenStreetMap
+
+{{< /rawhtml >}} + +Du kannst selbst entscheiden, welche Dinge Du bei OSM beitragen willst. +Natürlich gibt es ein paar Regeln zu beachten, aber wir sind recht offen für +Neues. Über die Zeit sind mehr und mehr Dinge dazu gekommen, die Karte füllt +sich mit mehr Details und mit mehr Spezialinformationen. + +Eingetragen wird alles was man so von einer Karte erwartet: Straßen und Wege, +Wälder und Gewässer, Gebäude, Briefkästen, Spielplätze und vieles mehr. Auch +viele Dinge, die man auf üblichen Karten nicht sieht, und mit vielen Details: +Buslinien, Staudämme, Denkmäler, Ticket-Automaten, ... + +Zu all diesen Dingen können eine Vielzahl von Attributen angegeben werden: +Namen von Orten, Oberflächenbeschaffenheit von Wegen, Höchstgeschwindigkeiten +auf Straßen, Öffnungszeiten von Geschäften und so weiter. + +Ein wichtiger Grundsatz ist, dass wir nur Fakten bei OSM eintragen: _Hier ist +eine Straße, die heißt Goethestraße und die erlaubte Höchstgeschwindigkeit ist +30 km/h_. Solche Dinge. Was wir nicht eintragen sind Meinungen. Welche Aussicht +besonders schön ist oder welches Hotel besonders gemütlich, das hat bei uns +keinen Platz. + +Und es soll immer eine gemeinsame Karte daraus werden. Alle dürfen an allem +mitarbeiten, es gibt keine Daten _nur von Dir_ oder _nur für Dich_. + +[Was gehört nach OSM und was nicht?](/projekt/was-gehört-nach-osm/) +{.link-intern} + +## Die Community + +OpenStreetMap funktioniert nur, weil wir eine große aktive Community von +Beitragenden haben. Für uns ist eigentlich jeder Mensch, der OSM nutzt +oder dazu beiträgt Teil dieser Community. Egal ob man das aus Spaß an der +Freude macht oder beruflich für eine Firma. + +Der Austausch mit den Mapper-Kolleginnen und -Kollegen, insbesondere der +lokalen Community, ist dabei enorm wichtig. Nur so können wir voneinander +lernen und gemeinsam die Datenbasis verbessern. + +[Wie „funktioniert“ die OSM-Community?](/community/) +{.link-intern} + +## Weitere Informationen über das Projekt + +[Warum OpenStreetMap?](/projekt/warum-openstreetmap/) — Argumente für und +gegen OSM +{.link-intern} + +[Wie das Projekt organisiert ist](/projekt/organisation/) +{.link-intern} + +[Noch mehr Fragen? Antworten gibts in unserer FAQ!](/faq/) +{.link-intern} + diff --git a/content/projekt/karten/_index.md b/content/projekt/karten/_index.md new file mode 100644 index 0000000..ce93ecf --- /dev/null +++ b/content/projekt/karten/_index.md @@ -0,0 +1,91 @@ +--- +title: Beispiele für OpenStreetMap-Karten +--- + +# Beispiele für OSM-Karten + +Die OpenStreetMap-Daten kann man in vielen verschiedenen Karten darstellen, die +nicht nur verschieden aussehen, sondern auch unterschiedliche Informationen +enthalten. Hier stellen wir ein paar Beispiele vor. Manche dieser Karte sind +von Profis gemacht, viele wurden aber auch einfach von Enthusiasten +zusammengestellt. + +{{< rawhtml >}} + +
+ + +

OpenStreetMap Standardkarte

+ die OSM-Standardkarte auf www.openstreetmap.org
+
+ + +

OpenStreetMap deutscher Stil

+ mit deutschsprachigen Beschriftungen und einigen kleinen Änderungen + zur Standardkarte
+
+ + +

ÖPNV-Karte

+ mit der Ausrichtung auf den Nahverkehr
+
+ + +

OpenTopoMap

+ an die amtliche topographische Karte angelehnt
+
+ + +

Wanderreitkarte

+ speziell für Reiter und Wanderer
+
+ + +

OpenSeaMap

+ für die Seefahrt
+
+ + +

OpenCycleMap

+ für Radfahrende
+
+ + +

CyclOSM

+ für Radfahrende
+
+ + OpenSnowMap +

OpenSnowMap

+ für Wintersportler
+
+ + +

OpenFireMap

+ mit Feuerwehrwachen und Hydranten
+
+ + +

OpenCampingMap

+ zeigt Zelt- und Campingplätze
+
+ + +

WheelMap

+ zeigt rollstuhlgerechte Orte
+
+ + +

OpenRailwayMap

+ für Eisenbahn-Enthusiasten
+
+ + +

Waymarked Trails

+ zum Wandern (die Webseite bietet auch Karten zum Reiten, Radfahren, + und mehr an)
+
+
+ +{{< /rawhtml >}} + diff --git a/content/projekt/organisation.md b/content/projekt/organisation.md new file mode 100644 index 0000000..60a0e95 --- /dev/null +++ b/content/projekt/organisation.md @@ -0,0 +1,61 @@ +--- +title: Wie das Projekt organisiert ist +--- + +# Wie das Projekt organisiert ist + +Das OpenStreetMap-Projekt ist sehr sehr locker organisiert. Es gibt keinen +Chef und keine formelle Mitgliedschaft. Wer mitmachen will, macht mit. Wer +OSM nutzen will, nutzt OSM. Um Erlaubnis fragen muss niemand. + +## Die Community + +Das Wichtigste an OSM ist die Community. Wer sich zugehörig fühlt, gehört +dazu. Viele tragen Daten zu OSM bei, aber treten sonst kaum in Kontakt zu +anderen. Aber viele beteiligen sich auch an Diskussionen im Internet oder +auf Treffen, schreiben Dokumentationen, betreiben Öffentlichkeitsarbeit oder +tragen auf vielfältige andere Art und Weise bei. + +Mehr über die [Community](/community/) +{.link-intern} + +## Die OpenStreetMap Foundation + +Die in Großbritannien eingetragene OpenStreetMap Foundation unterstützt das +Projekt aber sie kontrolliert es nicht. Sie kümmert sich um rechtliche Fragen +und sammelt Geld für den Betrieb der Server und dergleichen. Aber sie ist nur +eine relativ kleine Organisation mit dreistelliger Mitgliederzahl und nur drei +Angestellten. + +Die formellen Rechte an der OSM-Datenbank liegen bei der OSM Foundation. + +Die [OpenStreetMap Foundation](https://osmfoundation.org/) +{.link-extern} + +## Der FOSSGIS e.V. + +In Deutschland gibt es den FOSSGIS e.V., einen gemeinnützigen Verein, der auch +diese Webseite betreibt und verantwortet. Der FOSSGIS ist ein sogenanntes +„local chapter“ der OSM Foundation, also die lokale Vertretung von OSM für +Deutschland. + +Der FOSSGIS finanziert sich aus Mitgliedsbeiträgen, Spenden und den Einnahmen +aus unserer jährlichen Konferenz. + +Zum [FOSSGIS e.V.](https://www.fossgis.de/) +{.link-extern} + +Zur [FOSSGIS-Konferenz](https://fossgis-konferenz.de/) +{.link-extern} + +Vom FOSSGIS betriebene [OSM-Dienste](/nutzen/dienste-osm-de/) +{.link-intern} + +## Wer bezahlt das alles? + +Die allermeiste Arbeit im Projekt wird ehrenamtlich gemacht. Es gibt nur einige +wenige Angestellte. + +Sowohl die OSM Foundation als auch der FOSSGIS e.V. haben Mitgliedsbeiträge +und sammeln Spenden und Sponsoring-Gelder ein. + diff --git "a/content/projekt/osm-f\303\274r-was.md" "b/content/projekt/osm-f\303\274r-was.md" new file mode 100644 index 0000000..e2b2648 --- /dev/null +++ "b/content/projekt/osm-f\303\274r-was.md" @@ -0,0 +1,131 @@ +--- +title: Für was kann man OpenStreetMap nutzen? +--- + +# Für was kann man OpenStreetMap nutzen? + +OpenStreetMap ist nicht nur eine Karte, es ist viel mehr. OpenStreetMap ist +eine riesige Sammlung von Geodaten, also geographische Fakten über diese Welt. +Damit kann man so einiges anstellen. + +Unser [Themenportal](/themen/) zeigt für viele Interessensgebieten und +Branchen, wie man OSM verwenden kann. +{.link-intern} + +## Karten + +{{< rawhtml >}} +
+ +
OSM-Karte in einem Bus des Hamburger Verkehrsverbundes
+
+{{< /rawhtml >}} + +Natürlich kann man aus den Geodaten Karten machen: Landkarten, Straßenkarten, +Wanderkarten, Orts- und Weltkarten. Die können ganz unterschiedliche Dinge +zeigen. Und die Dinge betonen, die für diese Karte wichtig sind, andere Dinge +weglassen oder nur andeuten. Eine Straßenkarte wird Straßen enthalten, ebenso +wie eine Karte für Radfahrerinnen. Aber es werden andere Details als für +Autofahrer betont werden. + +Karten können für das Web gemacht werden, für das Smartphone, oder — ganz +klassisch — auf Papier oder als großer Plan, der am Wanderweg aufgestellt +wird. + +Beispiele für [OSM-basierte Karten](/projekt/karten/) +{.link-intern} + +## Navigation + +{{< rawhtml >}} +
+ +
Isochronenkarten zeigen Gebiete mit gleichen Reisezeiten an. (Hier mit Valhalla berechnet.)
+
+{{< /rawhtml >}} + +Karten haben sicher nicht ausgedient, aber in der Praxis wird man sich heute +häufg einfach vom Smartphone navigieren lassen: „An der nächsten Kreuzung bitte +rechts abbiegen.“ OSM-Daten sind für die Navigation geeignet. Software kann +heute in Millisekunden den besten Weg von Gibraltar nach Wladiwostok finden. +Oder von Deinem Standort zum nächsten Bäcker. + +Navigation muss nicht nur auf Straßen stattfinden. Mit OSM-Daten kann man sich +zum Beispiel auch auf Skipisten leiten lassen, inklusive nötiger Liftstrecken. + +Moderne Navigationssoftware bietet eine Vielzahl von Features über das einfache +Finden von Routen hinaus: Berechnen von Isochronen (siehe Bild), Ausschluß von +Gebieten (die zum Beispiel nach einem Erdbeben nicht erreichbar sind), +Routenoptimierung für Fahrzeugflotten und vieles mehr. + +[Software für die Navigation](/nutzen/navigation/) +{.link-intern} + +[OpenSnowMap (Navigation auf Skipisten)](https://www.opensnowmap.org/) +{.link-extern} + +## Geocoding + +Beim sogenannten *Geocoding* geht es darum zu einem Ortsnamen oder einer +Adresse den passenden Punkt auf der Karte zu finden. Beim umgekehrten Problem, +zu einem Punkt auf der Welt die nächste Adresse zu finden spricht man von +*reverse Geocoding*. Geocoding ist ein kompliziertes Problem, weil Anfragen +häufig nicht eindeutig sind oder sich Schreibweisen leicht unterscheiden. + +Im OSM-Umfeld wird meist die speziell für OpenStreetMap entwickelte Software +*Nominatim* eingesetzt. + +[Nominatim](https://nominatim.org/) +{.link-extern} + +[Photon](https://photon.komoot.io/) baut auf Nominatim auf. +{.link-extern} + +[Pelias](https://pelias.io/) +{.link-extern} + +## Datenanalyse + +Und auch die Analyse der OSM-Daten wird vielfach benutzt, um unsere Welt besser +zu verstehen. Welche Gegenden sind besonders gut vom ÖPNV abgedeckt? Wie weit +ist es zum nächsten Krankenhaus? + +Wenn man die OSM-Daten mit anderen Daten verbindet, kann man eine Menge +interessanter Fragen beantworten. Will man zum Beispiel den Standort von +Windkraftanlagen planen braucht man Statistiken zu Windstärken in einer Gegend +(nicht in OSM), die man mit Informationen über Gebäuden aus OSM verbinden +kann, zu denen ein Abstand eingehalten werden muss. + +## Spielerisches + +{{< rawhtml >}} +
+ +
Die Watercolor Map von Stamen Design
+
+{{< /rawhtml >}} + +Mit so vielen Daten kann man nicht nur nützliche Dinge tun, sondern auch +schöne, spielerische und spaßige. + +Zu einiger Bekanntheit hat es die [Watercolor +Map](https://maps.stamen.com/watercolor/) von Stamen Design gebracht. Sie hat +es sogar in die [Sammlung des +Smithsonian](https://www.si.edu/newsdesk/releases/watercolor-maptiles-website-enters-permanent-collection-cooper-hewitt) +geschafft. + +Bei OSM gibt es eine Tradition zum jährlichen Geburtstag des Projekts im August +[Kuchen mit einer Karte darauf zu +backen](https://wiki.openstreetmap.org/wiki/Cake). + +OSM eignet sich auch sehr gut als Spiele-Karte. Der Microsoft-Flight-Simulator +zum Beispiel benutzt OSM. Berühmt berüchtigt ist in OSM-Kreisen das Spiel +[Pokémon Go](https://wiki.openstreetmap.org/wiki/Pok%C3%A9mon_Go). Die +OSM-Daten beeinflussen wo welche Pokémon-Figuren auf der Karte erscheinen, was +einige Spieler bewogen hat, bei OSM mitzuhelfen. Aber es hat auch zu Mißbrauch +geführt. + +Und man kann die OSM-Karte auch in die echte Welt zurückbringen: Die Berliner +Firma [kinderkiez](https://kinderkiez.net/) verkauft Spielteppiche für Kinder. +Als Grundlage dienen OSM-Daten jeder gewünschten Gegend. + diff --git a/content/projekt/warum-openstreetmap.md b/content/projekt/warum-openstreetmap.md new file mode 100644 index 0000000..4b05ff7 --- /dev/null +++ b/content/projekt/warum-openstreetmap.md @@ -0,0 +1,96 @@ +--- +title: Warum OpenStreetMap? +--- + +# Warum OpenStreetMap? + +Du überlegst OSM einzusetzen, bist Dir aber noch nicht sicher? Hier sind ein +paar Argumente für und wider OSM. + +## Was für OSM spricht + +**Globale Abdeckung:** Viele andere Geodatensätze hören an der Gemeindegrenze +oder der Landesgrenze auf. OSM-Daten gibt es für die ganze Welt. Nicht überall +gleich gut oder gleich vollständig und auch nicht überall ganz einheitlich, +aber für viele Anwendungen ist die Abdeckung mehr als ausreichend. + +**Datenschutz:** Viele Webdienste und Apps verfolgen einen auf Schritt und +Tritt. Der Anbieter weiß immer, wo man ist oder was man auf der Karte +angeschaut hat. Bei OSM kann man den kompletten Datensatz runterladen und damit +eigene Dienste bauen, die den Kunden nicht nachspionieren. + +**Offline-Nutzung:** Nicht überall hat man mit dem Handy Internet. Bei OSM-Apps +ist es üblich, die Daten vorher herunterzuladen und dann komplett offline +nutzen zu können. + +**Daten zum Herunterladen:** Für die Generierung von Themen-Karten, speziellere +Routinganwendungen oder komplexere Analysen braucht man Zugriff auf alle Daten, +um sie so organisieren und filtern zu können, wie man es braucht. Bei OSM kann +man alle Daten herunterladen und ist nicht auf die Nutzung durch eine API +beschränkt. + +**Zusammenhängende Daten:** OSM hat viele Daten aus ganz verschiedenen +Bereichen, die in der Regel gut zusammenpassen. Man spart sich so Daten aus +verschiedenen Quellen zu finden, zu konvertieren und dann zu aggregieren und +abzugleichen. + +**Flexibel:** OSM ist endlos flexibel. OSM wächst und ändert sich mit neuen +Anwendungen und Ideen. + +**Datenkorrektur:** Entdeckt man einen Fehler in den Daten, kann man ihn selbst +sofort beheben und alle haben innerhalb von Minuten Zugriff auf die +korrigierten Daten. Bei anderen Datensammlungen ist die Korrektur der Daten +häufig aufwändig und manchmal garnicht möglich. Und die Update-Zyklen messen +sich häufig eher in Monaten. + +**Software:** Die OSM-Community hat eine riesige Menge an Open-Source-Software +speziell für OSM entwickelt. Und auch andere Software, gleich ob Open Source +oder proprietär, kann mit OSM-Daten arbeiten. Für so ziemlich jedes Problem +hat schonmal jemand eine Software gebaut, auf die sich aufsetzen läßt. + +**Community:** OSM hat eine lebendige Community, die mitdenkt und mithilft. Für +viele geht es um den Spaß an der Sache und darum, die beste Lösung zu finden, +nicht möglichst bald Feierabend zu machen. + +**Ökosystem:** Um OSM hat sich ein großes Ökosystem gebildet. Es gibt +zahlreiche Firmen in vielen Ländern, die OSM-Daten aufbereiten und für Kunden +in allen möglichen Formaten, Diensten und Karten zur Verfügung stellen oder +andere Dienste rund um OSM anbieten. + +**Lizenz:** Die OSM-Daten stehen unter einer offenen Lizenz, die praktisch so +ziemlich alles erlaubt. Es gibt keine Einschränkungen bei der „Menge“ der +Nutzung oder den Nutzungsarten. + +**Kosten:** OSM-Daten sind kostenlos. Aber die Daten zu verarbeiten und Dienste +darauf aufzubauen kostet Geld. Man kann das selbst machen, dann kostet es +Arbeit. Oder man beauftragt einen Dienstleister, dann zahlt man an den. +Kostenlos ist die Nutzung also auch nicht. Aber häufig deutlich billiger als +bei der Konkurrenz. Letztlich hängt das aber stark von der Art der Nutzung ab. + +**Breite Nutzung:** OSM wird heute an so vielen Stellen genutzt, dass auch +immer mehr zu OSM beitragen, damit ihre Daten bei OSM erscheinen. Und das macht +natürlich auch wieder die Nutzung interessanter. + +## Was gegen OSM spricht + +Natürlich ist nicht alles perfekt bei OSM, es gibt durchaus auch Nachteile und +Bereiche für die man OSM nicht verwenden sollte: + +**Nicht amtlich:** Die Daten in OSM sind keine amtlichen Daten und werden es +nie sein. Wenn Du ein Grundstück verkaufen willst, dann solltest Du im +amtlichen Kataster schauen, nicht in OSM. + +**Nicht perfekt:** OSM enthält Fehler, wie alles, was von Menschen gemacht +wird. Es kommt auf die Anwendung darauf an, welche Fehler man tolerieren kann +und welche nicht. + +**Keine Garantien:** OSM gibt keine Garantien, wie genau die Daten sind oder +wie aktuell oder wie vollständig. Manche andere Datenquellen versprechen mehr. +Ob sie diese Versprechen auch halten, sollte man aber durchaus auch mal +hinterfragen. + +**Lizenz:** Die bei OSM verwendete Open Database License ist zwar sehr offen, +aber sie erfordert immernoch eine Namensnennung und hat gewisse Regeln beim +Mischen mit Daten aus anderen Quellen. Das passt nicht für jeden +Anwendungszweck. + diff --git "a/content/projekt/was-geh\303\266rt-nach-osm.md" "b/content/projekt/was-geh\303\266rt-nach-osm.md" new file mode 100644 index 0000000..86ebcae --- /dev/null +++ "b/content/projekt/was-geh\303\266rt-nach-osm.md" @@ -0,0 +1,129 @@ +--- +title: Welche Daten gehören nach OSM und welche nicht? +--- + +# Welche Daten gehören nach OSM und welche nicht? + +Immer wieder wird die Frage gestellt, ob bestimmte Daten nach OpenStreetMap +gehören oder nicht. Die Antwort darauf ist nicht immer so klar, und sie ändert +sich auch über die Zeit. OSM entwickelt sich immer weiter. + +## Fakten + +Grundsätzlich tragen wir bei OSM nur Fakten über die Welt ein, so wie sie heute +aussieht. Wir mappen nicht, wie die Welt zu Zeit der Römer aussah oder wie sie +vielleicht mal aussehen könnte, wenn die Umgehungsstraße gebaut wird. Und wir +tragen auch nicht ein, welches Restaurant die besten Pommes hat. + +## Die „On the Ground Rule“ + +Mit der Zeit hat sich bei OSM die „On the Ground Rule“ als Kurzformel dafür +etabliert. + +„On the ground“ heißt wörtlich „auf dem Boden“, eine bessere Übersetzung ist +hier: „vor Ort sichtbar“. Wir tragen alles so ein, wie man es sieht, wenn man +vor Ort ist. Das muss man nicht immer wörtlich nehmen, oft mappen wir ja von +Luftbildern aus. Aber auch da gilt, wir tragen in der Regel nur ein, was man +vor Ort sehen kann oder was die Leute vor Ort einem sagen würden, wenn man +sie fragt. + +Steht da ein Ortsschild mit einem Namen, dann gilt erstmal dieser Name. Gibt es +kein Schild, fragt man die Leute vor Ort, wie sie den Ort nennen. Ob der Ort +vielleicht „offiziell“ irgendwo einen anderen Namen hat, ist da nicht so +wichtig. (Man kann aber den offiziellen Namen zusätzlich eintragen.) + +## Grenzen + +Immer wieder gibt es Streitigkeiten darüber wo internationale Grenzen verlaufen +oder sogar darüber, ob ein Gebiet nun ein unabhängiges Land ist oder nicht. +Ein internationales Projekt kann da nicht einfach die Sichtweise eines Landes +oder einer Regierung übernehmen. Für OSM gilt: Wie ist die Situation vor Ort? +Was gilt faktisch vor Ort? Wie sehen es die Leute, die vor Ort sind? + +## Öffentlich bekannte Informationen + +In aller Regel tragen wir nur Informationen ein, die öffentlich bekannt sind. +Vielleicht deshalb, weil man sie vor Ort oder auf allgemein zugänglichen +Luftbildern sehen kann, weil sie auf einem Schild vor Ort stehen, oder im +Internet zu finden sind. + +Es gibt viele Informationen, die nicht „geheim“ sind im rechtlichen Sinne, die +aber doch nicht unbedingt allgemein bekannt sind. Zum Beispiel der Eingang zu +einem eingefallenen gefährlichen Stollen oder der Standort eines Frauenhauses +in dem mißhandelte Frauen Schutz suchen. Sowas tragen wir dann nicht ein. Da +geht es auch um die Verantwortung jedes Mappers, man muss sich überlegen, ob +die Eintragung vielleicht mehr Schaden verursachen kann als sie nützt. + +Das darf man aber auch nicht zu weit auslegen. Öffentliche Infrastruktur, wie +Hochspannungsleitungen und Umspannwerke können vielleicht das Ziel von +Terroristen sein. Aber sie deswegen nicht einzutragen ist nicht sehr sinnvoll, +wenn man sie vor Ort sehen kann und sie auch in vielen amtlichen Karten und +Datenbanken eingetragen sind. + +## Was gehört nicht nach OSM? + +### Persönliche Meinungen + +Persönliche Meinungen über die schönste Aussicht, das leckerste Steak oder +Werbeversprechen gehören nicht nach OSM. So vermeiden wir Streitereien, die +sich letztlich nicht lösen lassen. Das ist besonders wichtig in einem +internationalen Projekt, in dem so viele Menschen mit verschiedenen kulturellen +Hintergründen zusammenarbeiten. + +### Private Daten + +Nicht nach OSM gehören private Daten, die dem Datenschutz unterliegen. Zum +Beispiel Namen von Hausbesitzern und deren Telefonnummer oder so etwas. Das +gilt natürlich nicht für den Namen eines Geschäftes oder einer Arztpraxis und +deren Telefonnummer. Solche Firmen wollen ja auch gefunden werden. + +Und nur weil etwas auf einem Privatgrundstück liegt, heißt das nicht, dass es +nicht eingetragen werden kann. Privatwege, Gebäude, usw. dürfen eingetragen +werden, wenn sie von öffentlichem Grund einsehbar sind oder auch von +Luftbildern. Auch amtliche Karten hören ja nicht an den Grundstücksgrenzen +auf. + +### Öffentliche Sicherheit + +In manchen Ländern ist es verboten, militärische Einrichtungen oder dergleichen +auf eine Karte einzuzeichnen. In Deutschland gilt das so allgemein nicht. Es +ist auch fraglich wie viel es an Sicherheit bringen würde, wenn Einrichtungen +nicht eingetragen werden, die klar auf Luftbildern zu erkennen sind (oder wenn +man davor steht). + +### Naturschutz + +Manche Dinge tragen wir aus Gründen des Naturschutzes nicht ein. Zum Beispiel +Nistplätze von seltenen Vögeln. Das Interesse des Naturschutzes überwiegt +hier. + +Etwas anders ist die Lage bei Wegen in Naturschutzgebieten. Die Wege dürfen +vielleicht nicht begangen werden, aber sie sind da und auch klar erkennbar. Wir +tragen sie daher ein, markieren sie aber als gesperrt. Je nachdem kann die +Sperrung vielleicht auch nur für bestimmte Fahrzeuge gelten oder nur in +bestimmten Zeiträumen. + +## Offenheit für Experimente + +OpenStreetMap ist auch deshalb groß geworden, weil es sehr wenige Regeln +festgelegt hat. Raum zum Experimentieren gehört bei OSM dazu. Durch +ausprobieren, was in der Praxis funktioniert und was nicht, haben wir zu einem +Datenschema gefunden, was mit keinem anderen Schema auf der Welt kompatibel +ist, aber vielleicht gerade deshalb so gut funktioniert. + +Heute benutzen sehr viele Leute OSM. Sie verlassen sich darauf, dass alles +morgen noch so funktioniert wie gestern. Darauf muss man Rücksicht nehmen und +das schränkt unser Experimentiermöglichkeiten natürlich etwas ein. Aber es ist +trotzdem möglich, OSM weiterzuentwickeln. Dabei sollte man immer beachten, dass +es meist kein Problem ist, zusätzliche Informationen zu erfassen, die +bestehende Daten ergänzen. Das Ändern bestehender Datenschemata ist aber +problematisch, weil man nie wissen kann, wer diese Daten bisher wie nutzt. + +## Konflikte + +Natürlich kann es hier und dort immer mal wieder zu Konflikten kommen, was +wie eingetragen werden darf oder nicht darf. + +[Wie wir mit Konflikten umgehen](/community/konflikte/) +{.link-intern} + diff --git a/content/projekt/wer-nutzt-osm.md b/content/projekt/wer-nutzt-osm.md new file mode 100644 index 0000000..9077c08 --- /dev/null +++ b/content/projekt/wer-nutzt-osm.md @@ -0,0 +1,110 @@ +--- +title: Wer nutzt OpenStreetMap? +--- + +# Wer nutzt OpenStreetMap? + +Eigentlich sollte es ganz einfach sein, festzustellen, wer alles +OpenStreetMap-Daten benutzt. Alle Nutzerinnen und Nutzer sind nämlich durch die +Lizenz verpflichtet, an ihre Karten oder sonstigen Anwendungen dranzuschreiben, +dass sie OSM verwenden. Aber nicht immer ist das leicht zu finden und manchmal +fehlt dieser Hinweis leider auch. + +Aber wenn man etwas die Augen offen hält, dann merkt man, wie oft OSM doch +im Hintergrund steckt. Manchmal wortwörtlich: der Kartenhintergrund ist +OSM und darüber werden andere Daten angezeigt. Manchmal eher versteckt: eine +spezielle App oder eine Datenanalyse nutzt OSM-Daten und bereitet sie speziell +auf, so dass man sie als solche erstmal nicht erkennt. + +Also, wer benutzt alles OSM? + +## Die großen Internet-Firmen + +Praktisch alle großen Internet-Firmen, die man so kennt, benutzen OSM. Ausnahme +ist Google, die nur auf eigene Karten setzen. Aber Apple, Amazon, Meta +(Faceboook), Microsoft (Bing) und viele andere setzen für ihre Karten zumindest +in einigen Ländern auf OSM-Daten. + +Abgesehen vom Marktführer benutzen die Suchmaschinen in der Regel OSM. Das ist +zum Beispiel bei Bing der Fall oder bei DuckDuckGo, die Apple Maps benutzen, +was wiederum teilweise auf OSM basiert. + +## Karten- und Navi-Anbieter und Logistik + +Viele Karten- und Navi-Anbieter setzen inzwischen auf OSM. Zum Beispiel der +[ADAC](https://maps.adac.de/). Oder der Karten- und Reiseliteratur-Konzern +[MairDumont](https://www.mairdumont.com/geschaftsbereiche/geodatenmanagement/), +zu dem bekannte Marken wie Baedeker und Falk gehören, nutzt OSM für manche +seiner Produkte. + +Der Navikartenabieter [TomTom](https://www.tomtom.com/) hat 2022 erklärt, dass +er verstärkt auf OSM setzen will. Und die Ridesharing-Firmen +[Uber](https://www.uber.com/), [Grab](https://www.grab.com/) und +[Lyft](https://www.lyft.com/) benutzen alle OSM, um ihre Fahrer effektiv zum +Kunden und die Kunden an ihr Ziel zu bringen. + +In der Logistik-Branche geht es nicht mehr ohne OSM. DHL (Deutsche Post) zum +Beispiel benutzt OSM nicht nur auf der öffentlichen Karte zur Paketverfolgung, +sondern auch intern, zur Planung von Routen für Briefträger oder +Paketauslieferung. + +## Online-Karten + +Viele der Karten, die man überall auf Webseiten findet, wurden aus OSM-Daten +erzeugt. Die Wikipedia benutzt OSM für ihre Karten genauso wie viele kleine +und große Projekte und Firmen. + +Häufig sieht man die Logos oder Namen von Anbietern wie +[Maptiler](https://www.maptiler.com/), [Mapbox](https://www.mapbox.com/) und +[Stadia Maps](https://stadiamaps.com/) an diesen Karten, sie alle setzen zum +großen Teil auf OSM-Daten. Schaut man sich Kundenlisten dieser Anbieter an, +findet man somit viele weitere OSM-Nutzer. + +## Spiele + +OSM eignet sich auch sehr gut als „Spiele-Karte“. Der [Microsoft Flight +Simulator](https://de.wikipedia.org/wiki/Microsoft_Flight_Simulator) zum +Beispiel benutzt OSM. Bei Ravensburger kann man sich ein [personalisiertes +Stadtplan-Puzzle](https://www.myravensburger.com/de-DE/stadtplan-puzzle/) +generieren lassen, dass auf OpenStreetMap-Daten beruht. Und die Berliner Firma +[kinderkiez](https://kinderkiez.net/) verkauft Spielteppiche für Kinder. Als +Grundlage dienen OSM-Daten jeder gewünschten Gegend. + +Berühmt berüchtigt ist in OSM-Kreisen das Spiel [Pokémon +GO](https://de.wikipedia.org/wiki/Pok%C3%A9mon_Go). Die OSM-Daten beeinflussen, +wo welche Pokémon-Figuren auf der Karte erscheinen, was einige Spieler bewogen +hat bei OSM mitzuhelfen. Aber auch zu Mißbrauch geführt hat... + +## Outdoor Sports + +Gerade im Bereich des Outdoor Sports, Wandern, Radfahren, Mountain Biking ist +OSM sehr beliebt, weil viele andere Karten diesen Bereich nicht gut abdecken. +Firmen wie [Komoot](https://www.komoot.com/), +[Outdooractive](https://www.outdooractive.com/de/) und +[Strava](https://www.strava.com/) benutzen OSM. + +## Öffentlicher Verkehr + +Sehr beliebt ist OSM im Bereich des öffentlichen Verkehrs. Die Deutsche Bahn +benutzt OSM an vielen Stellen, zum Beispiel zeigen die Bildschirme in ICEs und +vielen anderen Zügen auf OSM-Karten an, wo der Zug gerade ist. Und an fast +jedem Bahnhof hängen OSM-basierte Umgebungspläne in Schaukästen. + +Viele Karten von ÖPNV-Betreibern und -Verbünden benutzen OSM-Karten. Manchmal +kann man sich sogar von einem Bahnsteig zum anderen über OSM navigieren +lassen. + +## Und viele mehr... + +Das war nur ein winziger Ausschnitt. Eigentlich ist heute die Frage eher: Wer +benutzt OSM nicht. Wenn Ihr das nächste mal eine Karte seht, dann schaut mal +drauf, wer als Datenquelle genannt wurde. + +[Sammlung von OSM-Nutzern auf welcome.openstreetmap.org](https://welcome.openstreetmap.org/about-osm-community/consumers/) +{.link-extern} + +[Sammlung von OSM-Nutzern im OSM-Wiki](https://wiki.openstreetmap.org/wiki/They_are_using_OpenStreetMap) +{.link-extern} + +OSM in [Film](https://wiki.openstreetmap.org/wiki/Films) und [Fernsehen](https://wiki.openstreetmap.org/wiki/TV_series) +{.link-extern} diff --git a/content/shop/_index.md b/content/shop/_index.md new file mode 100644 index 0000000..3d5960d --- /dev/null +++ b/content/shop/_index.md @@ -0,0 +1,55 @@ +--- +title: OpenStreetMap Shop +aliases: [/fan-artikel, /fan-artikel.html] +--- + +# OpenStreetMap Shop + +Du willst Deine Begeisterung für OSM zeigen? Wir haben eine Auswahl an Goodies +zusammengestellt. + +{{< rawhtml >}} + + + + + + + + + + +
OSM-PinPin mit OpenStreetMap-Logo. Der Pin ist ca. 1,5cm hoch und 2cm breit und in der Form des Logos ausgeschnitten.
OSM-TasseDiese Tasse enthält 179 der wichtigsten OSM-Tags als Gedankenstütze für den täglichen Gebrauch. Die Tasse ist spülmaschinenfest. (Gerade vergriffen.)
+ +{{< /rawhtml >}} + +## Bestellen + +Wir arbeiten seit Jahren mit dem FLOSS-Shop zusammen. + +Bestellen beim [FLOSS Shop](https://www.floss-shop.de/de/floss-merchandise/openstreetmap/) +{.link-extern} + +Größere Mengen als Sammelbestellung geht auch. Bei Fragen wendet Euch an Petra +Kirchner (petra@floss-shop.de). + +## Material für Messen + +Manche dieser Dinge eignen sich auch zum Verkauf oder zum Verteilen auf Messen +und anderen Veranstaltungen. Wenn Ihr sowas organisieren wollt, meldet euch bei +[info@openstreetmap.de](mailto:info@openstreetmap.de). + +## Flyer + +Der OpenStreetMap-Flyer im DIN A7-Format eignet sich zum Verteilen bei +Veranstaltungen. Man kann sich auch ein paar in die Tasche stecken, wenn man +zum Mappen unterwegs ist - so ist die Frage, was man denn da tut, schnell +beantwortet! Auf [diesem Bild](/img/flyer-big.jpg) kannst Du sehen, wie der +Flyer aussieht. + +Die [Geofabrik GmbH](https://www.geofabrik.de/) sponsort den Druck der Flyer +(bislang wurden ca. 40.000 hergestellt). Solange der Vorrat reicht, können die +Flyer kostenlos in Mengen von ca. 10, ca. 100 und ca. 200 Stück (passt dann vom +Gewicht genau in verschieden Briefgrößen) von der Geofabrik angefordert werden. +Wende Dich an Frederik Ramm (frederik.ramm@geofabrik.de). + diff --git a/content/sitemap.md b/content/sitemap.md new file mode 100644 index 0000000..db38116 --- /dev/null +++ b/content/sitemap.md @@ -0,0 +1,7 @@ +--- +title: Sitemap +--- + +# Sitemap + +{{< sitemap >}} diff --git a/content/spenden.md b/content/spenden/_index.md similarity index 55% rename from content/spenden.md rename to content/spenden/_index.md index d946950..5987542 100644 --- a/content/spenden.md +++ b/content/spenden/_index.md @@ -1,66 +1,65 @@ --- -title: "Spenden" -menu_title: "Spenden" +title: Spenden an OpenStreetMap aliases: [/spenden.html] --- -## Spenden für OpenStreetMap +# Spenden für OpenStreetMap OpenStreetMap ist ein freies Projekt und niemand muss für die Nutzung der Daten, Karten und Dienste zahlen. Aber so ein Projekt am Laufen zu halten -kostet auch eine Menge Geld. Unterstützen Sie uns durch Ihre Spende! +kostet auch eine Menge Geld. Unterstütze uns durch Deine Spende! Der [FOSSGIS e.V.](https://www.fossgis.de/) ist die offizielle Vertretung des OpenStreetMap-Projektes in Deutschland. Er ist als gemeinnützig anerkannt, Ihre Spende kann von der Steuer abgesetzt werden. -{{< rawhtml >}} -
-
-{{< /rawhtml >}} +{{% rawhtml %}} +
+ +
## Spenden per Überweisung - +
+ - -
Kontoinhaber:FOSSGIS e.V.
IBAN:DE93 5519 0000 0415 9380 26
Verwendungszweck:Spende OpenStreetMap (ggf. Ihr Name/Adresse)
+ Verwendungszweck:Spende OpenStreetMap (ggf. Name/Adresse) + + -{{< rawhtml >}} -
-
-{{< /rawhtml >}} +
+
## Spenden über PayPal Mittels elektronischem Transfer über PayPal: {{< paypal >}} -{{< rawhtml >}} -
+ +
-{{< /rawhtml >}} +{{% /rawhtml %}} ## Spendenbescheinigung -Bei Spenden bis zu 300 EUR im Jahr benötigen Sie keine gesonderte -Zuwendungsbestätigung („Spendenbescheinigung“) von uns. Zur Anerkennung Ihrer -Zahlung als steuerlich abzugsfähige Zuwendung genügt es, wenn Sie in Ihrer +Bei Spenden bis zu 300 EUR im Jahr benötigst Du keine gesonderte +Zuwendungsbestätigung („Spendenbescheinigung“) von uns. Zur Anerkennung der +Zahlung als steuerlich abzugsfähige Zuwendung genügt es, wenn Du in der Steuererklärung diesen [Vereinfachten Zuwendungsnachweis](https://www.fossgis.de/verein/spenden/Vereinfachter-Zuwendungsnachweis-FOSSGIS.pdf) nach § 50 Abs. 4 EStDV und den Zahlungsbeleg (Buchungsbestätigung Ihres -Kreditinstituts, etwa in Form eines Kontoauszugs) Ihrem Finanzamt vorlegen. Der +Kreditinstituts, etwa in Form eines Kontoauszugs) Deinem Finanzamt vorlegen. Der Verwendungszweck muss dazu mindestens die Angabe „Spende“ enthalten. -Wenn Sie eine Spendenbescheinigung wünschen, können Sie Ihren Namen und Adresse +Wenn Du eine Spendenbescheinigung wünschst, kannst Du Deinen Namen und Adresse im Verwendungszweck angeben oder eine E-Mail an finanzen@fossgis.de schreiben. -Wir brauchen dafür Ihren Namen und die Postadresse, die auf die Bescheinigung -müssen. Bitte geben Sie in der E-Mail den Betrag und das Datum an, wann Sie die -Überweisung vorgenommen haben, damit wir die Zahlung schnell zuordnen können. +Wir brauchen den Namen und die Postadresse, weil die auf die Bescheinigung +müssen. Bitte gib in der E-Mail den Betrag und das Datum an, wann Du die +Überweisung vorgenommen hast, damit wir die Zahlung schnell zuordnen können. ## Spenden an die OSM Foundation International nimmt auch die [OpenStreetMap -Foundation](https://osmfoundation.org/) Spenden entgegen. Gehen Sie dazu -auf die Seite [supporting.openstreetmap.org](https://supporting.openstreetmap.org/). +Foundation](https://osmfoundation.org/) Spenden entgegen. Mehr dazu auf der +Seite [supporting.openstreetmap.org](https://supporting.openstreetmap.org/). diff --git a/content/suche/_index.md b/content/suche/_index.md new file mode 100644 index 0000000..e55aa4a --- /dev/null +++ b/content/suche/_index.md @@ -0,0 +1,6 @@ +--- +title: Suchergebnisse +sitemap: + priority : 0.1 +layout: "search" +--- diff --git a/content/themen/_index.md b/content/themen/_index.md new file mode 100644 index 0000000..b04dc61 --- /dev/null +++ b/content/themen/_index.md @@ -0,0 +1,14 @@ +--- +title: Themenportal +layout: single +--- + +# Themenportal + +OpenStreetMap ist nicht nur eine Karte. Es ist eine große Sammlung von +Geodaten, die man für viele verschiedene thematische Karte und spezielle +Anwendungen nutzen kann. Diese Seite zeigt eine Auswahl. Die Darstellung +weiterer Themen ist in Arbeit... + +{{< themengrid >}} + diff --git a/content/themen/eisenbahn/_index.md b/content/themen/eisenbahn/_index.md new file mode 100644 index 0000000..6ceec3e --- /dev/null +++ b/content/themen/eisenbahn/_index.md @@ -0,0 +1,60 @@ +--- +title: Eisenbahn +layout: themen +--- + +Eisenbahnen werden in OpenStreetMap oftmals mit viel Liebe zum Detail erfaßt. +Das gleiche gilt auch für Straßenbahnen, S- und U-Bahnen, Seilbahnen, +Schmalspurbahnen, Miniatureisenbahnen und generell alles, was auf Schienen +fährt. + +In der Regel ist jedes Gleis einzeln eingetragen. Dazu gibt es viele +Zusatzinformationen über die Spurweite, die Elektrifizierung der Strecke, die +Nutzungsart (Hauptgleise, Rangiergleise, Industriegleise ...) und vieles mehr. +Manchmal werden auch weitere Details wie Weichen und Signale erfaßt. + +Bahnhöfe und Haltepunkte mit ihren Namen und vielfach mit genauer Lage der +Bahnsteige, Treppen, Aufzüge werden auch mit eingetragen. Das ermöglicht eine +Navigation für Reisende von einem Bahnsteig zum anderen, wie ihn viele +Verkehrsunternehmen auf ihren Webseiten und Apps basierend auf OSM-Daten +anbieten. + +Die Deutsche Bahn und viele andere Verkehrsunternehmen benutzen OSM auf +vielfache Art und Weise. Mehr dazu auch unter dem Thema [öffentlicher +Personenverkehr](/themen/öpnv/). Die in DB-Zügen angezeigten Karten mit der +aktuellen Position des Zuges basieren auf OSM-Daten. Und auch die an sehr +vielen Bahnhöfen und Haltpunkten aushängenden Umgebungskarten benutzen +OSM-Daten. + +{{% infobox %}} + +{{< rawhtml >}} + +{{< /rawhtml >}} + +## Die OpenRailwayMap + +Die OpenRailwayMap wird von einigen Enthusiasten aus der OSM-Community +betrieben. Sie zeigt die bei OSM erfassten Daten zur Eisenbahn-Infrastruktur +auf vielfältige Weise. Man kann sich die Strecken nach verschiedenen Kriterien +wie der Spurweite oder die Art der Elektrifizierung einfärben lassen. Oder auch +die einzelnen Signal entlang der Gleise sehen. + +[OpenRailwayMap](https://openrailwaymap.org/) +{.link-extern} + +{{% /infobox %}} + +Es ist auch möglich auf den Gleisen automatisiert zu navigieren. Natürlich +reicht das nicht aus, um festzustellen, ob eine Verbindung wirklich möglich +ist, aber um zum Beispiel für den Güterverkehr eine erste Abschätzung zu +treffen, ob ein Transport per Bahn vielleicht möglich oder wie groß der +CO₂-Ausstoß wäre, dafür reicht es allemal. + +## Weiterführende Informationen + +Details zu Eisenbahnen im OSM-Wiki: [Railways](https://wiki.openstreetmap.org/wiki/Railways), +[Map Features: Railway](https://wiki.openstreetmap.org/wiki/Map_features#Railway), +[Key:railway](https://wiki.openstreetmap.org/wiki/DE:Key:railway). +{.link-extern} + diff --git a/content/themen/naturschutz/_index.md b/content/themen/naturschutz/_index.md new file mode 100644 index 0000000..b753273 --- /dev/null +++ b/content/themen/naturschutz/_index.md @@ -0,0 +1,77 @@ +--- +title: Naturschutz +layout: themen +--- + +Bei OpenStreetMap können Schutzgebiete und die für den Naturschutz besonders +wichtigen Zugangs- und Wegebeschränkungen eingetragen werden, damit die +Besucher besonders schutzbedürftige Gebiete nicht betreten. Manche +Naturschutzgebiete beschäftigen sogenannte Digital Ranger, zu deren Aufgaben es +unter anderem gehört, die OSM-Daten in ihrem Gebiet aktuell zu halten. + +## Schutzgebiete + +{{< rawhtml >}} +
+ +
OSM-Karte mit Grenze des Naturschutzgebietes Sächsische Schweiz
+
+{{< /rawhtml >}} + +Die Namen, Schutzgebietsklassen und Grenzen von Schutzgebieten wie +Nationalparks, Natur- oder Landschaftsschutzgebieten usw. können bei OSM +eingetragen werden. Weltweit gibt es über 80.000 solche Eintragungen, davon +sind ca. 10.000 in Deutschland. Da man die Grenzen vor Ort üblicherweise nicht +sehen kann, sind wir darauf angewiesen, entsprechende Daten aus amtlichen +Quellen zu übernehmen (wenn das lizenztechnisch geht) oder die Naturparks +ergänzen die Daten bei OSM selbst. + +## Wegebeschränkungen + +In vielen Schutzgebieten darf man nur auf entsprechend geeigneten Wegen laufen, +Rad fahren oder reiten. Manchmal gibt es Einschränkungen bei den +Verkehrsmitteln, teilweise auch zeitliche Einschränkungen, um der Landschaft +oder den Tieren Zeit zur Erholung zu geben. Solche Einschränkungen können in +OSM eingetragen werden. Die Einschränkungen sind allerdings nicht auf allen +Karten sichtbar und nicht alle Apps berücksichtigen auch alle Einschränkungen +bei der Navigation. + +Zu beachten ist in diesem Zusammenhang, dass wir alle in der Wirklichkeit +vorhandenen Wege in OSM eintragen, unabhängig davon, ob es sie geben sollte und +wie sie entstanden sind. Auch wenn der Weg für die Öffentlichkeit gesperrt ist, +ist er doch nunmal da. Er ist vor Ort zu sehen und auch auf dem Luftbild. Und +selbst wenn man ihn nicht gehen darf, kann er der Orientierung dienen. Würden +wir ihn löschen, trägt ihn der nächste wieder ein. Wege, die im Gelände als +gesperrt markiert sind — durch Schilder oder offensichtliche Barrieren +wie querliegende Bäume — tragen wir bei OSM als gesperrt ein. + +Und noch einen anderen Grund hat der Eintrag: OSM wird von vielen genutzt, +nicht nur von der Öffentlichkeit. Auch der Ranger im Naturpark will wissen, wo +er langgehen kann. Und die Bergwacht muss bei einem Einsatz vielleicht schnell +entscheiden, wie man einen Schwerverletzten möglichst einfach und schonend zu +Tal bringt. Das ist dann vielleicht wichtiger als eine Wegesperrung zum +Landschaftsschutz. + +Ist ein gesperrter Weg dann über die Jahre wieder zugewachsen, dann wird er +natürlich auch bei OSM irgendwann herausgenommen. + +## Was wir nicht eintragen + +Grundsätzlich tragen wir bei OSM nur ein, was vor Ort auch wirklich vorhanden +ist oder unabhängig einfach nachprüfbar ist. Persönliche Meinungen, wie „hier +ist es besonders schön“, gehören nicht nach OSM. Manchmal wird auch danach +gefragt, ob wir zum Beispiel Verbreitungsgebiete von Tierarten eintragen, das +passt aber von der Art der Daten nicht nach OSM. + +Nistplätze von (seltenen) Tierarten gehören nicht in eine öffentliche +Datenbank, also auch nicht nach OSM. Die Gefahr für den Mißbrauch ist einfach +zu groß. + +## Weiterführende Informationen + +[Nationalparks](https://wiki.openstreetmap.org/wiki/DE:Tag:boundary=national_park) +und [andere +Schutzgebiete](https://wiki.openstreetmap.org/wiki/DE:Tag:boundary=protected_area) +im OSM-Wiki. +{.link-extern} + diff --git a/content/themen/radfahren/_index.md b/content/themen/radfahren/_index.md new file mode 100644 index 0000000..594e1f9 --- /dev/null +++ b/content/themen/radfahren/_index.md @@ -0,0 +1,83 @@ +--- +title: Radfahren +image: radfahren.jpg +image_link: https://commons.wikimedia.org/wiki/File:Radfahrer_auf_dem_wundersch%C3%B6nen_Apfelb%C3%A4umchenweg_im_Landschaftsschutzgebiet_-_Einklang_von_Mensch_und_Natur.jpg +image_license: © Thomas Hoffmann CC-BY-SA 4.0 +layout: themen +--- + +Radfahrende haben schon sehr früh den Weg zu OSM gefunden, weil klassische +Navigationslösungen nur für Autos funktionierten. Heute gibt es eine riesige +Zahl von Apps und spezielle Navi-Geräten für Radfahrende von denen viele auf +OSM-Daten beruhen. + +"Radfahren" ist nicht gleich "Radfahren". Der Rennradfahrer hat anderen +Anforderungen als die Mountainbikerin und die wiederrum andere als der Vater +mit dem Kind im Anhänger. OSM hat für alle etwas zu bieten. Wir mappen, wo ein +Radweg vorhanden ist (längs der Straße oder getrennt geführt) oder ob eine +Einbahnstraße vielleicht für Radfahrer auch andersherum befahren werden darf. +Auch der Straßentyp gibt ja schon einen Hinweis, ob man dort radeln will oder +nicht (Wohnstraßen vs. Hauptverkehrsadern). Und wir erfassen auch die +Beschaffenheit der Wege (Asphalt, Schotterweg, Kopfsteinpflaster, ...) und +Hindernisse (wie Poller, Gitter und Schranken). + +{{% infobox %}} + +{{< rawhtml >}} +Beispiel Höhenprofil in BRouter Web +{{< /rawhtml >}} + +Nicht erfasst werden bei OSM Höheninformation. Aber es gibt anderen Quellen +dafür, die man gut zusammen mit OSM verwenden kann. Viele Bundesländer in +Deutschland und viele Länder außerhalb Deutschlands stellen Höheninformationen +in guter Auflösung für ihr Gebiet als Open Data zur Verfügung. + +Viele Navigationslösungen können daher Steigungen in die Routenplanung +mit einbeziehen. Sie zeigen dann auch ein Profil der Strecke mit an. +(*Das Beispiel rechts zeigt ein Profil der Software BRouter an.*) + +{{% /infobox %}} + +Spezielle Routing-Software kennt manchmal ein Dutzend Profile und mehr vom +Rennrad, über Trekkingrad, Gravel, MTB, Liegerad, ... in vielen Variationen, um +für jede und jeden die richtigen Routen zu finden. + +## Radrouten + +Ausgeschilderte Radfernwege und andere Radrouten werden bei OSM erfasst. Von +der kleinen lokalen Runde bis zu den EuroVelo-Routen, die durch ganz Europa +führen, ist alles dabei. Mehr und mehr erkennen auch Tourismus-Organisationen +den Wert dieser Informationen in OSM und machen beim Mappen mit. + +## Weitere Infrastruktur + +Für Radler sind natürlich nicht nur die Radwege selbst interessant, sondern +auch viel drumrum. Dazu gehört natürlich die allgemeine touristische +Infrastruktur, wie Gaststätten und Picknickplätze. Aber auch speziellere +Informationen, zum Beispiel über Verkaufsautomaten für Ersatzteile wie +Fahrradschläuche, gibt es bei OSM. + +## Weiterführende Informationen + +[Brouter](https://brouter.de/brouter/) +{.link-extern} + +[Brouter web](https://bikerouter.de/?lng=de) +{.link-extern} + +[OpenCycleMap](https://www.opencyclemap.org/) +{.link-extern} + +[cycle.travel](https://cycle.travel/) +{.link-extern} + +[Radrouten](https://cycling.waymarkedtrails.org/#?map=6.0/51.1075/10.9965) +und [MTB-Routen](https://mtb.waymarkedtrails.org/#?map=8.0/46.5641/8.2389) +auf WayMarkedTrails +{.link-extern} + +[Radwege](https://wiki.openstreetmap.org/wiki/DE:Tag:highway=cycleway) +und [Radrouten](https://wiki.openstreetmap.org/wiki/DE:Tag:route=bicycle) +im OSM-Wiki +{.link-extern} + diff --git a/content/themen/wintersport/_index.md b/content/themen/wintersport/_index.md new file mode 100644 index 0000000..1ab1a2a --- /dev/null +++ b/content/themen/wintersport/_index.md @@ -0,0 +1,42 @@ +--- +title: Wintersport +layout: themen +--- + +Bei OpenStreetMap werden auch Loipen, Skipisten, und -Lifte erfaßt. Damit +kann man dann die typischen Pistenkarten erstellen, mit nach +Schwierigkeitsgrad eingefärbten Pisten. Aber nicht nur das, man kann sich +sogar eine Route berechnen lassen, die von A nach B über Skipisten und Lifts +führt. + +Besonders nützlich beim Skifahren sind natürlich Karten, die auch +Höheninformationen enthalten. Nicht erfasst werden bei OSM Höheninformation. +Aber es gibt anderen Quellen dafür, die man gut zusammen mit OSM verwenden +kann. Viele Bundesländer in Deutschland und viele Länder außerhalb Deutschlands +stellen Höheninformationen in guter Auflösung für ihr Gebiet als Open Data zur +Verfügung. + +Und es gibt natürlich auch die Möglichkeit Eissporthallen, Bahnen zum +Eisstockschießen, Bobbahnen, Rodelbahnen und vieles mehr einzutragen. + +{{< rawhtml >}} +
+ +
Skigebiet in den Alpen auf der OpenSnowMap
+
+{{< /rawhtml >}} + +## Weiterführende Informationen + +[OpenSnowMap](https://www.opensnowmap.org/) +{.link-extern} + +[WinterSportSlopes on WayMarkedTrails](https://slopes.waymarkedtrails.org/) +{.link-extern} + +[Skipisten im OSM-Wiki](https://wiki.openstreetmap.org/wiki/DE:Tag:route=piste) +{.link-extern} + +[Wintersport im OSM-Wiki](https://wiki.openstreetmap.org/wiki/Winter_sports) +{.link-extern} + diff --git "a/content/themen/\303\266pnv/_index.md" "b/content/themen/\303\266pnv/_index.md" new file mode 100644 index 0000000..966f258 --- /dev/null +++ "b/content/themen/\303\266pnv/_index.md" @@ -0,0 +1,38 @@ +--- +title: Öffentlicher Verkehr +layout: themen +--- + +In OpenStreetMap werden sowohl die Infrastruktur für den öffentlichen Verkehr +erfaßt, wie Straßen und Schienen, Haltestellen, Bahnhöfe, ZOBs, +Taxistandplätze, und so weiter, wie auch die darüber verlaufenden Straßenbahn- +und U-Bahn-Linien, Busrouten und vieles mehr. + +Es gibt verschiedene Karten, die ÖPNV-Linien und -Haltestellen besonders +darstellen. Viele Karten von Verkehrsverbünden nutzen auch OSM-Daten, teilweise +erlauben die sogar multimodales Routing. Dabei werden detaillierte OSM-Daten +benutzt, um einen zur nächsten Haltestelle oder innerhalb einer Station von +einem Bahnsteig zum anderen zu navigieren. + +## Beitrag zu OSM + +Einige Verkehrsunternehmen und -verbünde haben sich schon früh aktiv bei OSM +beteiligt und die Art und Weise mit entwickelt, wie ÖPNV-Routen und +-Haltestellen bei OSM erfaßt werden. Manche kümmern sich aktiv darum, die +OSM-Daten zu aktualisieren, wenn sich zum Beispiel an Haltestellen etwas +ändert. + +## Weiterführende Informationen + +[Transport-Layer auf openstreetmap.org](https://www.openstreetmap.org/#map=14/52.52513/13.39826&layers=T) +{.link-extern} + +[ÖPNVKarte](https://öpnvkarte.de/) +{.link-extern} + +[Öffentlicher Verkehr im OSM-Wiki](https://wiki.openstreetmap.org/wiki/DE:Öffentlicher_Verkehr) +{.link-extern} + +[PTNA - Public Transport Network Analysis](https://ptna.openstreetmap.de/) +{.link-extern} + diff --git a/content/veranstaltungen/index.md b/content/veranstaltungen/_index.md similarity index 65% rename from content/veranstaltungen/index.md rename to content/veranstaltungen/_index.md index ea12e83..a85caf7 100644 --- a/content/veranstaltungen/index.md +++ b/content/veranstaltungen/_index.md @@ -1,9 +1,8 @@ --- -title: "OpenStreetMap-Kalender" -menu_title: "Kalender" +title: OpenStreetMap-Veranstaltungen --- -## Veranstaltungen +# Veranstaltungen Die Highlights der nächsten Zeit: @@ -18,4 +17,6 @@ Die Community organisiert eine Vielzahl von Veranstaltungen: {{< osmcal-events >}} Weitere OpenStreetMap-Veranstaltungen unter [osmcal.org](https://osmcal.org/). +Organisierst Du selbst eine Veranstaltung? Dann solltest Du sie dort eintragen. +Dazu mußt Du Dich nur mit Deinem OSM-Zugang einloggen. diff --git a/data/themes.toml b/data/themes.toml new file mode 100644 index 0000000..77159be --- /dev/null +++ b/data/themes.toml @@ -0,0 +1,25 @@ +[[theme]] +name = "eisenbahn" +title = "Eisenbahn" +short = "Eisen-bahn" + +[[theme]] +name = "naturschutz" +title = "Naturschutz" +short = "Natur-schutz" + +[[theme]] +name = "öpnv" +title = "ÖPNV" +short = "ÖPNV" + +[[theme]] +name = "radfahren" +title = "Radfahren" +short = "Rad-fahren" + +[[theme]] +name = "wintersport" +title = "Wintersport" +short = "Winter-sport" + diff --git a/hugo.toml b/hugo.toml new file mode 100644 index 0000000..0d9820b --- /dev/null +++ b/hugo.toml @@ -0,0 +1,122 @@ +baseURL = "https://openstreetmap.de/" +languageCode = "de-de" +title = "OpenStreetMap Deutschland" +disableKinds = ["taxonomy", "taxonomyTerm"] + +############################# Modules ############################## +[module.hugoVersion] +extended = true +min = "0.111.3" + +############################# Image Processing ############################## +[imaging] +quality = 95 + +############################# Outputs ############################## +[outputs] +home = ["HTML", "JSON"] + +[markup.goldmark.renderer] +unsafe= true + +[markup.goldmark.parser.attribute] +block = true + +[markup.goldmark.parser] +wrapStandAloneImageWithinParagraph = false + +############################## Plugins ############################## +# CSS Plugins +[[params.plugins.css]] + +# JS Plugins +[[params.plugins.js]] + +#################### default parameters ################################ +[params] +favicon = "img/favicon.ico" +# Meta data +description = "OpenStreetMap Deutschland" +author = "FOSSGIS e.V." +# search +search = false +copyright = "FOSSGIS e.V" +githubLink = "https://github.com/fossgis/openstreetmap.de/blob/staging" + +# Preloader +[params.preloader] +enable = false +preloader = "" # use jpg, png, svg or gif format. + +# cookies +[params.cookies] +enable = false +expire_days = 2 + +############################# Main Menu ######################## +[[menu.main]] +name = "Das Projekt" +url = "projekt/" +pre = '' +weight = 1 + +[[menu.main]] +name = "OSM nutzen" +url = "nutzen/" +pre = '' +weight = 2 + +[[menu.main]] +name = "Beitragen" +url = "beitragen/" +pre = '' +weight = 3 + +[[menu.main]] +name = "Community" +url = "community/" +pre = '' +weight = 4 + +[[menu.main]] +name = "Themenportal" +url = "themen/" +pre = '' +weight = 5 + +[[menu.main]] +name = "Kontakt" +url = "kontakt/" +pre = '' +weight = 6 + +[[menu.main]] +name = "" +url = "" +pre = '' +weight = 7 + +[[menu.main]] +name = "Veranstaltungen" +url = "veranstaltungen/" +pre = '' +weight = 8 +[menu.main.params] + short = true + +[[menu.main]] +name = "Spenden" +url = "spenden/" +pre = '' +weight = 9 +[menu.main.params] + short = true + +[[menu.main]] +name = "Shop" +url = "shop/" +pre = '' +weight = 10 +[menu.main.params] + short = true + diff --git a/layouts/404.html b/layouts/404.html index ec5c790..c7bd292 100644 --- a/layouts/404.html +++ b/layouts/404.html @@ -1,3 +1,3 @@ {{ define "main" }} -

404 Seite nicht gefunden

+

404 Seite nicht gefunden

{{ end }} diff --git a/layouts/_default/_markup/render-heading.html b/layouts/_default/_markup/render-heading.html new file mode 100644 index 0000000..a6dc30f --- /dev/null +++ b/layouts/_default/_markup/render-heading.html @@ -0,0 +1,4 @@ + + {{- .Text | safeHTML }} + 🔗 + diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 6e27ed2..fb2a79a 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -1,17 +1,14 @@ - + {{- partial "head.html" . -}} -
- OpenStreetMap - Deutschland - {{- partial "menu.html" . -}} -
+ {{ partial "header.html" . -}}
{{- block "main" . }}{{- end }} + {{/* partial "backlinks.html" (dict "page" .) */}}
- {{ partialCached "footer.html" . }} - - {{ $script := resources.Get "js/script.js" }} + {{ partial "footer.html" . -}} + {{- $script := resources.Get "js/script.js" }} diff --git a/layouts/_default/index.json b/layouts/_default/index.json new file mode 100644 index 0000000..684ebec --- /dev/null +++ b/layouts/_default/index.json @@ -0,0 +1,7 @@ +{{ $index := slice }} +{{ range .Site.AllPages }} + {{ if ne .Title "Sitemap" }} + {{ $index = $index | append (dict "title" .Title "tags" .Params.tags "categories" .Params.categories "contents" (replace .Plain "🔗" "") "permalink" .Permalink) }} + {{ end }} +{{ end }} +{{ $index | jsonify }} diff --git a/layouts/_default/karte.html b/layouts/_default/karte.html index 8be3961..de16b90 100644 --- a/layouts/_default/karte.html +++ b/layouts/_default/karte.html @@ -28,9 +28,11 @@ +
+ OpenStreetMap Deutschland {{- partial "menu.html" . -}} +
- OSM Deutschland `),i.append(r)),r}Object.keys(B).forEach((e=>{Object.keys(B[e]).forEach((t=>{H.prototype[t]=B[e][t]}))})),H.use([function({swiper:e,on:t,emit:s}){const a=r();let i=null;const n=()=>{e&&!e.destroyed&&e.initialized&&(s("beforeResize"),s("resize"))},l=()=>{e&&!e.destroyed&&e.initialized&&s("orientationchange")};t("init",(()=>{e.params.resizeObserver&&void 0!==a.ResizeObserver?e&&!e.destroyed&&e.initialized&&(i=new ResizeObserver((t=>{const{width:s,height:a}=e;let i=s,r=a;t.forEach((({contentBoxSize:t,contentRect:s,target:a})=>{a&&a!==e.el||(i=s?s.width:(t[0]||t).inlineSize,r=s?s.height:(t[0]||t).blockSize)})),i===s&&r===a||n()})),i.observe(e.el)):(a.addEventListener("resize",n),a.addEventListener("orientationchange",l))})),t("destroy",(()=>{i&&i.unobserve&&e.el&&(i.unobserve(e.el),i=null),a.removeEventListener("resize",n),a.removeEventListener("orientationchange",l)}))},function({swiper:e,extendParams:t,on:s,emit:a}){const i=[],n=r(),l=(e,t={})=>{const s=new(n.MutationObserver||n.WebkitMutationObserver)((e=>{if(1===e.length)return void a("observerUpdate",e[0]);const t=function(){a("observerUpdate",e[0])};n.requestAnimationFrame?n.requestAnimationFrame(t):n.setTimeout(t,0)}));s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),i.push(s)};t({observer:!1,observeParents:!1,observeSlideChildren:!1}),s("init",(()=>{if(e.params.observer){if(e.params.observeParents){const t=e.$el.parents();for(let e=0;e{i.forEach((e=>{e.disconnect()})),i.splice(0,i.length)}))}]);const J=[function({swiper:e,extendParams:t,on:s}){let a;function i(t,s){const a=e.params.virtual;if(a.cache&&e.virtual.cache[s])return e.virtual.cache[s];const i=a.renderSlide?d(a.renderSlide.call(e,t,s)):d(`
${t}
`);return i.attr("data-swiper-slide-index")||i.attr("data-swiper-slide-index",s),a.cache&&(e.virtual.cache[s]=i),i}function r(t){const{slidesPerView:s,slidesPerGroup:a,centeredSlides:r}=e.params,{addSlidesBefore:n,addSlidesAfter:l}=e.params.virtual,{from:o,to:d,slides:p,slidesGrid:c,offset:u}=e.virtual;e.params.cssMode||e.updateActiveIndex();const h=e.activeIndex||0;let m,f,g;m=e.rtlTranslate?"right":e.isHorizontal()?"left":"top",r?(f=Math.floor(s/2)+a+l,g=Math.floor(s/2)+a+n):(f=s+(a-1)+l,g=a+n);const v=Math.max((h||0)-g,0),w=Math.min((h||0)+f,p.length-1),b=(e.slidesGrid[v]||0)-(e.slidesGrid[0]||0);function x(){e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.lazy&&e.params.lazy.enabled&&e.lazy.load()}if(Object.assign(e.virtual,{from:v,to:w,offset:b,slidesGrid:e.slidesGrid}),o===v&&d===w&&!t)return e.slidesGrid!==c&&b!==u&&e.slides.css(m,`${b}px`),void e.updateProgress();if(e.params.virtual.renderExternal)return e.params.virtual.renderExternal.call(e,{offset:b,from:v,to:w,slides:function(){const e=[];for(let t=v;t<=w;t+=1)e.push(p[t]);return e}()}),void(e.params.virtual.renderExternalUpdate&&x());const y=[],E=[];if(t)e.$wrapperEl.find(`.${e.params.slideClass}`).remove();else for(let t=o;t<=d;t+=1)(tw)&&e.$wrapperEl.find(`.${e.params.slideClass}[data-swiper-slide-index="${t}"]`).remove();for(let e=0;e=v&&e<=w&&(void 0===d||t?E.push(e):(e>d&&E.push(e),e{e.$wrapperEl.append(i(p[t],t))})),y.sort(((e,t)=>t-e)).forEach((t=>{e.$wrapperEl.prepend(i(p[t],t))})),e.$wrapperEl.children(".swiper-slide").css(m,`${b}px`),x()}t({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}}),e.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]},s("beforeInit",(()=>{e.params.virtual.enabled&&(e.virtual.slides=e.params.virtual.slides,e.classNames.push(`${e.params.containerModifierClass}virtual`),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0,e.params.initialSlide||r())})),s("setTranslate",(()=>{e.params.virtual.enabled&&(e.params.cssMode&&!e._immediateVirtual?(clearTimeout(a),a=setTimeout((()=>{r()}),100)):r())})),s("init update resize",(()=>{e.params.virtual.enabled&&e.params.cssMode&&g(e.wrapperEl,"--swiper-virtual-size",`${e.virtualSize}px`)})),Object.assign(e.virtual,{appendSlide:function(t){if("object"==typeof t&&"length"in t)for(let s=0;s{const a=t[e],r=a.attr("data-swiper-slide-index");r&&a.attr("data-swiper-slide-index",parseInt(r,10)+i),s[parseInt(e,10)+i]=a})),e.virtual.cache=s}r(!0),e.slideTo(a,0)},removeSlide:function(t){if(null==t)return;let s=e.activeIndex;if(Array.isArray(t))for(let a=t.length-1;a>=0;a-=1)e.virtual.slides.splice(t[a],1),e.params.virtual.cache&&delete e.virtual.cache[t[a]],t[a]0&&0===e.$el.parents(`.${e.params.slideActiveClass}`).length)return;const a=e.$el,i=a[0].clientWidth,r=a[0].clientHeight,n=l.innerWidth,o=l.innerHeight,d=e.$el.offset();s&&(d.left-=e.$el[0].scrollLeft);const p=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let e=0;e=0&&s[0]<=n&&s[1]>=0&&s[1]<=o){if(0===s[0]&&0===s[1])continue;t=!0}}if(!t)return}e.isHorizontal()?((d||p||c||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((p||u)&&!s||(d||c)&&s)&&e.slideNext(),((d||c)&&!s||(p||u)&&s)&&e.slidePrev()):((d||p||h||m)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(p||m)&&e.slideNext(),(d||h)&&e.slidePrev()),i("keyPress",r)}}function p(){e.keyboard.enabled||(d(n).on("keydown",o),e.keyboard.enabled=!0)}function c(){e.keyboard.enabled&&(d(n).off("keydown",o),e.keyboard.enabled=!1)}e.keyboard={enabled:!1},t({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),s("init",(()=>{e.params.keyboard.enabled&&p()})),s("destroy",(()=>{e.keyboard.enabled&&c()})),Object.assign(e.keyboard,{enable:p,disable:c})},function({swiper:e,extendParams:t,on:s,emit:a}){const i=r();let n;t({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}}),e.mousewheel={enabled:!1};let l,o=u();const p=[];function h(){e.enabled&&(e.mouseEntered=!0)}function m(){e.enabled&&(e.mouseEntered=!1)}function f(t){return!(e.params.mousewheel.thresholdDelta&&t.delta=6&&u()-o<60||(t.direction<0?e.isEnd&&!e.params.loop||e.animating||(e.slideNext(),a("scroll",t.raw)):e.isBeginning&&!e.params.loop||e.animating||(e.slidePrev(),a("scroll",t.raw)),o=(new i.Date).getTime(),!1)))}function g(t){let s=t,i=!0;if(!e.enabled)return;const r=e.params.mousewheel;e.params.cssMode&&s.preventDefault();let o=e.$el;if("container"!==e.params.mousewheel.eventsTarget&&(o=d(e.params.mousewheel.eventsTarget)),!e.mouseEntered&&!o[0].contains(s.target)&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let h=0;const m=e.rtlTranslate?-1:1,g=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(e.isHorizontal()){if(!(Math.abs(g.pixelX)>Math.abs(g.pixelY)))return!0;h=-g.pixelX*m}else{if(!(Math.abs(g.pixelY)>Math.abs(g.pixelX)))return!0;h=-g.pixelY}else h=Math.abs(g.pixelX)>Math.abs(g.pixelY)?-g.pixelX*m:-g.pixelY;if(0===h)return!0;r.invert&&(h=-h);let v=e.getTranslate()+h*r.sensitivity;if(v>=e.minTranslate()&&(v=e.minTranslate()),v<=e.maxTranslate()&&(v=e.maxTranslate()),i=!!e.params.loop||!(v===e.minTranslate()||v===e.maxTranslate()),i&&e.params.nested&&s.stopPropagation(),e.params.freeMode&&e.params.freeMode.enabled){const t={time:u(),delta:Math.abs(h),direction:Math.sign(h)},i=l&&t.time=e.minTranslate()&&(o=e.minTranslate()),o<=e.maxTranslate()&&(o=e.maxTranslate()),e.setTransition(0),e.setTranslate(o),e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses(),(!d&&e.isBeginning||!u&&e.isEnd)&&e.updateSlidesClasses(),e.params.freeMode.sticky){clearTimeout(n),n=void 0,p.length>=15&&p.shift();const s=p.length?p[p.length-1]:void 0,a=p[0];if(p.push(t),s&&(t.delta>s.delta||t.direction!==s.direction))p.splice(0);else if(p.length>=15&&t.time-a.time<500&&a.delta-t.delta>=1&&t.delta<=6){const s=h>0?.8:.2;l=t,p.splice(0),n=c((()=>{e.slideToClosest(e.params.speed,!0,void 0,s)}),0)}n||(n=c((()=>{l=t,p.splice(0),e.slideToClosest(e.params.speed,!0,void 0,.5)}),500))}if(i||a("scroll",s),e.params.autoplay&&e.params.autoplayDisableOnInteraction&&e.autoplay.stop(),o===e.minTranslate()||o===e.maxTranslate())return!0}}else{const s={time:u(),delta:Math.abs(h),direction:Math.sign(h),raw:t};p.length>=2&&p.shift();const a=p.length?p[p.length-1]:void 0;if(p.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&f(s):f(s),function(t){const s=e.params.mousewheel;if(t.direction<0){if(e.isEnd&&!e.params.loop&&s.releaseOnEdges)return!0}else if(e.isBeginning&&!e.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function v(t){let s=e.$el;"container"!==e.params.mousewheel.eventsTarget&&(s=d(e.params.mousewheel.eventsTarget)),s[t]("mouseenter",h),s[t]("mouseleave",m),s[t]("wheel",g)}function w(){return e.params.cssMode?(e.wrapperEl.removeEventListener("wheel",g),!0):!e.mousewheel.enabled&&(v("on"),e.mousewheel.enabled=!0,!0)}function b(){return e.params.cssMode?(e.wrapperEl.addEventListener(event,g),!0):!!e.mousewheel.enabled&&(v("off"),e.mousewheel.enabled=!1,!0)}s("init",(()=>{!e.params.mousewheel.enabled&&e.params.cssMode&&b(),e.params.mousewheel.enabled&&w()})),s("destroy",(()=>{e.params.cssMode&&w(),e.mousewheel.enabled&&b()})),Object.assign(e.mousewheel,{enable:w,disable:b})},function({swiper:e,extendParams:t,on:s,emit:a}){function i(t){let s;return t&&(s=d(t),e.params.uniqueNavElements&&"string"==typeof t&&s.length>1&&1===e.$el.find(t).length&&(s=e.$el.find(t))),s}function r(t,s){const a=e.params.navigation;t&&t.length>0&&(t[s?"addClass":"removeClass"](a.disabledClass),t[0]&&"BUTTON"===t[0].tagName&&(t[0].disabled=s),e.params.watchOverflow&&e.enabled&&t[e.isLocked?"addClass":"removeClass"](a.lockClass))}function n(){if(e.params.loop)return;const{$nextEl:t,$prevEl:s}=e.navigation;r(s,e.isBeginning&&!e.params.rewind),r(t,e.isEnd&&!e.params.rewind)}function l(t){t.preventDefault(),(!e.isBeginning||e.params.loop||e.params.rewind)&&e.slidePrev()}function o(t){t.preventDefault(),(!e.isEnd||e.params.loop||e.params.rewind)&&e.slideNext()}function p(){const t=e.params.navigation;if(e.params.navigation=Y(e,e.originalParams.navigation,e.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!t.nextEl&&!t.prevEl)return;const s=i(t.nextEl),a=i(t.prevEl);s&&s.length>0&&s.on("click",o),a&&a.length>0&&a.on("click",l),Object.assign(e.navigation,{$nextEl:s,nextEl:s&&s[0],$prevEl:a,prevEl:a&&a[0]}),e.enabled||(s&&s.addClass(t.lockClass),a&&a.addClass(t.lockClass))}function c(){const{$nextEl:t,$prevEl:s}=e.navigation;t&&t.length&&(t.off("click",o),t.removeClass(e.params.navigation.disabledClass)),s&&s.length&&(s.off("click",l),s.removeClass(e.params.navigation.disabledClass))}t({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock"}}),e.navigation={nextEl:null,$nextEl:null,prevEl:null,$prevEl:null},s("init",(()=>{p(),n()})),s("toEdge fromEdge lock unlock",(()=>{n()})),s("destroy",(()=>{c()})),s("enable disable",(()=>{const{$nextEl:t,$prevEl:s}=e.navigation;t&&t[e.enabled?"removeClass":"addClass"](e.params.navigation.lockClass),s&&s[e.enabled?"removeClass":"addClass"](e.params.navigation.lockClass)})),s("click",((t,s)=>{const{$nextEl:i,$prevEl:r}=e.navigation,n=s.target;if(e.params.navigation.hideOnClick&&!d(n).is(r)&&!d(n).is(i)){if(e.pagination&&e.params.pagination&&e.params.pagination.clickable&&(e.pagination.el===n||e.pagination.el.contains(n)))return;let t;i?t=i.hasClass(e.params.navigation.hiddenClass):r&&(t=r.hasClass(e.params.navigation.hiddenClass)),a(!0===t?"navigationShow":"navigationHide"),i&&i.toggleClass(e.params.navigation.hiddenClass),r&&r.toggleClass(e.params.navigation.hiddenClass)}})),Object.assign(e.navigation,{update:n,init:p,destroy:c})},function({swiper:e,extendParams:t,on:s,emit:a}){const i="swiper-pagination";let r;t({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${i}-bullet`,bulletActiveClass:`${i}-bullet-active`,modifierClass:`${i}-`,currentClass:`${i}-current`,totalClass:`${i}-total`,hiddenClass:`${i}-hidden`,progressbarFillClass:`${i}-progressbar-fill`,progressbarOppositeClass:`${i}-progressbar-opposite`,clickableClass:`${i}-clickable`,lockClass:`${i}-lock`,horizontalClass:`${i}-horizontal`,verticalClass:`${i}-vertical`}}),e.pagination={el:null,$el:null,bullets:[]};let n=0;function l(){return!e.params.pagination.el||!e.pagination.el||!e.pagination.$el||0===e.pagination.$el.length}function o(t,s){const{bulletActiveClass:a}=e.params.pagination;t[s]().addClass(`${a}-${s}`)[s]().addClass(`${a}-${s}-${s}`)}function p(){const t=e.rtl,s=e.params.pagination;if(l())return;const i=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,p=e.pagination.$el;let c;const u=e.params.loop?Math.ceil((i-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(c=Math.ceil((e.activeIndex-e.loopedSlides)/e.params.slidesPerGroup),c>i-1-2*e.loopedSlides&&(c-=i-2*e.loopedSlides),c>u-1&&(c-=u),c<0&&"bullets"!==e.params.paginationType&&(c=u+c)):c=void 0!==e.snapIndex?e.snapIndex:e.activeIndex||0,"bullets"===s.type&&e.pagination.bullets&&e.pagination.bullets.length>0){const a=e.pagination.bullets;let i,l,u;if(s.dynamicBullets&&(r=a.eq(0)[e.isHorizontal()?"outerWidth":"outerHeight"](!0),p.css(e.isHorizontal()?"width":"height",r*(s.dynamicMainBullets+4)+"px"),s.dynamicMainBullets>1&&void 0!==e.previousIndex&&(n+=c-(e.previousIndex-e.loopedSlides||0),n>s.dynamicMainBullets-1?n=s.dynamicMainBullets-1:n<0&&(n=0)),i=Math.max(c-n,0),l=i+(Math.min(a.length,s.dynamicMainBullets)-1),u=(l+i)/2),a.removeClass(["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`)).join(" ")),p.length>1)a.each((e=>{const t=d(e),a=t.index();a===c&&t.addClass(s.bulletActiveClass),s.dynamicBullets&&(a>=i&&a<=l&&t.addClass(`${s.bulletActiveClass}-main`),a===i&&o(t,"prev"),a===l&&o(t,"next"))}));else{const t=a.eq(c),r=t.index();if(t.addClass(s.bulletActiveClass),s.dynamicBullets){const t=a.eq(i),n=a.eq(l);for(let e=i;e<=l;e+=1)a.eq(e).addClass(`${s.bulletActiveClass}-main`);if(e.params.loop)if(r>=a.length){for(let e=s.dynamicMainBullets;e>=0;e-=1)a.eq(a.length-e).addClass(`${s.bulletActiveClass}-main`);a.eq(a.length-s.dynamicMainBullets-1).addClass(`${s.bulletActiveClass}-prev`)}else o(t,"prev"),o(n,"next");else o(t,"prev"),o(n,"next")}}if(s.dynamicBullets){const i=Math.min(a.length,s.dynamicMainBullets+4),n=(r*i-r)/2-u*r,l=t?"right":"left";a.css(e.isHorizontal()?l:"top",`${n}px`)}}if("fraction"===s.type&&(p.find(W(s.currentClass)).text(s.formatFractionCurrent(c+1)),p.find(W(s.totalClass)).text(s.formatFractionTotal(u))),"progressbar"===s.type){let t;t=s.progressbarOpposite?e.isHorizontal()?"vertical":"horizontal":e.isHorizontal()?"horizontal":"vertical";const a=(c+1)/u;let i=1,r=1;"horizontal"===t?i=a:r=a,p.find(W(s.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${i}) scaleY(${r})`).transition(e.params.speed)}"custom"===s.type&&s.renderCustom?(p.html(s.renderCustom(e,c+1,u)),a("paginationRender",p[0])):a("paginationUpdate",p[0]),e.params.watchOverflow&&e.enabled&&p[e.isLocked?"addClass":"removeClass"](s.lockClass)}function c(){const t=e.params.pagination;if(l())return;const s=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,i=e.pagination.$el;let r="";if("bullets"===t.type){let a=e.params.loop?Math.ceil((s-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&e.params.freeMode.enabled&&!e.params.loop&&a>s&&(a=s);for(let s=0;s`;i.html(r),e.pagination.bullets=i.find(W(t.bulletClass))}"fraction"===t.type&&(r=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):` / `,i.html(r)),"progressbar"===t.type&&(r=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):``,i.html(r)),"custom"!==t.type&&a("paginationRender",e.pagination.$el[0])}function u(){e.params.pagination=Y(e,e.originalParams.pagination,e.params.pagination,{el:"swiper-pagination"});const t=e.params.pagination;if(!t.el)return;let s=d(t.el);0!==s.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&s.length>1&&(s=e.$el.find(t.el),s.length>1&&(s=s.filter((t=>d(t).parents(".swiper")[0]===e.el)))),"bullets"===t.type&&t.clickable&&s.addClass(t.clickableClass),s.addClass(t.modifierClass+t.type),s.addClass(t.modifierClass+e.params.direction),"bullets"===t.type&&t.dynamicBullets&&(s.addClass(`${t.modifierClass}${t.type}-dynamic`),n=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&s.addClass(t.progressbarOppositeClass),t.clickable&&s.on("click",W(t.bulletClass),(function(t){t.preventDefault();let s=d(this).index()*e.params.slidesPerGroup;e.params.loop&&(s+=e.loopedSlides),e.slideTo(s)})),Object.assign(e.pagination,{$el:s,el:s[0]}),e.enabled||s.addClass(t.lockClass))}function h(){const t=e.params.pagination;if(l())return;const s=e.pagination.$el;s.removeClass(t.hiddenClass),s.removeClass(t.modifierClass+t.type),s.removeClass(t.modifierClass+e.params.direction),e.pagination.bullets&&e.pagination.bullets.removeClass&&e.pagination.bullets.removeClass(t.bulletActiveClass),t.clickable&&s.off("click",W(t.bulletClass))}s("init",(()=>{u(),c(),p()})),s("activeIndexChange",(()=>{(e.params.loop||void 0===e.snapIndex)&&p()})),s("snapIndexChange",(()=>{e.params.loop||p()})),s("slidesLengthChange",(()=>{e.params.loop&&(c(),p())})),s("snapGridLengthChange",(()=>{e.params.loop||(c(),p())})),s("destroy",(()=>{h()})),s("enable disable",(()=>{const{$el:t}=e.pagination;t&&t[e.enabled?"removeClass":"addClass"](e.params.pagination.lockClass)})),s("lock unlock",(()=>{p()})),s("click",((t,s)=>{const i=s.target,{$el:r}=e.pagination;if(e.params.pagination.el&&e.params.pagination.hideOnClick&&r.length>0&&!d(i).hasClass(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&i===e.navigation.nextEl||e.navigation.prevEl&&i===e.navigation.prevEl))return;const t=r.hasClass(e.params.pagination.hiddenClass);a(!0===t?"paginationShow":"paginationHide"),r.toggleClass(e.params.pagination.hiddenClass)}})),Object.assign(e.pagination,{render:c,update:p,init:u,destroy:h})},function({swiper:e,extendParams:t,on:s,emit:i}){const r=a();let n,l,o,p,u=!1,h=null,m=null;function f(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:t,rtlTranslate:s,progress:a}=e,{$dragEl:i,$el:r}=t,n=e.params.scrollbar;let d=l,p=(o-l)*a;s?(p=-p,p>0?(d=l-p,p=0):-p+l>o&&(d=o+p)):p<0?(d=l+p,p=0):p+l>o&&(d=o-p),e.isHorizontal()?(i.transform(`translate3d(${p}px, 0, 0)`),i[0].style.width=`${d}px`):(i.transform(`translate3d(0px, ${p}px, 0)`),i[0].style.height=`${d}px`),n.hide&&(clearTimeout(h),r[0].style.opacity=1,h=setTimeout((()=>{r[0].style.opacity=0,r.transition(400)}),1e3))}function g(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:t}=e,{$dragEl:s,$el:a}=t;s[0].style.width="",s[0].style.height="",o=e.isHorizontal()?a[0].offsetWidth:a[0].offsetHeight,p=e.size/(e.virtualSize+e.params.slidesOffsetBefore-(e.params.centeredSlides?e.snapGrid[0]:0)),l="auto"===e.params.scrollbar.dragSize?o*p:parseInt(e.params.scrollbar.dragSize,10),e.isHorizontal()?s[0].style.width=`${l}px`:s[0].style.height=`${l}px`,a[0].style.display=p>=1?"none":"",e.params.scrollbar.hide&&(a[0].style.opacity=0),e.params.watchOverflow&&e.enabled&&t.$el[e.isLocked?"addClass":"removeClass"](e.params.scrollbar.lockClass)}function v(t){return e.isHorizontal()?"touchstart"===t.type||"touchmove"===t.type?t.targetTouches[0].clientX:t.clientX:"touchstart"===t.type||"touchmove"===t.type?t.targetTouches[0].clientY:t.clientY}function w(t){const{scrollbar:s,rtlTranslate:a}=e,{$el:i}=s;let r;r=(v(t)-i.offset()[e.isHorizontal()?"left":"top"]-(null!==n?n:l/2))/(o-l),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const d=e.minTranslate()+(e.maxTranslate()-e.minTranslate())*r;e.updateProgress(d),e.setTranslate(d),e.updateActiveIndex(),e.updateSlidesClasses()}function b(t){const s=e.params.scrollbar,{scrollbar:a,$wrapperEl:r}=e,{$el:l,$dragEl:o}=a;u=!0,n=t.target===o[0]||t.target===o?v(t)-t.target.getBoundingClientRect()[e.isHorizontal()?"left":"top"]:null,t.preventDefault(),t.stopPropagation(),r.transition(100),o.transition(100),w(t),clearTimeout(m),l.transition(0),s.hide&&l.css("opacity",1),e.params.cssMode&&e.$wrapperEl.css("scroll-snap-type","none"),i("scrollbarDragStart",t)}function x(t){const{scrollbar:s,$wrapperEl:a}=e,{$el:r,$dragEl:n}=s;u&&(t.preventDefault?t.preventDefault():t.returnValue=!1,w(t),a.transition(0),r.transition(0),n.transition(0),i("scrollbarDragMove",t))}function y(t){const s=e.params.scrollbar,{scrollbar:a,$wrapperEl:r}=e,{$el:n}=a;u&&(u=!1,e.params.cssMode&&(e.$wrapperEl.css("scroll-snap-type",""),r.transition("")),s.hide&&(clearTimeout(m),m=c((()=>{n.css("opacity",0),n.transition(400)}),1e3)),i("scrollbarDragEnd",t),s.snapOnRelease&&e.slideToClosest())}function E(t){const{scrollbar:s,touchEventsTouch:a,touchEventsDesktop:i,params:n,support:l}=e,o=s.$el[0],d=!(!l.passiveListener||!n.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!n.passiveListeners)&&{passive:!0,capture:!1};if(!o)return;const c="on"===t?"addEventListener":"removeEventListener";l.touch?(o[c](a.start,b,d),o[c](a.move,x,d),o[c](a.end,y,p)):(o[c](i.start,b,d),r[c](i.move,x,d),r[c](i.end,y,p))}function T(){const{scrollbar:t,$el:s}=e;e.params.scrollbar=Y(e,e.originalParams.scrollbar,e.params.scrollbar,{el:"swiper-scrollbar"});const a=e.params.scrollbar;if(!a.el)return;let i=d(a.el);e.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.find(a.el).length&&(i=s.find(a.el));let r=i.find(`.${e.params.scrollbar.dragClass}`);0===r.length&&(r=d(`
`),i.append(r)),Object.assign(t,{$el:i,el:i[0],$dragEl:r,dragEl:r[0]}),a.draggable&&e.params.scrollbar.el&&E("on"),i&&i[e.enabled?"removeClass":"addClass"](e.params.scrollbar.lockClass)}function C(){e.params.scrollbar.el&&E("off")}t({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}}),e.scrollbar={el:null,dragEl:null,$el:null,$dragEl:null},s("init",(()=>{T(),g(),f()})),s("update resize observerUpdate lock unlock",(()=>{g()})),s("setTranslate",(()=>{f()})),s("setTransition",((t,s)=>{!function(t){e.params.scrollbar.el&&e.scrollbar.el&&e.scrollbar.$dragEl.transition(t)}(s)})),s("enable disable",(()=>{const{$el:t}=e.scrollbar;t&&t[e.enabled?"removeClass":"addClass"](e.params.scrollbar.lockClass)})),s("destroy",(()=>{C()})),Object.assign(e.scrollbar,{updateSize:g,setTranslate:f,init:T,destroy:C})},function({swiper:e,extendParams:t,on:s}){t({parallax:{enabled:!1}});const a=(t,s)=>{const{rtl:a}=e,i=d(t),r=a?-1:1,n=i.attr("data-swiper-parallax")||"0";let l=i.attr("data-swiper-parallax-x"),o=i.attr("data-swiper-parallax-y");const p=i.attr("data-swiper-parallax-scale"),c=i.attr("data-swiper-parallax-opacity");if(l||o?(l=l||"0",o=o||"0"):e.isHorizontal()?(l=n,o="0"):(o=n,l="0"),l=l.indexOf("%")>=0?parseInt(l,10)*s*r+"%":l*s*r+"px",o=o.indexOf("%")>=0?parseInt(o,10)*s+"%":o*s+"px",null!=c){const e=c-(c-1)*(1-Math.abs(s));i[0].style.opacity=e}if(null==p)i.transform(`translate3d(${l}, ${o}, 0px)`);else{const e=p-(p-1)*(1-Math.abs(s));i.transform(`translate3d(${l}, ${o}, 0px) scale(${e})`)}},i=()=>{const{$el:t,slides:s,progress:i,snapGrid:r}=e;t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{a(e,i)})),s.each(((t,s)=>{let n=t.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(n+=Math.ceil(s/2)-i*(r.length-1)),n=Math.min(Math.max(n,-1),1),d(t).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{a(e,n)}))}))};s("beforeInit",(()=>{e.params.parallax.enabled&&(e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)})),s("init",(()=>{e.params.parallax.enabled&&i()})),s("setTranslate",(()=>{e.params.parallax.enabled&&i()})),s("setTransition",((t,s)=>{e.params.parallax.enabled&&((t=e.params.speed)=>{const{$el:s}=e;s.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{const s=d(e);let a=parseInt(s.attr("data-swiper-parallax-duration"),10)||t;0===t&&(a=0),s.transition(a)}))})(s)}))},function({swiper:e,extendParams:t,on:s,emit:a}){const i=r();t({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),e.zoom={enabled:!1};let n,l,o,p=1,c=!1;const u={$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},m={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},f={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let g=1;function v(e){if(e.targetTouches.length<2)return 1;const t=e.targetTouches[0].pageX,s=e.targetTouches[0].pageY,a=e.targetTouches[1].pageX,i=e.targetTouches[1].pageY;return Math.sqrt((a-t)**2+(i-s)**2)}function w(t){const s=e.support,a=e.params.zoom;if(l=!1,o=!1,!s.gestures){if("touchstart"!==t.type||"touchstart"===t.type&&t.targetTouches.length<2)return;l=!0,u.scaleStart=v(t)}u.$slideEl&&u.$slideEl.length||(u.$slideEl=d(t.target).closest(`.${e.params.slideClass}`),0===u.$slideEl.length&&(u.$slideEl=e.slides.eq(e.activeIndex)),u.$imageEl=u.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),u.$imageWrapEl=u.$imageEl.parent(`.${a.containerClass}`),u.maxRatio=u.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,0!==u.$imageWrapEl.length)?(u.$imageEl&&u.$imageEl.transition(0),c=!0):u.$imageEl=void 0}function b(t){const s=e.support,a=e.params.zoom,i=e.zoom;if(!s.gestures){if("touchmove"!==t.type||"touchmove"===t.type&&t.targetTouches.length<2)return;o=!0,u.scaleMove=v(t)}u.$imageEl&&0!==u.$imageEl.length?(s.gestures?i.scale=t.scale*p:i.scale=u.scaleMove/u.scaleStart*p,i.scale>u.maxRatio&&(i.scale=u.maxRatio-1+(i.scale-u.maxRatio+1)**.5),i.scalem.touchesStart.x))return void(m.isTouched=!1);if(!e.isHorizontal()&&(Math.floor(m.minY)===Math.floor(m.startY)&&m.touchesCurrent.ym.touchesStart.y))return void(m.isTouched=!1)}t.cancelable&&t.preventDefault(),t.stopPropagation(),m.isMoved=!0,m.currentX=m.touchesCurrent.x-m.touchesStart.x+m.startX,m.currentY=m.touchesCurrent.y-m.touchesStart.y+m.startY,m.currentXm.maxX&&(m.currentX=m.maxX-1+(m.currentX-m.maxX+1)**.8),m.currentYm.maxY&&(m.currentY=m.maxY-1+(m.currentY-m.maxY+1)**.8),f.prevPositionX||(f.prevPositionX=m.touchesCurrent.x),f.prevPositionY||(f.prevPositionY=m.touchesCurrent.y),f.prevTime||(f.prevTime=Date.now()),f.x=(m.touchesCurrent.x-f.prevPositionX)/(Date.now()-f.prevTime)/2,f.y=(m.touchesCurrent.y-f.prevPositionY)/(Date.now()-f.prevTime)/2,Math.abs(m.touchesCurrent.x-f.prevPositionX)<2&&(f.x=0),Math.abs(m.touchesCurrent.y-f.prevPositionY)<2&&(f.y=0),f.prevPositionX=m.touchesCurrent.x,f.prevPositionY=m.touchesCurrent.y,f.prevTime=Date.now(),u.$imageWrapEl.transform(`translate3d(${m.currentX}px, ${m.currentY}px,0)`)}}function E(){const t=e.zoom;u.$slideEl&&e.previousIndex!==e.activeIndex&&(u.$imageEl&&u.$imageEl.transform("translate3d(0,0,0) scale(1)"),u.$imageWrapEl&&u.$imageWrapEl.transform("translate3d(0,0,0)"),t.scale=1,p=1,u.$slideEl=void 0,u.$imageEl=void 0,u.$imageWrapEl=void 0)}function T(t){const s=e.zoom,a=e.params.zoom;if(u.$slideEl||(t&&t.target&&(u.$slideEl=d(t.target).closest(`.${e.params.slideClass}`)),u.$slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?u.$slideEl=e.$wrapperEl.children(`.${e.params.slideActiveClass}`):u.$slideEl=e.slides.eq(e.activeIndex)),u.$imageEl=u.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),u.$imageWrapEl=u.$imageEl.parent(`.${a.containerClass}`)),!u.$imageEl||0===u.$imageEl.length||!u.$imageWrapEl||0===u.$imageWrapEl.length)return;let r,n,l,o,c,h,f,g,v,w,b,x,y,E,T,C,$,S;e.params.cssMode&&(e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.touchAction="none"),u.$slideEl.addClass(`${a.zoomedSlideClass}`),void 0===m.touchesStart.x&&t?(r="touchend"===t.type?t.changedTouches[0].pageX:t.pageX,n="touchend"===t.type?t.changedTouches[0].pageY:t.pageY):(r=m.touchesStart.x,n=m.touchesStart.y),s.scale=u.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,p=u.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,t?($=u.$slideEl[0].offsetWidth,S=u.$slideEl[0].offsetHeight,l=u.$slideEl.offset().left+i.scrollX,o=u.$slideEl.offset().top+i.scrollY,c=l+$/2-r,h=o+S/2-n,v=u.$imageEl[0].offsetWidth,w=u.$imageEl[0].offsetHeight,b=v*s.scale,x=w*s.scale,y=Math.min($/2-b/2,0),E=Math.min(S/2-x/2,0),T=-y,C=-E,f=c*s.scale,g=h*s.scale,fT&&(f=T),gC&&(g=C)):(f=0,g=0),u.$imageWrapEl.transition(300).transform(`translate3d(${f}px, ${g}px,0)`),u.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${s.scale})`)}function C(){const t=e.zoom,s=e.params.zoom;u.$slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?u.$slideEl=e.$wrapperEl.children(`.${e.params.slideActiveClass}`):u.$slideEl=e.slides.eq(e.activeIndex),u.$imageEl=u.$slideEl.find(`.${s.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),u.$imageWrapEl=u.$imageEl.parent(`.${s.containerClass}`)),u.$imageEl&&0!==u.$imageEl.length&&u.$imageWrapEl&&0!==u.$imageWrapEl.length&&(e.params.cssMode&&(e.wrapperEl.style.overflow="",e.wrapperEl.style.touchAction=""),t.scale=1,p=1,u.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),u.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),u.$slideEl.removeClass(`${s.zoomedSlideClass}`),u.$slideEl=void 0)}function $(t){const s=e.zoom;s.scale&&1!==s.scale?C():T(t)}function S(){const t=e.support;return{passiveListener:!("touchstart"!==e.touchEvents.start||!t.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},activeListenerWithCapture:!t.passiveListener||{passive:!1,capture:!0}}}function M(){return`.${e.params.slideClass}`}function P(t){const{passiveListener:s}=S(),a=M();e.$wrapperEl[t]("gesturestart",a,w,s),e.$wrapperEl[t]("gesturechange",a,b,s),e.$wrapperEl[t]("gestureend",a,x,s)}function k(){n||(n=!0,P("on"))}function z(){n&&(n=!1,P("off"))}function O(){const t=e.zoom;if(t.enabled)return;t.enabled=!0;const s=e.support,{passiveListener:a,activeListenerWithCapture:i}=S(),r=M();s.gestures?(e.$wrapperEl.on(e.touchEvents.start,k,a),e.$wrapperEl.on(e.touchEvents.end,z,a)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.on(e.touchEvents.start,r,w,a),e.$wrapperEl.on(e.touchEvents.move,r,b,i),e.$wrapperEl.on(e.touchEvents.end,r,x,a),e.touchEvents.cancel&&e.$wrapperEl.on(e.touchEvents.cancel,r,x,a)),e.$wrapperEl.on(e.touchEvents.move,`.${e.params.zoom.containerClass}`,y,i)}function I(){const t=e.zoom;if(!t.enabled)return;const s=e.support;t.enabled=!1;const{passiveListener:a,activeListenerWithCapture:i}=S(),r=M();s.gestures?(e.$wrapperEl.off(e.touchEvents.start,k,a),e.$wrapperEl.off(e.touchEvents.end,z,a)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.off(e.touchEvents.start,r,w,a),e.$wrapperEl.off(e.touchEvents.move,r,b,i),e.$wrapperEl.off(e.touchEvents.end,r,x,a),e.touchEvents.cancel&&e.$wrapperEl.off(e.touchEvents.cancel,r,x,a)),e.$wrapperEl.off(e.touchEvents.move,`.${e.params.zoom.containerClass}`,y,i)}Object.defineProperty(e.zoom,"scale",{get:()=>g,set(e){if(g!==e){const t=u.$imageEl?u.$imageEl[0]:void 0,s=u.$slideEl?u.$slideEl[0]:void 0;a("zoomChange",e,t,s)}g=e}}),s("init",(()=>{e.params.zoom.enabled&&O()})),s("destroy",(()=>{I()})),s("touchStart",((t,s)=>{e.zoom.enabled&&function(t){const s=e.device;u.$imageEl&&0!==u.$imageEl.length&&(m.isTouched||(s.android&&t.cancelable&&t.preventDefault(),m.isTouched=!0,m.touchesStart.x="touchstart"===t.type?t.targetTouches[0].pageX:t.pageX,m.touchesStart.y="touchstart"===t.type?t.targetTouches[0].pageY:t.pageY))}(s)})),s("touchEnd",((t,s)=>{e.zoom.enabled&&function(){const t=e.zoom;if(!u.$imageEl||0===u.$imageEl.length)return;if(!m.isTouched||!m.isMoved)return m.isTouched=!1,void(m.isMoved=!1);m.isTouched=!1,m.isMoved=!1;let s=300,a=300;const i=f.x*s,r=m.currentX+i,n=f.y*a,l=m.currentY+n;0!==f.x&&(s=Math.abs((r-m.currentX)/f.x)),0!==f.y&&(a=Math.abs((l-m.currentY)/f.y));const o=Math.max(s,a);m.currentX=r,m.currentY=l;const d=m.width*t.scale,p=m.height*t.scale;m.minX=Math.min(u.slideWidth/2-d/2,0),m.maxX=-m.minX,m.minY=Math.min(u.slideHeight/2-p/2,0),m.maxY=-m.minY,m.currentX=Math.max(Math.min(m.currentX,m.maxX),m.minX),m.currentY=Math.max(Math.min(m.currentY,m.maxY),m.minY),u.$imageWrapEl.transition(o).transform(`translate3d(${m.currentX}px, ${m.currentY}px,0)`)}()})),s("doubleTap",((t,s)=>{!e.animating&&e.params.zoom.enabled&&e.zoom.enabled&&e.params.zoom.toggle&&$(s)})),s("transitionEnd",(()=>{e.zoom.enabled&&e.params.zoom.enabled&&E()})),s("slideChange",(()=>{e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&E()})),Object.assign(e.zoom,{enable:O,disable:I,in:T,out:C,toggle:$})},function({swiper:e,extendParams:t,on:s,emit:a}){t({lazy:{checkInView:!1,enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,scrollingElement:"",elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}}),e.lazy={};let i=!1,n=!1;function l(t,s=!0){const i=e.params.lazy;if(void 0===t)return;if(0===e.slides.length)return;const r=e.virtual&&e.params.virtual.enabled?e.$wrapperEl.children(`.${e.params.slideClass}[data-swiper-slide-index="${t}"]`):e.slides.eq(t),n=r.find(`.${i.elementClass}:not(.${i.loadedClass}):not(.${i.loadingClass})`);!r.hasClass(i.elementClass)||r.hasClass(i.loadedClass)||r.hasClass(i.loadingClass)||n.push(r[0]),0!==n.length&&n.each((t=>{const n=d(t);n.addClass(i.loadingClass);const o=n.attr("data-background"),p=n.attr("data-src"),c=n.attr("data-srcset"),u=n.attr("data-sizes"),h=n.parent("picture");e.loadImage(n[0],p||o,c,u,!1,(()=>{if(null!=e&&e&&(!e||e.params)&&!e.destroyed){if(o?(n.css("background-image",`url("${o}")`),n.removeAttr("data-background")):(c&&(n.attr("srcset",c),n.removeAttr("data-srcset")),u&&(n.attr("sizes",u),n.removeAttr("data-sizes")),h.length&&h.children("source").each((e=>{const t=d(e);t.attr("data-srcset")&&(t.attr("srcset",t.attr("data-srcset")),t.removeAttr("data-srcset"))})),p&&(n.attr("src",p),n.removeAttr("data-src"))),n.addClass(i.loadedClass).removeClass(i.loadingClass),r.find(`.${i.preloaderClass}`).remove(),e.params.loop&&s){const t=r.attr("data-swiper-slide-index");if(r.hasClass(e.params.slideDuplicateClass)){l(e.$wrapperEl.children(`[data-swiper-slide-index="${t}"]:not(.${e.params.slideDuplicateClass})`).index(),!1)}else{l(e.$wrapperEl.children(`.${e.params.slideDuplicateClass}[data-swiper-slide-index="${t}"]`).index(),!1)}}a("lazyImageReady",r[0],n[0]),e.params.autoHeight&&e.updateAutoHeight()}})),a("lazyImageLoad",r[0],n[0])}))}function o(){const{$wrapperEl:t,params:s,slides:a,activeIndex:i}=e,r=e.virtual&&s.virtual.enabled,o=s.lazy;let p=s.slidesPerView;function c(e){if(r){if(t.children(`.${s.slideClass}[data-swiper-slide-index="${e}"]`).length)return!0}else if(a[e])return!0;return!1}function u(e){return r?d(e).attr("data-swiper-slide-index"):d(e).index()}if("auto"===p&&(p=0),n||(n=!0),e.params.watchSlidesProgress)t.children(`.${s.slideVisibleClass}`).each((e=>{l(r?d(e).attr("data-swiper-slide-index"):d(e).index())}));else if(p>1)for(let e=i;e1||o.loadPrevNextAmount&&o.loadPrevNextAmount>1){const e=o.loadPrevNextAmount,t=p,s=Math.min(i+t+Math.max(e,t),a.length),r=Math.max(i-Math.max(t,e),0);for(let e=i+p;e0&&l(u(e));const a=t.children(`.${s.slidePrevClass}`);a.length>0&&l(u(a))}}function p(){const t=r();if(!e||e.destroyed)return;const s=e.params.lazy.scrollingElement?d(e.params.lazy.scrollingElement):d(t),a=s[0]===t,n=a?t.innerWidth:s[0].offsetWidth,l=a?t.innerHeight:s[0].offsetHeight,c=e.$el.offset(),{rtlTranslate:u}=e;let h=!1;u&&(c.left-=e.$el[0].scrollLeft);const m=[[c.left,c.top],[c.left+e.width,c.top],[c.left,c.top+e.height],[c.left+e.width,c.top+e.height]];for(let e=0;e=0&&t[0]<=n&&t[1]>=0&&t[1]<=l){if(0===t[0]&&0===t[1])continue;h=!0}}const f=!("touchstart"!==e.touchEvents.start||!e.support.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1};h?(o(),s.off("scroll",p,f)):i||(i=!0,s.on("scroll",p,f))}s("beforeInit",(()=>{e.params.lazy.enabled&&e.params.preloadImages&&(e.params.preloadImages=!1)})),s("init",(()=>{e.params.lazy.enabled&&(e.params.lazy.checkInView?p():o())})),s("scroll",(()=>{e.params.freeMode&&e.params.freeMode.enabled&&!e.params.freeMode.sticky&&o()})),s("scrollbarDragMove resize _freeModeNoMomentumRelease",(()=>{e.params.lazy.enabled&&(e.params.lazy.checkInView?p():o())})),s("transitionStart",(()=>{e.params.lazy.enabled&&(e.params.lazy.loadOnTransitionStart||!e.params.lazy.loadOnTransitionStart&&!n)&&(e.params.lazy.checkInView?p():o())})),s("transitionEnd",(()=>{e.params.lazy.enabled&&!e.params.lazy.loadOnTransitionStart&&(e.params.lazy.checkInView?p():o())})),s("slideChange",(()=>{const{lazy:t,cssMode:s,watchSlidesProgress:a,touchReleaseOnEdges:i,resistanceRatio:r}=e.params;t.enabled&&(s||a&&(i||0===r))&&o()})),Object.assign(e.lazy,{load:o,loadInSlide:l})},function({swiper:e,extendParams:t,on:s}){function a(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function i(){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)}t({controller:{control:void 0,inverse:!1,by:"slide"}}),e.controller={control:void 0},s("beforeInit",(()=>{e.controller.control=e.params.controller.control})),s("update",(()=>{i()})),s("resize",(()=>{i()})),s("observerUpdate",(()=>{i()})),s("setTranslate",((t,s,a)=>{e.controller.control&&e.controller.setTranslate(s,a)})),s("setTransition",((t,s,a)=>{e.controller.control&&e.controller.setTransition(s,a)})),Object.assign(e.controller,{setTranslate:function(t,s){const i=e.controller.control;let r,n;const l=e.constructor;function o(t){const s=e.rtlTranslate?-e.translate:e.translate;"slide"===e.params.controller.by&&(!function(t){e.controller.spline||(e.controller.spline=e.params.loop?new a(e.slidesGrid,t.slidesGrid):new a(e.snapGrid,t.snapGrid))}(t),n=-e.controller.spline.interpolate(-s)),n&&"container"!==e.params.controller.by||(r=(t.maxTranslate()-t.minTranslate())/(e.maxTranslate()-e.minTranslate()),n=(s-e.minTranslate())*r+t.minTranslate()),e.params.controller.inverse&&(n=t.maxTranslate()-n),t.updateProgress(n),t.setTranslate(n,e),t.updateActiveIndex(),t.updateSlidesClasses()}if(Array.isArray(i))for(let e=0;e{s.updateAutoHeight()})),s.$wrapperEl.transitionEnd((()=>{i&&(s.params.loop&&"slide"===e.params.controller.by&&s.loopFix(),s.transitionEnd())})))}if(Array.isArray(i))for(r=0;r0&&(e.isBeginning?(c(s),n(s)):(u(s),r(s))),t&&t.length>0&&(e.isEnd?(c(t),n(t)):(u(t),r(t)))}function f(){return e.pagination&&e.pagination.bullets&&e.pagination.bullets.length}function g(){return f()&&e.params.pagination.clickable}const v=(e,t,s)=>{r(e),"BUTTON"!==e[0].tagName&&(l(e,"button"),e.on("keydown",h)),p(e,s),function(e,t){e.attr("aria-controls",t)}(e,t)};function w(){const t=e.params.a11y;e.$el.append(a);const s=e.$el;t.containerRoleDescriptionMessage&&o(s,t.containerRoleDescriptionMessage),t.containerMessage&&p(s,t.containerMessage);const i=e.$wrapperEl,r=i.attr("id")||`swiper-wrapper-${function(e=16){return"x".repeat(e).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}(16)}`,n=e.params.autoplay&&e.params.autoplay.enabled?"off":"polite";var c;c=r,i.attr("id",c),function(e,t){e.attr("aria-live",t)}(i,n),t.itemRoleDescriptionMessage&&o(d(e.slides),t.itemRoleDescriptionMessage),l(d(e.slides),t.slideRole);const u=e.params.loop?e.slides.filter((t=>!t.classList.contains(e.params.slideDuplicateClass))).length:e.slides.length;let m,f;e.slides.each(((s,a)=>{const i=d(s),r=e.params.loop?parseInt(i.attr("data-swiper-slide-index"),10):a;p(i,t.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,u))})),e.navigation&&e.navigation.$nextEl&&(m=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(f=e.navigation.$prevEl),m&&m.length&&v(m,r,t.nextSlideMessage),f&&f.length&&v(f,r,t.prevSlideMessage),g()&&e.pagination.$el.on("keydown",W(e.params.pagination.bulletClass),h)}s("beforeInit",(()=>{a=d(``)})),s("afterInit",(()=>{e.params.a11y.enabled&&(w(),m())})),s("toEdge",(()=>{e.params.a11y.enabled&&m()})),s("fromEdge",(()=>{e.params.a11y.enabled&&m()})),s("paginationUpdate",(()=>{e.params.a11y.enabled&&function(){const t=e.params.a11y;f()&&e.pagination.bullets.each((s=>{const a=d(s);e.params.pagination.clickable&&(r(a),e.params.pagination.renderBullet||(l(a,"button"),p(a,t.paginationBulletMessage.replace(/\{\{index\}\}/,a.index()+1)))),a.is(`.${e.params.pagination.bulletActiveClass}`)?a.attr("aria-current","true"):a.removeAttr("aria-current")}))}()})),s("destroy",(()=>{e.params.a11y.enabled&&function(){let t,s;a&&a.length>0&&a.remove(),e.navigation&&e.navigation.$nextEl&&(t=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(s=e.navigation.$prevEl),t&&t.off("keydown",h),s&&s.off("keydown",h),g()&&e.pagination.$el.off("keydown",W(e.params.pagination.bulletClass),h)}()}))},function({swiper:e,extendParams:t,on:s}){t({history:{enabled:!1,root:"",replaceState:!1,key:"slides"}});let a=!1,i={};const n=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),l=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},o=(t,s)=>{const i=r();if(!a||!e.params.history.enabled)return;let l;l=e.params.url?new URL(e.params.url):i.location;const o=e.slides.eq(s);let d=n(o.attr("data-history"));if(e.params.history.root.length>0){let s=e.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${t}/${d}`}else l.pathname.includes(t)||(d=`${t}/${d}`);const p=i.history.state;p&&p.value===d||(e.params.history.replaceState?i.history.replaceState({value:d},null,d):i.history.pushState({value:d},null,d))},d=(t,s,a)=>{if(s)for(let i=0,r=e.slides.length;i{i=l(e.params.url),d(e.params.speed,e.paths.value,!1)};s("init",(()=>{e.params.history.enabled&&(()=>{const t=r();if(e.params.history){if(!t.history||!t.history.pushState)return e.params.history.enabled=!1,void(e.params.hashNavigation.enabled=!0);a=!0,i=l(e.params.url),(i.key||i.value)&&(d(0,i.value,e.params.runCallbacksOnInit),e.params.history.replaceState||t.addEventListener("popstate",p))}})()})),s("destroy",(()=>{e.params.history.enabled&&(()=>{const t=r();e.params.history.replaceState||t.removeEventListener("popstate",p)})()})),s("transitionEnd _freeModeNoMomentumRelease",(()=>{a&&o(e.params.history.key,e.activeIndex)})),s("slideChange",(()=>{a&&e.params.cssMode&&o(e.params.history.key,e.activeIndex)}))},function({swiper:e,extendParams:t,emit:s,on:i}){let n=!1;const l=a(),o=r();t({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}});const p=()=>{s("hashChange");const t=l.location.hash.replace("#","");if(t!==e.slides.eq(e.activeIndex).attr("data-hash")){const s=e.$wrapperEl.children(`.${e.params.slideClass}[data-hash="${t}"]`).index();if(void 0===s)return;e.slideTo(s)}},c=()=>{if(n&&e.params.hashNavigation.enabled)if(e.params.hashNavigation.replaceState&&o.history&&o.history.replaceState)o.history.replaceState(null,null,`#${e.slides.eq(e.activeIndex).attr("data-hash")}`||""),s("hashSet");else{const t=e.slides.eq(e.activeIndex),a=t.attr("data-hash")||t.attr("data-history");l.location.hash=a||"",s("hashSet")}};i("init",(()=>{e.params.hashNavigation.enabled&&(()=>{if(!e.params.hashNavigation.enabled||e.params.history&&e.params.history.enabled)return;n=!0;const t=l.location.hash.replace("#","");if(t){const s=0;for(let a=0,i=e.slides.length;a{e.params.hashNavigation.enabled&&e.params.hashNavigation.watchState&&d(o).off("hashchange",p)})),i("transitionEnd _freeModeNoMomentumRelease",(()=>{n&&c()})),i("slideChange",(()=>{n&&e.params.cssMode&&c()}))},function({swiper:e,extendParams:t,on:s,emit:i}){let r;function n(){const t=e.slides.eq(e.activeIndex);let s=e.params.autoplay.delay;t.attr("data-swiper-autoplay")&&(s=t.attr("data-swiper-autoplay")||e.params.autoplay.delay),clearTimeout(r),r=c((()=>{let t;e.params.autoplay.reverseDirection?e.params.loop?(e.loopFix(),t=e.slidePrev(e.params.speed,!0,!0),i("autoplay")):e.isBeginning?e.params.autoplay.stopOnLastSlide?o():(t=e.slideTo(e.slides.length-1,e.params.speed,!0,!0),i("autoplay")):(t=e.slidePrev(e.params.speed,!0,!0),i("autoplay")):e.params.loop?(e.loopFix(),t=e.slideNext(e.params.speed,!0,!0),i("autoplay")):e.isEnd?e.params.autoplay.stopOnLastSlide?o():(t=e.slideTo(0,e.params.speed,!0,!0),i("autoplay")):(t=e.slideNext(e.params.speed,!0,!0),i("autoplay")),(e.params.cssMode&&e.autoplay.running||!1===t)&&n()}),s)}function l(){return void 0===r&&(!e.autoplay.running&&(e.autoplay.running=!0,i("autoplayStart"),n(),!0))}function o(){return!!e.autoplay.running&&(void 0!==r&&(r&&(clearTimeout(r),r=void 0),e.autoplay.running=!1,i("autoplayStop"),!0))}function d(t){e.autoplay.running&&(e.autoplay.paused||(r&&clearTimeout(r),e.autoplay.paused=!0,0!==t&&e.params.autoplay.waitForTransition?["transitionend","webkitTransitionEnd"].forEach((t=>{e.$wrapperEl[0].addEventListener(t,u)})):(e.autoplay.paused=!1,n())))}function p(){const t=a();"hidden"===t.visibilityState&&e.autoplay.running&&d(),"visible"===t.visibilityState&&e.autoplay.paused&&(n(),e.autoplay.paused=!1)}function u(t){e&&!e.destroyed&&e.$wrapperEl&&t.target===e.$wrapperEl[0]&&(["transitionend","webkitTransitionEnd"].forEach((t=>{e.$wrapperEl[0].removeEventListener(t,u)})),e.autoplay.paused=!1,e.autoplay.running?n():o())}function h(){e.params.autoplay.disableOnInteraction?o():d(),["transitionend","webkitTransitionEnd"].forEach((t=>{e.$wrapperEl[0].removeEventListener(t,u)}))}function m(){e.params.autoplay.disableOnInteraction||(e.autoplay.paused=!1,n())}e.autoplay={running:!1,paused:!1},t({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}}),s("init",(()=>{if(e.params.autoplay.enabled){l();a().addEventListener("visibilitychange",p),e.params.autoplay.pauseOnMouseEnter&&(e.$el.on("mouseenter",h),e.$el.on("mouseleave",m))}})),s("beforeTransitionStart",((t,s,a)=>{e.autoplay.running&&(a||!e.params.autoplay.disableOnInteraction?e.autoplay.pause(s):o())})),s("sliderFirstMove",(()=>{e.autoplay.running&&(e.params.autoplay.disableOnInteraction?o():d())})),s("touchEnd",(()=>{e.params.cssMode&&e.autoplay.paused&&!e.params.autoplay.disableOnInteraction&&n()})),s("destroy",(()=>{e.$el.off("mouseenter",h),e.$el.off("mouseleave",m),e.autoplay.running&&o();a().removeEventListener("visibilitychange",p)})),Object.assign(e.autoplay,{pause:d,run:n,start:l,stop:o})},function({swiper:e,extendParams:t,on:s}){t({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let a=!1,i=!1;function r(){const t=e.thumbs.swiper;if(!t)return;const s=t.clickedIndex,a=t.clickedSlide;if(a&&d(a).hasClass(e.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;if(i=t.params.loop?parseInt(d(t.clickedSlide).attr("data-swiper-slide-index"),10):s,e.params.loop){let t=e.activeIndex;e.slides.eq(t).hasClass(e.params.slideDuplicateClass)&&(e.loopFix(),e._clientLeft=e.$wrapperEl[0].clientLeft,t=e.activeIndex);const s=e.slides.eq(t).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index(),a=e.slides.eq(t).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();i=void 0===s?a:void 0===a?s:a-t1?a:o:a-oe.previousIndex?"next":"prev"}else n=e.realIndex,l=n>e.previousIndex?"next":"prev";r&&(n+="next"===l?i:-1*i),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(n)<0&&(s.params.centeredSlides?n=n>o?n-Math.floor(a/2)+1:n+Math.floor(a/2)-1:n>o&&s.params.slidesPerGroup,s.slideTo(n,t?0:void 0))}let n=1;const l=e.params.thumbs.slideThumbActiveClass;if(e.params.slidesPerView>1&&!e.params.centeredSlides&&(n=e.params.slidesPerView),e.params.thumbs.multipleActiveThumbs||(n=1),n=Math.floor(n),s.slides.removeClass(l),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let t=0;t{const{thumbs:t}=e.params;t&&t.swiper&&(n(),l(!0))})),s("slideChange update resize observerUpdate",(()=>{e.thumbs.swiper&&l()})),s("setTransition",((t,s)=>{const a=e.thumbs.swiper;a&&a.setTransition(s)})),s("beforeDestroy",(()=>{const t=e.thumbs.swiper;t&&i&&t&&t.destroy()})),Object.assign(e.thumbs,{init:n,update:l})},function({swiper:e,extendParams:t,emit:s,once:a}){t({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(e,{freeMode:{onTouchMove:function(){const{touchEventsData:t,touches:s}=e;0===t.velocities.length&&t.velocities.push({position:s[e.isHorizontal()?"startX":"startY"],time:t.touchStartTime}),t.velocities.push({position:s[e.isHorizontal()?"currentX":"currentY"],time:u()})},onTouchEnd:function({currentPos:t}){const{params:i,$wrapperEl:r,rtlTranslate:n,snapGrid:l,touchEventsData:o}=e,d=u()-o.touchStartTime;if(t<-e.minTranslate())e.slideTo(e.activeIndex);else if(t>-e.maxTranslate())e.slides.length1){const t=o.velocities.pop(),s=o.velocities.pop(),a=t.position-s.position,r=t.time-s.time;e.velocity=a/r,e.velocity/=2,Math.abs(e.velocity)150||u()-t.time>300)&&(e.velocity=0)}else e.velocity=0;e.velocity*=i.freeMode.momentumVelocityRatio,o.velocities.length=0;let t=1e3*i.freeMode.momentumRatio;const d=e.velocity*t;let p=e.translate+d;n&&(p=-p);let c,h=!1;const m=20*Math.abs(e.velocity)*i.freeMode.momentumBounceRatio;let f;if(pe.minTranslate())i.freeMode.momentumBounce?(p-e.minTranslate()>m&&(p=e.minTranslate()+m),c=e.minTranslate(),h=!0,o.allowMomentumBounce=!0):p=e.minTranslate(),i.loop&&i.centeredSlides&&(f=!0);else if(i.freeMode.sticky){let t;for(let e=0;e-p){t=e;break}p=Math.abs(l[t]-p){e.loopFix()})),0!==e.velocity){if(t=n?Math.abs((-p-e.translate)/e.velocity):Math.abs((p-e.translate)/e.velocity),i.freeMode.sticky){const s=Math.abs((n?-p:p)-e.translate),a=e.slidesSizesGrid[e.activeIndex];t=s{e&&!e.destroyed&&o.allowMomentumBounce&&(s("momentumBounce"),e.setTransition(i.speed),setTimeout((()=>{e.setTranslate(c),r.transitionEnd((()=>{e&&!e.destroyed&&e.transitionEnd()}))}),0))}))):e.velocity?(s("_freeModeNoMomentumRelease"),e.updateProgress(p),e.setTransition(t),e.setTranslate(p),e.transitionStart(!0,e.swipeDirection),e.animating||(e.animating=!0,r.transitionEnd((()=>{e&&!e.destroyed&&e.transitionEnd()})))):e.updateProgress(p),e.updateActiveIndex(),e.updateSlidesClasses()}else{if(i.freeMode.sticky)return void e.slideToClosest();i.freeMode&&s("_freeModeNoMomentumRelease")}(!i.freeMode.momentum||d>=i.longSwipesMs)&&(e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses())}}}})},function({swiper:e,extendParams:t}){let s,a,i;t({grid:{rows:1,fill:"column"}}),e.grid={initSlides:t=>{const{slidesPerView:r}=e.params,{rows:n,fill:l}=e.params.grid;a=s/n,i=Math.floor(t/n),s=Math.floor(t/n)===t/n?t:Math.ceil(t/n)*n,"auto"!==r&&"row"===l&&(s=Math.max(s,r*n))},updateSlide:(t,r,n,l)=>{const{slidesPerGroup:o,spaceBetween:d}=e.params,{rows:p,fill:c}=e.params.grid;let u,h,m;if("row"===c&&o>1){const e=Math.floor(t/(o*p)),a=t-p*o*e,i=0===e?o:Math.min(Math.ceil((n-e*p*o)/p),o);m=Math.floor(a/i),h=a-m*i+e*o,u=h+m*s/p,r.css({"-webkit-order":u,order:u})}else"column"===c?(h=Math.floor(t/p),m=t-h*p,(h>i||h===i&&m===p-1)&&(m+=1,m>=p&&(m=0,h+=1))):(m=Math.floor(t/a),h=t-m*a);r.css(l("margin-top"),0!==m?d&&`${d}px`:"")},updateWrapperSize:(t,a,i)=>{const{spaceBetween:r,centeredSlides:n,roundLengths:l}=e.params,{rows:o}=e.params.grid;if(e.virtualSize=(t+r)*s,e.virtualSize=Math.ceil(e.virtualSize/o)-r,e.$wrapperEl.css({[i("width")]:`${e.virtualSize+r}px`}),n){a.splice(0,a.length);const t=[];for(let s=0;s{const{slides:t}=e,s=e.params.fadeEffect;for(let a=0;a{const{transformEl:s}=e.params.fadeEffect;(s?e.slides.find(s):e.slides).transition(t),K({swiper:e,duration:t,transformEl:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})},function({swiper:e,extendParams:t,on:s}){t({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}}),F({effect:"cube",swiper:e,on:s,setTranslate:()=>{const{$el:t,$wrapperEl:s,slides:a,width:i,height:r,rtlTranslate:n,size:l,browser:o}=e,p=e.params.cubeEffect,c=e.isHorizontal(),u=e.virtual&&e.params.virtual.enabled;let h,m=0;p.shadow&&(c?(h=s.find(".swiper-cube-shadow"),0===h.length&&(h=d('
'),s.append(h)),h.css({height:`${i}px`})):(h=t.find(".swiper-cube-shadow"),0===h.length&&(h=d('
'),t.append(h))));for(let e=0;e-1&&(m=90*s+90*o,n&&(m=90*-s-90*o)),t.transform(v),p.slideShadows){let e=c?t.find(".swiper-slide-shadow-left"):t.find(".swiper-slide-shadow-top"),s=c?t.find(".swiper-slide-shadow-right"):t.find(".swiper-slide-shadow-bottom");0===e.length&&(e=d(`
`),t.append(e)),0===s.length&&(s=d(`
`),t.append(s)),e.length&&(e[0].style.opacity=Math.max(-o,0)),s.length&&(s[0].style.opacity=Math.max(o,0))}}if(s.css({"-webkit-transform-origin":`50% 50% -${l/2}px`,"transform-origin":`50% 50% -${l/2}px`}),p.shadow)if(c)h.transform(`translate3d(0px, ${i/2+p.shadowOffset}px, ${-i/2}px) rotateX(90deg) rotateZ(0deg) scale(${p.shadowScale})`);else{const e=Math.abs(m)-90*Math.floor(Math.abs(m)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=p.shadowScale,a=p.shadowScale/t,i=p.shadowOffset;h.transform(`scale3d(${s}, 1, ${a}) translate3d(0px, ${r/2+i}px, ${-r/2/a}px) rotateX(-90deg)`)}const f=o.isSafari||o.isWebView?-l/2:0;s.transform(`translate3d(0px,0,${f}px) rotateX(${e.isHorizontal()?0:m}deg) rotateY(${e.isHorizontal()?-m:0}deg)`)},setTransition:t=>{const{$el:s,slides:a}=e;a.transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t),e.params.cubeEffect.shadow&&!e.isHorizontal()&&s.find(".swiper-cube-shadow").transition(t)},perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function({swiper:e,extendParams:t,on:s}){t({flipEffect:{slideShadows:!0,limitRotation:!0,transformEl:null}}),F({effect:"flip",swiper:e,on:s,setTranslate:()=>{const{slides:t,rtlTranslate:s}=e,a=e.params.flipEffect;for(let i=0;i{const{transformEl:s}=e.params.flipEffect;(s?e.slides.find(s):e.slides).transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t),K({swiper:e,duration:t,transformEl:s})},perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})},function({swiper:e,extendParams:t,on:s}){t({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0,transformEl:null}}),F({effect:"coverflow",swiper:e,on:s,setTranslate:()=>{const{width:t,height:s,slides:a,slidesSizesGrid:i}=e,r=e.params.coverflowEffect,n=e.isHorizontal(),l=e.translate,o=n?t/2-l:s/2-l,d=n?r.rotate:-r.rotate,p=r.depth;for(let e=0,t=a.length;e0?l:0),s.length&&(s[0].style.opacity=-l>0?-l:0)}}},setTransition:t=>{const{transformEl:s}=e.params.coverflowEffect;(s?e.slides.find(s):e.slides).transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t)},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function({swiper:e,extendParams:t,on:s}){t({creativeEffect:{transformEl:null,limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const a=e=>"string"==typeof e?e:`${e}px`;F({effect:"creative",swiper:e,on:s,setTranslate:()=>{const{slides:t,$wrapperEl:s,slidesSizesGrid:i}=e,r=e.params.creativeEffect,{progressMultiplier:n}=r,l=e.params.centeredSlides;if(l){const t=i[0]/2-e.params.slidesOffsetBefore||0;s.transform(`translateX(calc(50% - ${t}px))`)}for(let s=0;s0&&(f=r.prev,m=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${a(f.translate[t])} * ${Math.abs(d*n)}))`})),h.forEach(((e,t)=>{h[t]=f.rotate[t]*Math.abs(d*n)})),i[0].style.zIndex=-Math.abs(Math.round(o))+t.length;const g=u.join(", "),v=`rotateX(${h[0]}deg) rotateY(${h[1]}deg) rotateZ(${h[2]}deg)`,w=p<0?`scale(${1+(1-f.scale)*p*n})`:`scale(${1-(1-f.scale)*p*n})`,b=p<0?1+(1-f.opacity)*p*n:1-(1-f.opacity)*p*n,x=`translate3d(${g}) ${v} ${w}`;if(m&&f.shadow||!m){let e=i.children(".swiper-slide-shadow");if(0===e.length&&f.shadow&&(e=Z(r,i)),e.length){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e[0].style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const y=U(r,i);y.transform(x).css({opacity:b}),f.origin&&y.css("transform-origin",f.origin)}},setTransition:t=>{const{transformEl:s}=e.params.creativeEffect;(s?e.slides.find(s):e.slides).transition(t).find(".swiper-slide-shadow").transition(t),K({swiper:e,duration:t,transformEl:s,allSlides:!0})},perspective:()=>e.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!e.params.cssMode})})},function({swiper:e,extendParams:t,on:s}){t({cardsEffect:{slideShadows:!0,transformEl:null}}),F({effect:"cards",swiper:e,on:s,setTranslate:()=>{const{slides:t,activeIndex:s}=e,a=e.params.cardsEffect,{startTranslate:i,isTouched:r}=e.touchEventsData,n=e.translate;for(let l=0;l0&&p<1&&(r||e.params.cssMode)&&n-1&&(r||e.params.cssMode)&&n>i;if(w||b){const e=(1-Math.abs((Math.abs(p)-.5)/.5))**.5;g+=-28*p*e,f+=-.5*e,v+=96*e,h=-25*e*Math.abs(p)+"%"}if(u=p<0?`calc(${u}px + (${v*Math.abs(p)}%))`:p>0?`calc(${u}px + (-${v*Math.abs(p)}%))`:`${u}px`,!e.isHorizontal()){const e=h;h=u,u=e}const x=`\n translate3d(${u}, ${h}, ${m}px)\n rotateZ(${g}deg)\n scale(${p<0?""+(1+(1-f)*p):""+(1-(1-f)*p)})\n `;if(a.slideShadows){let e=o.find(".swiper-slide-shadow");0===e.length&&(e=Z(a,o)),e.length&&(e[0].style.opacity=Math.min(Math.max((Math.abs(p)-.5)/.5,0),1))}o[0].style.zIndex=-Math.abs(Math.round(d))+t.length;U(a,o).transform(x)}},setTransition:t=>{const{transformEl:s}=e.params.cardsEffect;(s?e.slides.find(s):e.slides).transition(t).find(".swiper-slide-shadow").transition(t),K({swiper:e,duration:t,transformEl:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!e.params.cssMode})})}];return H.use(J),H})); -//# sourceMappingURL=swiper-bundle.min.js.map \ No newline at end of file diff --git a/static/karte/bootstrap/css/mystyle.css b/static/karte/bootstrap/css/mystyle.css index 703b7b5..8819b79 100644 --- a/static/karte/bootstrap/css/mystyle.css +++ b/static/karte/bootstrap/css/mystyle.css @@ -93,11 +93,6 @@ hr.seperator { border: 0; } -span.read_more { - text-align: right; - float: right; -} - /* css for index.html */ @@ -372,7 +367,3 @@ ul.carousel_tabs li a:focus { } } -/** class span-one-half, similar to span-one-third. Necessary due to removal of Strato */ -div.span-one-half { - width: 450px; -} diff --git a/static/nutzen/dienste-osm-de/vector_tiles_pyramid_structure.png b/static/nutzen/dienste-osm-de/vector_tiles_pyramid_structure.png new file mode 100644 index 0000000..384467f Binary files /dev/null and b/static/nutzen/dienste-osm-de/vector_tiles_pyramid_structure.png differ diff --git a/static/nutzen/mobil/organicmaps.jpg b/static/nutzen/mobil/organicmaps.jpg new file mode 100644 index 0000000..8935051 Binary files /dev/null and b/static/nutzen/mobil/organicmaps.jpg differ diff --git a/static/nutzen/mobil/osmand.jpg b/static/nutzen/mobil/osmand.jpg new file mode 100644 index 0000000..b699687 Binary files /dev/null and b/static/nutzen/mobil/osmand.jpg differ diff --git a/static/nutzen/namensnennung/HVV-Karte-Buxtehude-Namensnennung.jpg b/static/nutzen/namensnennung/HVV-Karte-Buxtehude-Namensnennung.jpg new file mode 100644 index 0000000..6f08ecc Binary files /dev/null and b/static/nutzen/namensnennung/HVV-Karte-Buxtehude-Namensnennung.jpg differ diff --git a/static/nutzen/namensnennung/HVV-Karte-Buxtehude.jpg b/static/nutzen/namensnennung/HVV-Karte-Buxtehude.jpg new file mode 100644 index 0000000..eea2b7f Binary files /dev/null and b/static/nutzen/namensnennung/HVV-Karte-Buxtehude.jpg differ diff --git a/static/projekt/berlin-zoo.jpg b/static/projekt/berlin-zoo.jpg new file mode 100644 index 0000000..865f7a2 Binary files /dev/null and b/static/projekt/berlin-zoo.jpg differ diff --git a/static/projekt/karte-de.png b/static/projekt/karte-de.png new file mode 100644 index 0000000..f1cd281 Binary files /dev/null and b/static/projekt/karte-de.png differ diff --git "a/static/projekt/osm-f\303\274r-was/isochrone-small.jpg" "b/static/projekt/osm-f\303\274r-was/isochrone-small.jpg" new file mode 100644 index 0000000..0ffa1be Binary files /dev/null and "b/static/projekt/osm-f\303\274r-was/isochrone-small.jpg" differ diff --git "a/static/projekt/osm-f\303\274r-was/isochrone.png" "b/static/projekt/osm-f\303\274r-was/isochrone.png" new file mode 100644 index 0000000..3d156f8 Binary files /dev/null and "b/static/projekt/osm-f\303\274r-was/isochrone.png" differ diff --git "a/static/projekt/osm-f\303\274r-was/osm-karte-hvv-small.jpg" "b/static/projekt/osm-f\303\274r-was/osm-karte-hvv-small.jpg" new file mode 100644 index 0000000..6736815 Binary files /dev/null and "b/static/projekt/osm-f\303\274r-was/osm-karte-hvv-small.jpg" differ diff --git "a/static/projekt/osm-f\303\274r-was/osm-karte-hvv.jpg" "b/static/projekt/osm-f\303\274r-was/osm-karte-hvv.jpg" new file mode 100644 index 0000000..eed095d Binary files /dev/null and "b/static/projekt/osm-f\303\274r-was/osm-karte-hvv.jpg" differ diff --git "a/static/projekt/osm-f\303\274r-was/watercolor.jpg" "b/static/projekt/osm-f\303\274r-was/watercolor.jpg" new file mode 100644 index 0000000..d81591a Binary files /dev/null and "b/static/projekt/osm-f\303\274r-was/watercolor.jpg" differ diff --git a/static/projekt/osm-world.png b/static/projekt/osm-world.png new file mode 100644 index 0000000..47cbd14 Binary files /dev/null and b/static/projekt/osm-world.png differ diff --git a/static/fan-artikel/img/osm-pin.jpg b/static/shop/img/osm-pin.jpg similarity index 100% rename from static/fan-artikel/img/osm-pin.jpg rename to static/shop/img/osm-pin.jpg diff --git a/static/fan-artikel/img/tasse-big.png b/static/shop/img/tasse-big.png similarity index 100% rename from static/fan-artikel/img/tasse-big.png rename to static/shop/img/tasse-big.png diff --git a/static/themen/eisenbahn/ausschnitt-openrailwaymap.png b/static/themen/eisenbahn/ausschnitt-openrailwaymap.png new file mode 100644 index 0000000..3a7f849 Binary files /dev/null and b/static/themen/eisenbahn/ausschnitt-openrailwaymap.png differ diff --git a/static/themen/eisenbahn/thumb.jpg b/static/themen/eisenbahn/thumb.jpg new file mode 100644 index 0000000..45c80e0 Binary files /dev/null and b/static/themen/eisenbahn/thumb.jpg differ diff --git a/static/themen/eisenbahn/title.jpg b/static/themen/eisenbahn/title.jpg new file mode 100644 index 0000000..58433b9 Binary files /dev/null and b/static/themen/eisenbahn/title.jpg differ diff --git "a/static/themen/naturschutz/s\303\244chsische-schweiz-small.jpg" "b/static/themen/naturschutz/s\303\244chsische-schweiz-small.jpg" new file mode 100644 index 0000000..038e556 Binary files /dev/null and "b/static/themen/naturschutz/s\303\244chsische-schweiz-small.jpg" differ diff --git "a/static/themen/naturschutz/s\303\244chsische-schweiz.jpg" "b/static/themen/naturschutz/s\303\244chsische-schweiz.jpg" new file mode 100644 index 0000000..49bea81 Binary files /dev/null and "b/static/themen/naturschutz/s\303\244chsische-schweiz.jpg" differ diff --git a/static/themen/naturschutz/thumb.jpg b/static/themen/naturschutz/thumb.jpg new file mode 100644 index 0000000..2026c60 Binary files /dev/null and b/static/themen/naturschutz/thumb.jpg differ diff --git a/static/themen/naturschutz/title.jpg b/static/themen/naturschutz/title.jpg new file mode 100644 index 0000000..1a8e53b Binary files /dev/null and b/static/themen/naturschutz/title.jpg differ diff --git "a/static/themen/radfahren/h\303\266henprofil-brouter-web.png" "b/static/themen/radfahren/h\303\266henprofil-brouter-web.png" new file mode 100644 index 0000000..88b2cd4 Binary files /dev/null and "b/static/themen/radfahren/h\303\266henprofil-brouter-web.png" differ diff --git a/static/themen/radfahren/thumb.jpg b/static/themen/radfahren/thumb.jpg new file mode 100644 index 0000000..22d5fe2 Binary files /dev/null and b/static/themen/radfahren/thumb.jpg differ diff --git a/static/themen/radfahren/title.jpg b/static/themen/radfahren/title.jpg new file mode 100644 index 0000000..5809da0 Binary files /dev/null and b/static/themen/radfahren/title.jpg differ diff --git a/static/themen/wintersport/skigebiet-small.jpg b/static/themen/wintersport/skigebiet-small.jpg new file mode 100644 index 0000000..7fe829e Binary files /dev/null and b/static/themen/wintersport/skigebiet-small.jpg differ diff --git a/static/themen/wintersport/skigebiet.jpg b/static/themen/wintersport/skigebiet.jpg new file mode 100644 index 0000000..1700c51 Binary files /dev/null and b/static/themen/wintersport/skigebiet.jpg differ diff --git a/static/themen/wintersport/thumb.jpg b/static/themen/wintersport/thumb.jpg new file mode 100644 index 0000000..e3ff17c Binary files /dev/null and b/static/themen/wintersport/thumb.jpg differ diff --git a/static/themen/wintersport/title.jpg b/static/themen/wintersport/title.jpg new file mode 100644 index 0000000..d3dd263 Binary files /dev/null and b/static/themen/wintersport/title.jpg differ diff --git "a/static/themen/\303\266pnv/thumb.jpg" "b/static/themen/\303\266pnv/thumb.jpg" new file mode 100644 index 0000000..3328181 Binary files /dev/null and "b/static/themen/\303\266pnv/thumb.jpg" differ diff --git "a/static/themen/\303\266pnv/title.jpg" "b/static/themen/\303\266pnv/title.jpg" new file mode 100644 index 0000000..13bae6b Binary files /dev/null and "b/static/themen/\303\266pnv/title.jpg" differ