Wie STL Map Studio OpenStreetMap-Daten verarbeitet

Die Kartendaten stammen von OpenStreetMap und stehen unter der Open Database License (ODbL). © OpenStreetMap-Mitwirkende – openstreetmap.org/copyright.

Die erzeugten 3D-Modelle sind „Produced Works“ im Sinne der ODbL. Gemäß ODbL §4.6 beschreiben wir hier die Methode, mit der die Daten ausgewählt und verändert werden.

1. Abfrage

Für den gewählten Ausschnitt wird diese Overpass-Abfrage gestellt. Die Abfragebox ist je Seite um 2,5 % der Breite bzw. Höhe größer als der gewählte Ausschnitt (Halbachse × 1,05), damit Features am Rand sauber abgeschnitten werden statt zu fehlen:


2. Verarbeitung

  1. Multipolygon-Relationen werden aus ihren Wegen zu geschlossenen Ringen zusammengesetzt; Ringe, die sich nicht schließen lassen, werden verworfen.
  2. Jedes Objekt wird anhand seiner Tags höchstens einer Klasse zugeordnet: Hauptstraßen, Nebenstraßen, Wege, Bahn, Gebäude, Wasser, Wasserläufe, Grün. Tunnel und tief liegende Objekte (layer < 0) werden nur ausgeblendet, wenn die Option „Tunnel zeigen" aus ist; sonst erscheinen sie normal.
  3. Koordinaten werden mit einer lokalen equirektangulären Projektion um die Ausschnittmitte in Millimeter umgerechnet.
  4. Linien werden auf eine Breite gepuffert: Tag width, sonst lanes × 3,5 m, sonst ein Standardwert je Typ; mal Breitenfaktor; mindestens die eingestellte Mindestbreite und Düsenbreite.
  5. Flächen und gepufferte Linien werden je Klasse vereinigt, auf den Rahmen zugeschnitten und nach Priorität überlappungsfrei gemacht (Gebäude vor Hauptstraßen vor Nebenstraßen vor Wegen vor Bahn vor Wasserläufen vor Wasser vor Grün).
  6. Stellen schmaler als das 0,9-Fache der Düse werden über morphologisches Öffnen entfernt; Teilflächen und Löcher kleiner als Düse² fallen weg; benachbarte Teile bekommen zusätzlich 0,5 µm Abstand, damit die spätere Extrusion garantiert wasserdicht ist; Punkte näher als die Vereinfachungstoleranz werden zusammengefasst.
  7. Die Flächen werden auf die eingestellten Höhen extrudiert (auf Vielfache der Layerhöhe gerundet); Gebäude optional nach height bzw. building:levels (+ roof:levels) × 3 m, abzüglich min_height, mit Mindest-/Höchsthöhe begrenzt.
  8. Je nach Farbmodus (Multi-Material, Höhenstufen oder Inlay) werden die Klassenkörper unverändert exportiert, auf Höhenbänder verteilt oder als steckbare Teile in Taschen der Basisplatte gesplittet.
  9. Optional werden Wasser und Wasserläufe in eine Mulde unter der Plattenoberkante gesetzt. Inlay-Taschen, Mulde und die Prägung auf der Unterseite werden als Schnitte in die Platte übernommen; unter jeder Vertiefung bleiben mindestens 0,6 mm Material.
  10. Auf der Unterseite wird „© OpenStreetMap contributors – openstreetmap.org/copyright“ gespiegelt eingeprägt (bei kleiner Schrift „(c)“ statt „©“; abschaltbar; für verkaufte Drucke verlangt die OSM Foundation die Attribution, soweit möglich, auch auf dem Objekt).

Die Ortssuche nutzt Nominatim (OpenStreetMap-Daten, ODbL) nur, um die Karte zu positionieren.

Details siehe PIPELINE.md. Alle Schritte laufen im Browser; der Quellcode wird mit der Seite ausgeliefert.