Zum Hauptinhalt springen

Mapfiles

Für die Indoor Repräsentation werden die Mapfiles verwendet. Diese sind normale OSM-XML Dateien und können auch direkt aus der OSM abgeleitet werden, falls dies gewünscht ist. Dabei ist zu beachten, dass die erstellten Karten zwingend eine Bounding Box1 besitzen müssen, welche gegebenenfalls manuell in die Datei eingefügt werden muss.

Im Folgenden wird vor allem auf die indoor-spezifischen Tags und der Import aus anderen Datenquellen eingegangen, wobei es hier um die Konvertierung geht. Das Hochladen von einzelnen Mapfiles in die API wird in der Rubrik Content Editor erklärt.

Basis Dateiformate

Typischerweise beginnt ein Indoor Mapping Projekt mit Basisdaten in einem der folgenden Formate. Hier wird erklärt, wie man mit diesen Formaten zu einem IndoorGuide gelangt.

DWG

Dateien im dwg Format werden nur mittelbar unterstützt. Ein übliches Vorgehen ist es, mit einem CAD-Programm (z.B. FreeCAD, QGIS oder AUTOCAD) eine dwg Datei zu öffnen und dann die gewünschten Geometrien als dxf Datei zu exportieren. Dabei enthalten dwg Dateien sehr oft eine extrem große Anzahl an Details, die für das Indoor Mapping nicht geeignet sind. Daher ist es wichtig nur die entsprechende Submenge zu exportieren. Oftmals ist dies möglich, indem man einzelne Ebenen vom Export ausnimmt.

DXF

Dateien im dxf Format können einfach per Drag&Drop in JOSM importiert werden.2 Nachdem eine dxf Datei in JOSM importiert wurde, erhält man die Struktur der Daten in geeigneten Polygonen. In JOSM ist es nun notwendig Style-Klassen zu vergeben, damit die Darstellung am Ende den Wünschen entspricht.

Rastergrafiken

Mit der JOSM Erweiterung PicLayer ist es möglich einige Rastergrafikformate wie png, jpg oder bmp zu laden. Diese können entweder über eine Kalibrierungsdatei oder von Hand georeferenziert werden.

Danach ist es mit den einfachen JOSM Zeichenwerkzeugen ohne weiteres möglich, die Geometrie zu übernehmen.

Multipolygone, Areas, Ways und Nodes

In der OSM werden beim Mapping vier unterschiedliche Geometrietypen unterschieden, die alle leicht unterschiedliche Anforderungen mit sich bringen.

  • Nodes: Sind einzelne Punkte ohne Fläche. Sie werden hauptsächlich verwendet um kleine Gegenstände wie z.B. Bäume darzustellen. Außdem bilden sie die Basis der anderen Elemente.

  • Ways: Sind nicht-geschlossene Verbindungen von Nodes über Kanten. Ways repräsentieren zumeist Straßen, Zäune und andere Absperrungen. Ways können eine Breite und eine Umrandung haben, dürfen aber keinen Fill-Style angewandt haben.

contagt area

  • Areas: Sind die einfache Form von Flächen. Areas sind Polygone die immer geschlossen sein müssen, sie können einen Fill-Style angewandt bekommen.

contagt area

  • Relationen: Sind eine Gruppe aus Areas. Dabei kann für jeden Teil einer Relation (auch Multipolygon genannt) festgelegt werden, ob eine Fläche einen Außen- oder Innenteil der Relationen definiert. Darüber können Löcher in vollständig geschlossenen Flächen abgebildet werden.

contagt multipolygon

Mapstyles

Um schon beim Editieren der Karte einen Eindruck zu erlangen, wie die Karte aussehen wird, wenn Sie in die contagt Plattform importiert wird, kann das entsprechende MapCSS in JOSM geladen und angewendet werden.

Dafür kann z.B. diese Beispiel Datei geladen und in JOSM unter Einstellungen->Kartenstile hinzugefügt und aktiviert werden. Dadurch werden die gleichen Style-Anweisungen in JOSM wie in der contagt Plattform angewendet.

Über die Funktion Prüfen kann nun auch überprüft werden, ob die Stile auf die Geometrie korrekt angewendet wurden.

contagt multipolygon

Indoor-Attribute

Für jeden der Typen ist eine gewisse Menge an MapCSS Attributen erlaubt. Diese sind wie folgt festgelegt:

  • Global

    • name Legt einen Namen, der z.B. auf dem Straßenabschnitt angezeigt wird, fest.
    • font-family Der Name einer Schriftart zum Rendern des names (Das Font-File z.B. als ttf muss in der Zielapplikation hinterlegt sein)
    • font-style Der Schrift-Style, z.b. italic
    • font-size Die Schriftgröße
    • z-index Numerischer, ganzzahliger, positiver Wert, der eine Ordnung der zu zeichnenden Elemente auflegt. Je höher der z-index, desto später wird das Element gezeichnet.
  • Areas|Relationen

    • fill-color Die Farbe der Region.
    • fill-opacity Dezimaler Wert zwischen 1.0 = undurchsichtig und 0.0 = transparent.

    Areas und Relationen können auch alle Way-Definitonen erhalten um die Außen- und Innenlinien zu stylen.

  • Ways

    • color Die Farbe der Linie.
    • width Die Breite der Linie.
    • linecap: 'cap|butt|none',
    • stroke-linecap: 'cap|butt|none',
    • dashes: [5 5], Die Definition der Unterteilung der Linie im Format [Strichlänge-Pausenlänge]
    • casing-width: Die Breite der Einfassung.
    • casing-color: Die Farbe der Einfassung.
    • fix: Die Linie wird beim Zoomen nicht skaliert
    • opacity Dezimaler Wert zwischen 1.0 = undurchsichtig und 0.0 = transparent.

Extrusions

Eine nicht-OSM standardisierte Erweiterung auf der contagt Plattform sind sogenannte Extrusions. Extrusions erlauben es Areale und Relationen auf der Karte dreidimensional hervorzuheben.

Für das Styling von Extrusions stehen folgende Parameter bereit:

  • extrusion-outline: Boolean; Ob die Extrusion eine Außenkannte haben soll

  • extrusion-outline-thickness: Dezimal; Die Dicke dieser Außenlinie

  • extrusion-default-height: Dezimal; Die Höhe eine Extrusion in Metern auf der Karte

  • extrusion-sketch: Boolean; Zeichnet alle markanten Außenlinien nach

  • extrusion-line-color: ARGB Hex-Farbwert; Die Farbe der Outlines, falls diese gezeichnet werden

  • extrusion-top-color: ARGB Hex-Farbwert; Die Farbe der Oberseite

  • extrusion-side-color: ARGB Hex-Farbwert; Die Farbe der Seitenelemente

contagt Standard-Attribute

Um das Indoor Mapping etwas einfacher zu gestalten hat contagt die Outdoor-OSM Attribute um einige indoor-spezfische Attribute erweitert.

Selektor-NameSubselektorStandardwertBemerkungen
wallyesfill-color = #F2F6FF
fill-opacity = 1
Ist Aufgrund der Fill-Color nur auf Areas und Relationen
buildingyesfill-color = #CECA8C
color = '#000000'
fill-opacity = 0.5
Ist für die Darstellung von Gebäudeumrissen reserviert
surfacestepsfill-color = #FFA384
fill-opacity = 0.6
Sollte auf Treppenbereiche angewendet werden
surfaceelevatorfill-color = #CCA384
fill-opacity = 0.6
Sollte auf Aufzugsbereiche angewendet werden
surfacebalconyfill-color = #875646
fill-opacity = 0.6
Wird für nicht-ebenerdige Außenbereiche verwendet
surfacefloorfill-color = #A3BDFF
fill-opacity = 0.6
Wird für gangbare Bereiche (im allgemeinen Flure) verwendet
surfacesanitaryfill-color = #9D7FFF
fill-opacity = 0.3
Wird für Toiletten- und Waschbereiche verwendet
surfacesolidfill-color = #0B0811
fill-opacity = 1.0
Wird für nicht erreichbare Totflächen oder Säulen und andere Strukturen verwendet
surfacetransparentfill-color = #FFFFFF
fill-opacity = 0.4
Wie solid, nur weniger kräftig.
surfaceplantfill-color = #83DF60
fill-opacity = 0.9
Wird für bepflanzte Bereiche verwendet
surfacegreenfill-color = #88C037
fill-opacity = 0.9
Wird für mit Rasen oder niedrigen Gräsern bepflanzte Bereiche verwendet
surfacesandfill-color = #000000
fill-opacity = 0.8
Wird für Bereiche aus Sand oder losem Untergrund verwendet
surfaceconcretefill-color = #222222
fill-opacity = 0.6
Wird für betonierte oder anders geschlossene Bereiche verwendet
surfacepaving_slabfill-color = #222222
fill-opacity = 0.9
Wird für gepflasterte oder anders mit Steinen definierte Bereiche verwendet
surfacedoorcolor = #88C037
opacity = 1.0
Wird für Türen verwendet. Sollte nur als Way verwendet werden. Kann automatisch zu 3D-Türen konvertiert werden
surfacewindowcolor = #88C037
opacity = 1.0
In der Regel für Dachfenster und ähnliche Strukturn, da Gebäudefenster üblicherweise nicht dargestellt werden
surfacebackgroundfill-color = #FFFFFF
fill-opacity = 1.0
Wird verwendet um Style-Probleme zwischen der Außen- und Innenkartierung zu optimieren

Weitere OSM Attribute

Eine Liste der üblicherweise in der OSM verwendeten Keys findet sich im OSM Wiki. In der Beschreibung findet sich nicht nur eine Übersicht der typischen Anwendungsfälle, sondern auch eine Auflistung bekannter Edge-Cases und üblicher Fehler.

Footnotes

  1. Beispiel einer Bounding Box: <bounds minlat='49.4982633' minlon='8.4679055' maxlat='49.4991238' maxlon='8.46937' origin='CGImap 0.3.3 (18610 thorn-01.openstreetmap.org)' />

  2. Vorausgesetzt die entsprechende Erweiterung ist gemäß vorherigem Schritt bereits installiert.