741 views
The new OSM Swiss Style Project === <span><center>![](https://md.coredump.ch/uploads/df9d06b1-d988-42b7-b9bc-3f74fca7b9fe.png =x64)</center></span> _OSM Swiss Style – Schweizer Kartendesign trifft OpenStreetMap - Ein Projekt zur Erstellung einer neuen Basiskarte auf Basis von OpenStreetMap und inspiriert vom Schweizer Karten-Design._ _Projektteilnehmer: Institut für Software am OST Campus Rapperswil in Zusammenarbeit mit dem Institut für Kartografie der ETH Zürich und Pirmin Kalberer, Sourcepole AG, Zürich. Weitere Projektteilnehmer sind herzlich willkommen! (Kontakt: Stefan Keller)_ :::success **Direkte Links...** * zur [Karte - der neue OSM Swiss Style](https://osm-swiss-style.infs.ch/)! * zu den [Verbesserungsvorschlägen](https://gitlab.com/osm-swiss-style/osm-swiss-style/-/issues) (Issues im Repository) ::: ## Überblick Die "**OSM Swiss Map**" und der dazugehörige "**OSM Swiss Style**" ist eine in Entwicklung befindliche farbige Basiskarte in Vektorkacheltechnologie, basierend auf Open Data und Open Source Software. Es ist geplant, die "OSM Swiss Map" als freien Webdienst der Swiss OpenStreetMap Association (OSM.ch) zu betreiben (auch verlinkt auf [SOSM.ch.](https://sosm.ch)). Die Daten stammen aus dem freien Projekt **OpenStreetMap (OSM)**, an dem sich jede:r beteiligen und Kartenfehler korrigieren kann. Bei Bedarf wird auf weitere offene Datenquellen zurückgegriffen, wie z.B. das Höhenmodell. Das Datenschema ist Shortbread und der Software-Stack basiert unter anderem auf MapLibre und Tilemaker. Die "OSM Swiss Map" steht in der **Tradition der Schweizer Kartografie**, ist aber keine rein topografische Karte und sie ist darauf ausgelegt, **weltweit** angewendet zu werden. Sie dient als Grundlage für allfällige darüberliegende **thematische Kartenebenen**. Die "OSM Swiss Map" ist recht detailliert, wobei technisch versierte Benutzerinnen und Benutzer in ihren vom "OSM Swiss Style" abgeleiteten Kartenstilen, Objektklassen (z.B. bestimmte POIs) weglassen können. ![](https://md.coredump.ch/uploads/e8f4471c-16e8-4bae-84dd-adae10bb3bba.png) _Abbildung 1: Vorschau des "OSM Swiss Style" (Stand 15.05.2025)._ ## Vergleichbare Projekte Der aktuelle rasterbasierte ***"Swiss style"***. ![](https://md.coredump.ch/uploads/5706f1f2-fe60-4464-a40d-27d63e92ca64.png) _Abbildung 2: Der aktuelle rasterbasierte "swiss style" (Screenshot), der durch den neuen, vektorbasierten "OSM Swiss Style" ergänzt werden soll. (Quelle: OSM.ch | © [OpenStreetMap contributors](http://openstreetmap.org/copyright) | [Einen Kartenfehler beheben](https://www.openstreetmap.org/fixthemap?lat=47&lon=8.5&zoom=10))._ **OpenTopoMap** ([Karte](https://www.opentopomap.org/)) ist eine topographische Karten aus OpenStreetMap, ein Projekt der Uni Erlangen-Nürnberg. Die Rasterkacheln werden vollständig automatisiert aus den Daten der OpenStreetMap erstellt." – wobei noch ein offenes Höhenmodell ("SRTM") beigezogen wird. Während die "Standard"-Karte auf OSM.org ursprünglich auf englischen Vorgaben beruhte (die dann internationalisiert wurden), ist die OpenTopoMap nach dem Vorbild der TK50 entstanden. Die TK50, oder Topographische Karte 1:50.000, ist eine grossmassstäbliche topographische Karte, die in Deutschland von den Landesvermessungsämtern als Rasterkarte herausgegeben wird (es gibt noch die digitale Topographische Karte 1:50.000 DTK50). Die Herstellung beruht auf dem "klassischen" Software-Stack mit Rasterkacheln, der u.a. an der [FOSSGIS 2012](https://opentopomap.org/files/OpenTopoMap_FOSSGIS_2012.pdf) (PDF) beschrieben wurde. **Americana** ([Karte](https://americanamap.org/)) ist eines der ersten Projekt einer Basiskarte im amerikanischen Stil auf der Basis von Vektorkacheln. ## Das Konzept Das Konzept dieses neuen Kartenstils ist ganz dem Stil der Schweizer Kartographie verpflichtet, die konsequent wichtige Dinge hervorhebt und unwichtige auslässt. Dies mit Blick auf verschiedenste Anwendungen als Basiskarte beispielsweise im Tourismus. Der Stil grenzt sich jedoch namentlich von der "Light Base Map" von Swisstopo ab, da er nicht "light" sondern eher "heavy" ist. (STEFAN: Hier evtl. einige Signaturen hervorheben, wie z.B. Gebäude und Eisenbahnlinien). Zusätzlich gibt es Höhenlinien und Geländeschummerung, die automatisch aus dem offenen Höhenmodell von Swisstopo mit modernen Kartentechnologien generiert werden. Noch ungelöst sind die Relief- und Felsschraffuren. Die Aktualisierung der Vector-Tiles-Quelle ist zunächst nicht so wichtig. Eine tägliche oder 6-stündliche Aktualisierung könnte sinnvoll sein. Eine minütliche Aktualisierung wäre Luxus. Bis auf weiteres könnten wir auch mit einer mehrmonatigen Aktualisierung leben. Die entsprechenden Links sind im Kapitel "**Bibliographie**" (Ressourcen) unten zusammengestellt. ## Zeichenschlüssel, Repositories und weitere Dokumentation Der Zeichenschlüssel: Karten-Signaturen sind grafische Zeichen (engl. symbols) bzw. "Icons" in der Kartografie, die Objekte und Sachverhalte auf Karten darstellen. Es gibt Punktsignaturen (Point-Icons), Liniensignturen und Flächensignaturen. Dazu kommen die Beschriftungen (Labels) und die Schriften (Fonts). ![](https://md.coredump.ch/uploads/ba00f17c-25da-41ab-a300-fe7a2a3f968e.png) _Abbildung: Kategorisierung mit Farbzuordnung._ ::: success * **Zeichenschlüssel** im [Google Docs Spreadsheet](https://docs.google.com/spreadsheets/d/1T-yDrdIqx76KbVUycji9f6VrkKi5W4yssIw2pmszmbo/edit?gid=0#gid=0). * **Source Code Repositories**: https://gitlab.com/osm-swiss-style * **Issue Board**: https://gitlab.com/osm-swiss-style/osm-swiss-style/-/boards ::: ### Dokumentationen Die Dokumentationen der wichtigsten Technologien: * **"OSM Shortbread"** Vector Tiles Schema: https://shortbread-tiles.org/schema/1.0/ * **OSM Wiki** und **Taginfo (.org) / Taginfo (Schweiz)** * **Maplibre GL JS**: https://maplibre.org/maplibre-gl-js/docs/ Siehe auch die Bibliographie im Anhang. ### Style-/Symbol-/Sprite-Tabelle Es gibt eine Tabelle der Style-/Symbol-/Sprite-Namen. Diese wird mit einem Python-Skript automatisch generiert aus der Style-Datei (JSON). :::info * Tabelle als **[CSV-Snippet](https://gitlab.com/osm-swiss-style/osm-swiss-style/-/snippets/4867890)**. * Das Python-Skript befindet sich im **[Code-Repository](https://gitlab.com/osm-swiss-style/osm-swiss-style/-/blob/main/sprite_ressources/symbols/extract_script_icon_list.py?ref_type=heads)** ::: Bedeutung der Felder: * sname (Symbol Name): Dies ist der Name des Symbols oder Icons, das auf der Karte angezeigt wird (z.B. bakery für eine Bäckerei, bus für eine Bushaltestelle). * spriteset (Sprite Set): Gibt an, aus welcher Icon-Sammlung das Symbol stammt. In Ihren Daten gibt es hauptsächlich ch-sprite, versatiles und swisstopo. Man kann es sich wie eine Schriftart für Symbole vorstellen. * rgbhex (RGB Hex-Code): Definiert die Farbe des Icons in hexadezimaler Form . N/A bedeutet, dass keine spezifische Farbe zugewiesen ist. * sourcelayer (Quell-Layer): Vektorkarten sind oft in thematische Layer unterteilt. Dieses Feld gibt an, aus welchem Datenlayer die Information stammt, z.B. pois (Points of Interest), public_transport oder peaks. * attributes (Style-Attribute): Dies ist die wichtigste Spalte. Sie enthält die Filterregeln, die festlegen, wann ein Symbol angezeigt werden soll. Die Regeln basieren auf den Eigenschaften (Tags) der Objekte im sourcelayer. * Einfache Regel: shop=bakery bedeutet: "Finde alle Objekte im pois-Layer, die das Attribut shop mit dem Wert bakery haben, und weise ihnen das bakery-Icon zu." * Komplexe Regel: "'to-number', ['get', 'elevation'], 0]>=500;QRank>100000" ist eine Regel für den peaks-Layer (Berggipfel), die nur Gipfel über 500m Höhe und mit einem bestimmten Wichtigkeits-Ranking (QRank) anzeigt. * Binhexed PNG. ## Den Style betrachten ### OSM Swiss Style Webmap :::info Die **OSM Swiss Style-Karte** mit dem aktuellsten Stand ist hier: https://osm-swiss-style.infs.ch/ bzw. [http://162.55.215.178/](http://162.55.215.178/) ::: ### MapDiff Webmap Wenn man den OSM Swiss Style kann mit OSM vergleichen möchte, kann man dies unter: https://osm-swiss-style.infs.ch/mapdiff.html Hier sieht man links unsere Karte und rechts die OSM Standartkarte. Man kann auf beiden Karten navigieren, sie werden sich immer synchronisieren und genau den gleichen Kartenausschnitt zeigen. ### PMTiles Viewer online Der [PMTiles Viewer](https://pmtiles.io/) kann verwendet werden um zu überprüfen was für Daten in den PMTiles vorhanden sind. Denn wenn man etwas anzeigen möchte, reicht es nicht die korressponiderende Klasse im Stylefile einzufügen, sondern man muss zuerst sicherstellen, dass die gewünschten Geodaten in den Tiles vorhanden sind. Um dieses Tool zu verwenden kann man unser Repo klonen. Dann wie im Readme beschrieben mit dem Just-Befehl `Just generate-tiles` unser Tileset generieren. Somit kann man dieses dann über den "hochladen"-button in das Webtool laden und die Tiles dann analysieren. Mann kann aber auch einfach die Url unserer Tiles einfügen `https://osm-swiss-style.infs.ch/data/switzerland_expanded.pmtiles` und die Tiles dann so anschauen. ### QGIS lokal Der OSM Swiss Style kann in einer abgespeckten Version in QGIS begutachtet werden. Mit abgespeckt ist gemeint, dass unsere Sprites (Icons usw.) nicht richtig geladen werden können von QGIS und diese somit auf der Karte fehlen. Auch scheint die Konvertierung der Zoomlevels nicht einwandfrei zu funktionieren, was dazu führt, dass die Karte auf hohen Zoomleveln nicht so aussieht, wie sie sollte. Um die Karte nun in QGIS anzeigen zu können, muss man die Vektorkachel-Option unter den Quellen in QGIS auswählen und dort in die Stil-URL unser Stylefile hinzufügen: https://osm-swiss-style.infs.ch/styles/colorful-pmtiles.json Das “colorful-pmtiles.json” ist ein Stylefile für ein MapLibre-Projekt, das die Darstellung von Karten mit Vektor-Tiles definiert. Es legt fest, welche Datenquellen genutzt werden, und enthält Regeln für Farben, Linienbreiten, Schriftarten und Transparenzen. Dadurch wird bestimmt, wie geografische Elemente wie Straßen, Gebäude oder Gewässer dargestellt werden, wobei die Karte flexibel und interaktiv bleibt. Dann lädt man den Protomaps Go-PMTiles-Server via Binary herunter und fügt dies zu seinem System-Path hinzu. Die Binaries findet man hier: https://github.com/protomaps/go-pmtiles/releases Dann startet man den Server in einer Konsole mit: `pmtiles serve ./pfad/zu/euren.pmtiles` Dann einfach die URL "http://localhost:8080/yourfile/{z}/{x}/{y}.mvt" im selben Dialog unter URL eintragen und die Verbindung speichern. Somit kann die Verbindung jetzt in einem Projekt als Layer hinzugefügt werden. ::: info **HINWEIS**: Es fehlen einige Elemente des Styles, z.B. Icons usw., da QGIS die Sprites nicht automatisch findet. Auch ist ein Problem, dass unsere contour-source für die Höhenlinien keine CORS-Header hat, was dazu führt, dass QGIS sie nicht laden kann. ::: ## Den Style anpassen Um unseren Style zu bearbeiten - wenn zum Beispiel in ein Fehler gefunden wurde - muss man folgende Abhängigkeiten beachten: 1. Style File (JSON), 2. tilemaker Konfiguration, 3. Vector Tiles Schema, 4. OSM Daten. ::: success **HINWEIS**: Wegen pmtiles kann man den Style noch nicht direkt über Maputnik bearbeiten. ::: ### Maputnik der Style Editor Das zur Demo dazugehörige **Style-File** kann mit Maputnik aufrufen: [https://osm-swiss-style.infs.ch/maputnik/](https://osm-swiss-style.infs.ch/maputnik/?style=https://osm-swiss-style.infs.ch/styles/colorful-pmtiles.json#8.47/47.0402/8.5605). In Maputnik kann man Stylefehler finden und die betroffene Klasse identifizieren. Diese muss man manuell im colorful-pmtiles.json suchen und dort bearbeiten. Wie das geht findet man hier: https://maplibre.org/maplibre-style-spec/ :::danger Maputnik funktioniert mit unseren Pfäden im Moment nicht. Bis der Editor effizient für das bearbeiten von styles genutzt werden kann, braucht es noch ein paar Änderungen. ::: ### PMTiles Viewer Wenn man den Fehler nicht in Maputnik findet, dann liegt er wahrscheinlich daran, dass die gewünschte Klasse noch nicht in den Tiles vorhanden ist. Dies kann überprüft werden in dem man unsere switzerland.pmtiles beim [PMTiles Viewer](https://pmtiles.io/) hochlädt (bzw. URL angibt) und dort überprüft ob was in den Tiles vorhanden ist. Falls etwas noch nicht vorhanden ist, muss man die korresspondierenden OSM-Tags im config.lua einfügen und die Tiles neu generieren. **Wichtig:** Nur weil der Tag in OSM existiert heisst noch nicht, dass ein Einfügen des Tag in das Config-file reicht. Es kann sein, dass die Daten in OSM inkorrekt eingetragen wurden, sich nicht an die Konventionen gehalten wurde oder einfach allgemein fehlerhafte Daten vorhanden sind. ### Schema-Erweiterungen Die Tiles, welche zusätzlich benötigt werden, stellen wir selber her. Dafür wurde Tilemaker mit einer custom-config verwendet. Die custom-config ist auch im Tilemaker folder in unserem Repo enthalten. Ausschlaggebend sind diese Dateien, die bei dem Aufrufen von Tilemaker mitgegeben werden müssen: * process-ch.lua * config-ch.json Im Moment enthält unser Zusatztileset nur Gipfel. Falls in Zukunft weitere Sachen im Shortbread-schema fehlen würden, dann werden wir unser Schema erweitern. ## Technologien ### Allgemeines Den Kern des Technologiestacks bilden die Vektorkacheln (Tiles), genauer gesagt die "**Mapbox Vector Tiles**" (MVT). Der Blog Post "[Everything You Wanted to Know About Vector Tiles (But Were Afraid to Ask)](https://www.openstreetmap.org/user/daniel-j-h/diary/404061)" ist eine lehrreiche Einführung. Weitere Technologien sind: * Im Browser-Frontend wird die quelloffene Javascript-Bibliothek (TypeScript) "**Maplibre GL JS**" verwendet. * (Für die Javascript-Bibliothek "Leaflet" gibt es das Plugin "MapLibre GL Leaflet".) * Ein "**Maplibre-Style**"-Dokument (im JSON-Format) beschreibt die Kartendarstellung (Stil-Syntax). * Der Stil wird direkt im JSON-Format und mit Hilfe von **Maputnik** entwickelt. * Als Ausgangspunkt wird der Shortbread-Kartenstil **VersaTiles** Colorful verwendet. * **Sprache**: Für Labels wird der `name`-Tag in der jeweiligen Landessprache verwendet. * Schrift: Es wird die die Schrift **TBD** verwendet. * Die Daten sind im **Vektorkachel-Schema "Shortbread"** strukturiert. * Die Vektor Tiles werden mit **Planetiler** generiert. Dieses Tool lädt die original OSM Daten von Geofabrik (Extrakte, z.B. Länder) oder einem Planet-Mirror herunter. * Die Vektor Tiles werden in einem **PMTiles** Archiv gespeichert. * Aus dem Höhenmodell werden **Terrarium-Tiles** (PNG-Format mit Höhen als RGB-Werte) generiert und ebenfalls als PMTiles Archiv gespeichert. ### Vektorkachel-Datenquellen * OSMF Vector Tiles (Shortbread): News https://community.openstreetmap.org/t/vector-tiles-on-osmf-hardware/121501 . Demo: https://pnorman.github.io/tilekiln-shortbread-demo/#12.57/47.20977/8.82582 * Jochen Topf has introduced https://blog.jochentopf.com/2024-09-30-introducing-osm-xray.html OSM XRAY, a vector tiles service that includes all OSM data, intended to be used primarily for debugging purposes: http://test.osm2pgsql.org/ * Geofabrik: pmtiles länderweise zum Download. ### Höhenlinien, Geländeschummerung, Felsschraffuren **Höhenlinien**: Es wird das maplibre-contour Plugin zur Erzeugung von Höhenlinien real-time aus Terrarium-Tiles (Höhenmodell) verwendet. **Schummerung** (Relief shading, Hillshading): Erste Version mit MapLibre `hillshade` Layer ebenfalls real-time abgeleitet aus Terrarium-Tiles (Höhenmodell). Die Optimierung der Schummerung für Schweizer-Stil analog der Desktop-Applikation Eduard ist *Out of Scope*. (Allenfalls werden manuell mit Eduard erzeugte Tiles über ein zusätzliches PMTiles-Archiv eingebunden)Im Moment werden die EDUARD Rastertiles noch per QGIS-map-server und Mapproxy serviert und so eingebunden. Dies wird so bleiben bis wie ein Workflow erstellt haben, der die Tiles gut seeden kann und diese dann in ein Archiv verpackt. **Felsschraffuren** (Rock hachures): Es werden experimentell Raster-Kacheln der ETHZ verwendet. Die Felsschraffuren könnten ebenfalls real-time abgeleitet werden aus Terrarium-Tiles. Das könnte eine Software-Entwicklung sein auf Basis der Dissertation von Roman Geisthövel ("Automated Swiss-Style Relief Shading and Rock Hachuring") ist aber *Out of Scope*. ### Tool-Stack zum Generieren der Tiles * Um die Vektor-Tiles zu generieren wird der shortbread-tilemaker **[Tilemaker](https://shortbread-tiles.org/make-vectortiles/tilemaker/)** (C++, no database) verwendet. * Auch unsere eigenen Zusatztiles werden mit Tilemaker erstellt. * Tilemaker wird aufgerufen mit dem Command just generate-tiles ### Icons, Fonts und Sprites Der OSM Swiss Style nutzt den offenen Font Family "**Roboto Condensed**" von Google. Damit die Schrift in einer MapLibre-Applikation einsetzbar ist, muss man sie von einer .ttf-Datei zu einer .tbf-Datei konvertieren. Das geht u.a. mit der Web-App [Font-Maker](https://maplibre.org/font-maker/). Wir nutzen zurzeit folgende verschiedenen Iconn- bzw. Sprite-Sets: 1. Die OSM-Standarticons Icons aus diesem [Repo](https://github.com/imagico/osm-carto-alternative-colors/tree/alternative-colors/symbols) ([Lizenz](https://github.com/imagico/osm-carto-alternative-colors/blob/alternative-colors/LICENSE.txt)) 2. Das Icon Set Versatiles-Colorful ([Lizenz](https://github.com/versatiles-org/versatiles-style/blob/main/LICENSE.md)). 3. Das Icon Set von der Swisstopo (Lizenz: Swisstopo, siehe Swisstopo FAQ). Wir nutzen alle diese Sprites gleichzeitig, bis wir ein einheitliches Spriteset finden oder erstellen. Zum Erstellen dieser Spritemaps, aus einem Verzeichnis aus SVG-Symbolen, nutzen wir [Spreet](https://github.com/flother/spreet). ### Piktogramme Bei der Gestaltung der Piktogramme wird auf eine klare Formensprache und maximale Reduktion geachtet. **Gütekriterien** Ein gutes Piktogramm: * ist eine abstrakte, **stark generalisierte** und **charakteristische** Abbildung eines Begriffs, * dient der **Information** und Navigation, * soll auf einem **Piktogrammsystem** und **Gestaltungsraster** aufgebaut sein, * ist **international, kultur-** und **bildungsneutral**, verletzt **keine Tabus** und * wird **ohne Zusatz von Schrift verstanden**. Ein Piktogramm darf **nie** eine **Illustration** sein. ### Kartografische Generalisierung Kartografische Generalisierung ist notwendig, um die Karten je nach Massstab und Zweck nutzbar und verständlich zu machen, indem sie nur die wesentlichen Informationen darstellt und unnötige Details weglässt. Hier einige Techniken: * Vereinfachung, z.B. Strassen oder Waldgrenzen. * Klassifizierung und Zusammenfassung * Auswahl, d.h. Entscheiden, welche Objekte überhaupt dargestellt werden sollen. In Maplibre GL JS sind bereits einige Generalisierungs-Funktionen implementiert. Es gibt jedoch noch einige Verbesserungsmöglichkeiten. Folgende Generalisierungs-Funktionen sind wünschbar (vgl. auch das ArcGIS ["Generalization toolset"](https://pro.arcgis.com/en/pro-app/latest/tool-reference/cartography/an-overview-of-the-generalization-toolset.htm)): * "Simplify Polygon" bei Landuse/Landcover und ggf. bei Gebäuden. * "Smooth Line" bei Strassen und "Smooth Polygon" bei Gewässer-Ufer. * "Collapse Hydro Polygon" bei Flüssen/Bächen. Ob "Resolve Graphic Conflicts" und Unterschreiten von Minimalabstandsdimensionen nötig ist, ist noch unklar (ArcGIS hat dazu ein "[Graphic Conflicts toolset](https://pro.arcgis.com/en/pro-app/latest/tool-reference/cartography/an-overview-of-the-graphic-conflicts-toolset.htm)"). Dann: "Importance" - Berechnung der "Wichtigkeit" von Burgen (vgl. die [Burgen-Dossier-Karte](https://castle-map.infs.ch/)) und v.a. Bergen, z.B. Die Dominanz als eine Methode, die im Gegensatz zu Prominenz und Schartenhöhe keine detaillierte topographische Analyse benötigt. ## Lizenzen Zu den **Lizenzen** der Daten und Dokumente: Die Lizenz des OSM Swiss Style ist [CC BY 4.0]( https://creativecommons.org/licenses/by/4.0/deed.de) (oder CC0). Vorgegeben: * Icons * Das Vector Tiles Schema Shordbread mit der Lizenz CC0 * OSM-Daten mit ODbL. Die freien Lizenzen der verwendeten Höhendaten und den davon abgeleiteten Daten müssen noch geklärt werden. Die empfohlene Namensnennung ("Attribution") auf Karten mit dem OSM Swiss Style ist (rechts unten): _[OSM Swiss Style CC BY 4.0](https://gitlab.com/osm-swiss-style/) | © [OpenStreetMap contributors](https://www.openstreetmap.org/copyright) | [Verbessere diese Karte](https://www.openstreetmap.org/fixthemap?lat=47.253223&lon=8.770389)_ ## Ausblick Dieser OSM Swiss Style ist erst ein erster Entwurf. Gerne nehmen wir Feedback entgegen! Man kan sich auch aktiv bei diesem Projekt einbringen - oder an einem OSM-Treffen vorbeischauen - oder einfach einen [Kartenfehler beheben](https://www.openstreetmap.org/fixthemap?lat=47&lon=8.5&zoom=10). Die Erstellung von Schwarzweiss- und Druckstilen, die programmatisch abgeleitet werden, könnte zu einem späteren Zeitpunkt als mögliches Studenten- oder Forschungsprojekt durchgeführt werden. ## Danksagung Herzlichen Dank an Dr. Andreas Neumann, Patrick Lehman und Prof. Lorenz Hurni von der Professur Kartografie an der ETH Zürich ([Webseite](https://karto.ethz.ch/)) für die gute Zusammenarbeit und die kartografische Unterstützung! ## ANHANG: Bibliographie Ressourcen zur Kartenherstellung mit Vektorkachel-Technologien und mit OpenStreetMap-Daten. "Wichtig": * Maplibre GL JS: https://maplibre.org/maplibre-gl-js/docs/ * Maplibre Styles: https://maplibre.org/maplibre-style-spec/ * VersaTiles Stile: https://github.com/versatiles-org/versatiles-style * Maputnik: https://maplibre.org/maputnik/ * Tilemaker: https://tilemaker.org/ ([Tilemaker vs. Planetiler](https://planetiler.versatiles.org/#10.03/52.5551/13.4064); [Planetiler](https://github.com/onthegomap/planetiler)) * PMTiles: https://docs.protomaps.com/pmtiles/ * Terrarium Tiles: https://github.com/nst-guide/terrain?tab=readme-ov-file#terrain-rgb-vs-raster-hillshade * Konvertierung Swisstopo DTM zu Terrarium Tiles: https://github.com/acalcutt/swisstopo_to_mbtiles MapLibre: * MapLibre Demo Tiles https://github.com/maplibre/demotiles * MapLibre Hillshading/Terrain: https://maplibre.org/maplibre-gl-js/docs/examples/3d-terrain/ * Verwendete Methode für MapLibre Hillshading: https://observablehq.com/@sahilchinoy/hillshader * Automated Swiss-Style Relief Shading and Rock Hachuring: https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/201368/automatic_swiss_style_rock_depiction_roman_geisthoevel_2017.pdf * maplibre-contour: https://github.com/onthegomap/maplibre-contour * (tbc.) Weitere Ressourcen: * OpenStreetMap Schweiz: www.osm.ch * Blog post about "Minutely updated vector tiles demo" by Paul Norman (from OSMF): https://community.openstreetmap.org/t/minutely-updated-vector-tiles-demo/110121 (Map: https://pnorman.github.io/tilekiln-shortbread-demo/#6.56/50.394/4.684). It's based on the Shortbread schema and an own tool chain for generating the Vector Tiles hosted on tilekiln.xyz. * "Americana" - A quintessentially American map style: https://zelonewolf.github.io/openstreetmap-americana/#map=4/40.5/-94 * Issue "Should MapLibre have a Style Editor?" https://github.com/maplibre/maplibre/discussions/153 * awesome-maplibre https://github.com/maplibre/awesome-maplibre?tab=readme-ov-file * Swisstopo-Zeichenschlüssel: https://shop.swisstopo.admin.ch/de/hilfsmittel-und-didaktik/legenden * Swisstopo "Light Base Map": https://www.swisstopo.admin.ch/de/webkarten-light-base-map * (tbc.) --- Lizenz dieses Dokuments [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.de) ## ANHANG: To Dos ### Webseite * [x] Titel auf Website einbauen => "OSM Swiss Style – Schweizer Kartendesign trifft OpenStreetMap" (Swiss map design meets OpenStreetMap)! * [x] About-Link (=> ""ℹ️ About"): Link auf https://md.coredump.ch/s/_Q5u1R9OO – z.B. als iFrame wie hier https://gitlab.ost.ch/ifs/data-mgmt-chatbot/azure-solution/mse-chatbot-fullstack/-/blob/main/frontend/src/components/QuestionInput/QuestionInput.tsx#L105 // Es wurde ein Button, der auf diese Doku verweist hinzugefügt. * [ ] Legende erstellen und idealerweisee generieren lassen... (z.B. mit "vt legend" https://github.com/Smart-Mapping/vt-legend (und in About einbauen?) * [ ] Doku: Text wie man sich beteiligen kann (CONTRIBUTING.md). * [ ] Infrastruktur / Text-Anleitung wie ausgewählte Leute den Style editieren können. * [x] Links aus Adressleiste kopieren führt mit Firefox und Chrome nicht zum selben Ort: z.B. das ist https://osm-swiss-style.infs.ch/#14.58/46.9341/7.4208 in Köniz/BE, bei Firefox zeigt es aber Alpnach an. ### Infrastruktur * [ ] Wobbly/shaky/snake lines der railway-Linien (Tramlinien): Issue erstellen mit Screenshot auf https://github.com/systemed/tilemaker/issues . Danach ggf. Michael Reichert (Michael Reichert <osm-ml@michreichert.de> ) fragen. * [x] Priorisieren der Labels z.B. an Bergen z.B. mit https://osmviews.toolforge.org/ (Joel weiss mehr). * [ ] "Render (Unit) Tests": Vergleiche eine neue pmtiles-Kachel mit einem vorgegebenen Output und visualisiere allfällige Unterschiede. Oliver Wipfli's [pmtiles-Diff Implementation mit Planetiler](https://github.com/protomaps/basemaps/tree/main/render-tests) (das wir auf Tilemaker übertragen müssten) * [x] Labels priorisieren: Geplant ist ja, nur die Berge-Labels zu priorisieren. Oliver Wipfli hat mittels QRrank sämtliche Labels priorisiert - mit recht guten Resultaten (mit Planetiler statt Tilemaker): https://github.com/search?q=repo%3Awipfli%2Fswiss-map%20qrank&type=code ### Symbolisierung, Signaturen etc. * [ ] Liste der verwendeten POIs (einige fehlende Signaturen sind im [Issue #18](https://gitlab.com/osm-swiss-style/osm-swiss-style/-/issues/18) erwähnt ). * [x] Defis-Icons: Farbe anpassen * [x] Schlösser- und Burgen-Icons darstellen :smirk:! * [ ] SAC Berghütten früher anzeigen * [x] Label-Grössen geografischer Namen: Geogr. Namen sollten sicher nicht kleiner sein als andere: z.B. Der Empfang vom BAG im Liebefeld ist besser sichtbar als "Liebefeld" https://osm-swiss-style.infs.ch/#15.72/46.9324/7.4224 - oder die die Leone Academy sollte nicht grösser sein als "Liebefeld": https://osm-swiss-style.infs.ch/#16.72/46.9324/7.4210 * [x] Bushaltestelle Icon ist angeschnitten: https://osm-swiss-style.infs.ch/#20.14/46.9378/7.4166 ### Erledigt * [x] Info-Knopf: Auch Felsschraffen und Geländemodell von Swisstopo. * [x] Eisenbahnlinien-Generalisierung: ab 12 Liniengeneralisierung wieder einschalten * [x] Felsschraffen: swisstopo Tiles testen. * [x] Neben den Felssschraffen gibt es auch noch die Gletscherbrüche in blau. Diese sollte man auch einbinden, sowie Unterseefelsen. * [x] SAC- und andere Berghütten im Gebirge auch als Icon visualisieren, nicht nur als Gebäudegrundriss und Schrift, weil diese sieht man erst sehr spät beim Einzoomen. * [x] Höhenlinien dicker, sind vielleicht etwas zu dünn in der Strichstärke. * [x] Restaurants gleiche Zoomstufe ### Out of scope * Ausrichtung Flächenmuster * Bei Tunnels noch ein Portal, z.B. ein Querstrich als "Marker" an Beginn und Ende. * Galerien (Lawinenverbauungen über Strassen) symbolisieren als Marker-Lines verwenden mit einem regulären Intervall. => Da muss wohl noch ein OSM-Tag gefunden werden! <details> <summary>Verworfene Alternativen für den Slogan.</summary> Alternativen für den Slogan "Schweizer Kartendesign trifft OpenStreetMap": - OSM Swiss Style - Der neue Schweizer Basiskarten-Stil mit OpenStreetMap (bisher) - OSM Swiss Style – Traditionelle Schweizer Kartenkunst mit OpenStreetMap - OSM Swiss Style – Schweizerische Kartenästhetik mit OpenStreetMap in sanften Farben und starker Übersicht - OSM Swiss Style – Schweizer Kartenqualität mit OpenStreetMap - OSM Swiss Style – "Reducing cartographic base maps to the max" - OSM Swiss Style – Die Schweizer OSM-Basiskarte </details> ---