freemapperEnglish

Handbuch › freemapper-courseplan

4. Der Editor

Der Editor zeigt die Veranstaltung im Browser. Du kannst Posten setzen, verschieben und löschen, Bahnen und Kategorien anlegen, Strecken knicken und abflaggen, Postennummern setzen, Sonderobjekte zeichnen und jeden Schritt zurücknehmen. Postenbeschreibungen wählst du in den Eigenschaften eines Postens. Unter den Bahnen liegt die echte Karte. Der Editor führt die Prüfung beim Arbeiten aus und zeigt ihre Befunde. Exportieren und Importieren findest du im Menü „Veranstaltung“, ebenso das Abgleichen mit Purple Pen.

Starten

freemapper-courseplan edit rummelsburg-sprint.courseplan.toml

Der Befehl lädt das Projekt, öffnet den Browser und gibt die Adresse in einer einzigen Zeile aus, etwa http://127.0.0.1:47123/3f9c…/. Ist die Projektdatei kaputt, nennt er die Datei und endet mit Exit-Code 1, ohne etwas auszugeben. Er läuft, bis du Strg+C drückst oder im Menü „Veranstaltung“ den Punkt „Editor schließen“ wählst. Beide Wege beenden ihn mit Exit-Code 0.

  • --port N wählt den Port. Ohne die Angabe nimmt das Programm einen freien. Ist der Port belegt, meldet es das und endet mit Exit-Code 1.
  • --no-browser öffnet den Browser nicht. Du öffnest die ausgegebene Adresse selbst. Lässt sich der Browser nicht starten, schreibt das Programm einen Hinweis und läuft weiter.
  • Die Sprache der Seite folgt der Sprache des Programms (--lang de, FREEMAPPER_LANG oder die Spracheinstellung des Systems). Die Seite hat keinen Sprachschalter; zum Wechseln startest du den Editor neu.

Ein Editor gehört zu einem Projekt. Willst du ein zweites öffnen, startest du einen zweiten Editor.

Was die Seite zeigt

  • Links steht der Baum der Veranstaltung mit den Gruppen Bahnen, Kategorien, Posten und Sonderobjekte. „Alle Posten“ zeigt jeden Posten mit seinem Code.
  • In der Mitte steht die Karte. Wählst du eine Bahn, zeichnet der Editor ihre Kreise, Startdreieck, Ziel, Strecken und Postennummern darüber. Nummernfelder mit gestrichelter Linie hat das Programm automatisch platziert; für sie ist noch keine Lage im Projekt gespeichert.
  • Rechts stehen die Eigenschaften der Auswahl, etwa Name, Länge und Anstieg einer Bahn oder Code, Art, Position und Beschreibung eines Postens. Bei einem Posten nennt die Liste auch die Kartenobjekte im Umkreis von 3 mm. Darunter stehen die Befunde der Auswahl.
  • Die Statusleiste unten nennt die Karte, den Maßstab, die Kartenart und die Mauszeigerposition in Kartenmillimetern. Meldungen erscheinen dort ebenfalls.

Der Editor mit Bahn A auf der Karte Rummelsburger Bucht: links der Baum der Veranstaltung, in der Mitte die Karte mit der Bahn, rechts die Eigenschaften der Bahn, unten die Statusleiste mit den Befundzahlen.

Der Editor mit Bahn A (vier Posten, 905 m) auf der Sprintkarte Rummelsburger Bucht; Start und Ziel stehen im Park in der Mitte. Deutsche Oberfläche. Karte: Remo Madella, MOO Challenge Berlin 2025, siehe examples/rummelsburger-bucht/ATTRIBUTION.txt.

Die Karte

Die Karte zeichnet derselbe Kartenzeichner, den auch freemapper-print benutzt (freemapper-render in freemapper-core v0.14.1). Der Editor zeigt sie als SVG, deshalb bleiben Linien und Schrift bei jeder Vergrößerung scharf. Kreise, Strecken und Nummern liegen darüber, an der Stelle der Karte, zu der sie gehören. Statusleiste und Eigenschaften nennen Positionen in Kartenmillimetern, nicht in Seitenmillimetern.

Die Seite fragt den sichtbaren Teil der Karte samt Rand an, 150 ms nachdem sich die Ansicht nicht mehr bewegt. Solange du die Ansicht ziehst, geht keine Anfrage hinaus; der neue Ausschnitt erscheint, wenn du loslässt. Ändert sich die Kartendatei, zeichnet der Editor sie neu.

Drei Grenzen können in der Statusleiste erscheinen:

  • Die Karte ist im Kartenmaßstab größer als ein A3-Blatt. Der Kartenzeichner kennt nur Seiten in A4 und A3. Der Editor zeichnet den mittleren Teil und sagt das. Bahnen und Posten außerhalb bleiben im Overlay sichtbar, aber darunter siehst du keine Karte. Um die Grenze zu heben, bräuchte der Kern eine freie Seitengröße.
  • Die Karte ist sehr detailreich. Ist das Budget des Kartenzeichners für die Seite aufgebraucht, lässt er Objekte weg, kürzt einige und verwirft einige Flächenmuster. Der Editor sagt, dass die Kartenfläche unvollständig ist. Die Bahnen sind nicht betroffen. Ausgeblendete Symbole bleiben unerwähnt.
  • Die Vergrößerung ist zu hoch. Bräuchte der Ausschnitt ein Bild von mehr als 100 000 px Kantenlänge, weigert sich der Server, ihn zu zeichnen, die Statusleiste sagt es und das Overlay bleibt. Verkleinere die Ansicht oder wähle einen kleineren Ausschnitt. Die Seite selbst begrenzt das Bild auf 6 000 px Kantenlänge; die Meldung siehst du deshalb nur nach einer von Hand gebauten Anfrage.

Die Schaltfläche „Druckvorschau“ (Taste P) zeigt die gewählte Bahn so, wie freemapper-print sie zeichnet. Der Server gibt die Bahn an den gemeinsamen Renderer, der die Purpurebenen in das Kartenbild malt; das Overlay des Editors ist dabei ausgeblendet. Solange die Vorschau an ist, lässt sich nichts bearbeiten (Baum, Eigenschaften, Rückgängig und Tasten sind abgeschaltet), und ein Druck auf die Karte verschiebt nur den Ausschnitt. Die Schaltfläche geht erst, wenn du eine Bahn gewählt hast. Ein Test vergleicht Kreise, Strecken, Bandstrecken, Querungsstellen und Nummernfelder des Editors mit denen des Renderers auf 0,01 mm. Die Entscheidungen stehen in ADR 0046, 0056 und 0057.

Posten

Die Werkzeugleiste hat die Werkzeuge „Auswählen“, „Posten setzen“, „Querungsstelle setzen“ und „Sonderobjekt“. Jede Änderung wird sofort gespeichert, über dieselben Operationen wie in der Kommandozeile und beim KI-Assistenten; es gelten also dieselben Prüfungen. Lehnt das Programm eine Änderung ab, etwa eine Position außerhalb der Karte, bleibt die Datei, wie sie war, und eine Meldung nennt den Grund.

Im Editor gewählter Posten 33: rechts seine Eigenschaften, auf der Karte sein Kreis in Blau.

Posten 33 ist gewählt. Die Eigenschaften zeigen Kennzahl, Art, Lage und die Bahnen, die ihn verwenden, dann die Postenbeschreibung und die Kartenobjekte im Umkreis von 3 mm. Karte: Remo Madella, MOO Challenge Berlin 2025, siehe examples/rummelsburger-bucht/ATTRIBUTION.txt.

  • Auswählen. Mit dem Werkzeug „Auswählen“ klickst du einen Posten in der Karte oder im Baum an. Ein Klick wählt den Posten, dessen Mittelpunkt dem Mauszeiger am nächsten liegt, solange der Zeiger höchstens den Kreisradius plus die Linienbreite entfernt ist. Rechts zeigen die Eigenschaften ihn an.
  • Setzen. Wähle „Posten setzen“ und klicke auf die Karte. Der Editor legt an dieser Stelle einen Posten an.
  • Querungsstelle setzen. „Querungsstelle setzen“ arbeitet genauso, legt aber einen Posten der Art „Querungsstelle“ an. Er bekommt den nächsten freien Code, teilt die Nummerierung mit den übrigen Posten und steht im Baum mit „(Querungsstelle)“. Auf der Karte erscheint er als zwei Bögen ohne Kreis. Die Eigenschaften zeigen Code, Art und Position, aber keine Postenbeschreibung, denn eine Querungsstelle hat keine. Zu einer Bahn fügst du sie im Bahnmodus hinzu wie jeden Posten.
  • Verschieben. Ziehe einen Kreis, oder trage in den Eigenschaften neue Werte in die Felder X (mm) und Y (mm) ein. Du kannst Dezimalkomma oder Dezimalpunkt schreiben, 12,5 oder 12.5. Alles andere markiert das Feld und zeigt einen Hinweis. Beim Ziehen bewegt sich nur der Kreis. Strecken und Nummern folgen, wenn du loslässt. Esc bricht das Ziehen ab, und der Posten bleibt, wo er war.
  • Schieben. Bei gewähltem Posten verschieben ihn die Pfeiltasten um 0,1 mm, mit Umschalt um 1 mm. Der Editor speichert einmal, wenn du die Taste loslässt; eine gehaltene Taste ergibt also nur einen Schritt zum Rückgängigmachen. Ohne Auswahl verschieben die Pfeiltasten die Ansicht.
  • Code ändern. Ändere das Feld „Kennzahl“ in den Eigenschaften. Die Bahnen und akzeptierten Befunde, die den Posten nennen, ziehen mit. Der Editor lehnt einen Code ab, der leer ist, Leerzeichen am Anfang oder Ende hat, länger als 64 Zeichen ist oder einem anderen Posten gehört. In der Kommandozeile geht dasselbe mit freemapper-courseplan control code halle.courseplan.toml 31 K7 (siehe „Code oder Namen in der Kommandozeile ändern“ weiter unten).
  • Löschen. Drücke Entf oder Rücktaste, solange der Fokus auf der Karte oder im Baum liegt, oder nimm „Posten löschen“ in den Eigenschaften. In einem Feld oder auf einer Schaltfläche tun die Tasten nichts. Einen Posten, den keine Bahn besucht, löscht der Editor sofort; mit Rückgängig holst du ihn zurück. Besuchen Bahnen den Posten, listet ein Dialog sie auf und fragt nach. Der Fokus liegt auf „Abbrechen“. „Löschen“ entfernt den Posten und nimmt ihn aus diesen Bahnen. Eine versehentliche Rücktaste löscht deshalb einen gewählten, unbenutzten Posten ohne Rückfrage; Rückgängig bringt ihn zurück.

Bahnen und Kategorien

Der Baum der Veranstaltung und die Eigenschaften von Bahn A: Name, Länge, Start, Ziel, Kategorie, die Posten mit ihren Knöpfen und die Postennummern.

Bahn A ist gewählt. Links der Baum mit Bahnen, Kategorien, Posten und Sonderobjekten, rechts die Eigenschaften der Bahn mit den Posten der Bahn mit „Nach oben“, „Nach unten“ und „Entfernen“, das Kästchen der Kategorie und die Postennummern. Karte: Remo Madella, MOO Challenge Berlin 2025, siehe examples/rummelsburger-bucht/ATTRIBUTION.txt.

  • Neue Bahn. Wähle unter „Bahnen“ im Baum „Neue Bahn...“ und tippe einen Namen. Die Bahn bekommt Start und Ziel der Veranstaltung. Hat die Veranstaltung nicht genau einen Start und ein Ziel, sagt der Editor das und legt nichts an. Einen Namen, den es schon gibt, der leer oder länger als 200 Zeichen ist, lehnt der Dialog ab.
  • Bahn umbenennen. Ändere das Feld „Name“ in den Eigenschaften der Bahn. Sonderobjekte und akzeptierte Befunde, die die Bahn nennen, ziehen mit. In der Kommandozeile gilt freemapper-courseplan course rename halle.courseplan.toml A Lang.
  • Bahnmodus. Wähle eine Bahn und dann „Bahnmodus“. Die Posten, die die Bahn nicht besucht, erscheinen grau. Ein Klick auf einen Posten hängt ihn vor dem Ziel an. Um einen Posten mitten in die Bahn einzufügen, klickst du zuerst die Strecke, an die er gehört, und dann den Posten. Die gewählte Strecke wird dick und blau, und die Statusleiste nennt sie. Esc verwirft die gewählte Strecke; ein zweites Esc verlässt den Bahnmodus. Der Bahnmodus hat keine Taste.
  • Posten der Bahn. Die Eigenschaften einer Bahn listen ihre Posten. Mit „Nach oben“, „Nach unten“ und „Entfernen“ änderst du die Reihenfolge. Liegt der Fokus auf einer Zeile, verschieben Alt+Pfeil hoch und Alt+Pfeil runter den Posten. Jede Änderung ist ein Schritt für Rückgängig und speichert die ganze Liste auf einmal. Läuft durch eine Änderung eine Strecke zu einem anderen Posten, verliert sie ihre Knicke und ihr Absperrband. Die Statusleiste nennt diese Strecken.
  • Bahndaten. Steigung und geplanter Druckmaßstab sind Felder in den Eigenschaften; ein leeres Feld entfernt den Wert. Mit den Kontrollkästchen ordnest du die Bahn Kategorien zu.
  • Kategorien. „Neue Kategorie...“ legt eine an. Ihre Eigenschaften enthalten die Regelkategorie und die erwarteten Starter; ein leeres Feld entfernt den Wert. „Kategorie löschen“ entfernt sie. Solange eine Bahn sie noch nutzt, lehnt der Editor das ab und sagt es über der Karte.
  • Veranstaltung. „Einstellungen“ unter „Veranstaltung“ im Baum zeigen die Disziplin, die du hier nicht ändern kannst, das Regelprofil mit seinen Overlays, beides als Liste der Profile, die das Programm kennt, das Datum (JJJJ-MM-TT), den Veranstalter und das Startfenster in Minuten. Ein leeres Feld entfernt den Wert.

Strecken und Knicke

Eine Strecke ist die gerade Linie von Posten zu Posten, bis du sie knickst. Klicke sie mit dem Auswahlwerkzeug an, um sie zu wählen.

Eine gewählte Strecke mit drei Knicken, in Blau mit weißen Punkten gezeichnet, daneben eine gestrichelte abgeflaggte Strecke, und die Eigenschaften der gewählten Strecke.

Eine Strecke, mit dem Werkzeug „Auswählen“ gewählt. Die Strecke von Posten 32 zu Posten 33 hat drei Knicke (die weißen Punkte); die Eigenschaften zeigen ihre Zahl und das Kästchen „Abgeflaggt“. Die gestrichelte Strecke von Posten 34 ins Ziel ist abgeflaggt und hat einen Knick. Diese Knicke habe ich nur für das Bild gesetzt: Strecken sind standardmäßig gerade, und die Bahn des Beispiels hat keinen Knick. Karte: Remo Madella, MOO Challenge Berlin 2025, siehe examples/rummelsburger-bucht/ATTRIBUTION.txt.

  • Knick einfügen. Ziehe an der Linie der gewählten Strecke. Dort, wo du loslässt, entsteht ein Knick.
  • Knick verschieben oder löschen. Ziehe einen Knick, um ihn zu verschieben. Ein Klick wählt ihn, Entf löscht ihn.
  • Abgeflaggte Strecke. Das Feld „Abgeflaggt“ in den Eigenschaften der Strecke markiert sie als abgeflaggte Strecke.

Jede Geste ist ein Schritt für Rückgängig, und die Bahnlänge in den Eigenschaften ändert sich mit. Läuft eine Strecke nach einer Änderung der Posten zu einem anderen Posten, verliert sie ihre Knicke und ihr Absperrband.

Nummern

Das Nummernfeld eines Postens steht neben seinem Kreis. Eine gestrichelte Linie heißt: Das Programm hat es automatisch gesetzt, und das Projekt speichert noch keine Lage dafür.

Bahnmodus mit Bahn A: die Postennummern neben ihren Kreisen, das Feld 2 mit gestricheltem Rand.

Bahnmodus. Die Nummern stehen neben ihren Kreisen. Das Feld 2 hat einen gestrichelten Rand, weil das Programm es gesetzt hat und das Projekt speichert keine Lage dafür. Die Felder 1, 3 und 4 haben eine gesetzte Lage. Karte: Remo Madella, MOO Challenge Berlin 2025, siehe examples/rummelsburger-bucht/ATTRIBUTION.txt.

  • Ziehen. Ziehe im Bahnmodus ein Nummernfeld an eine andere Stelle. Beim Loslassen rechnet der Editor den Ort in Richtung und Abstand vom Kreis um und speichert beides für diese Bahn.
  • Für alle Bahnen. Ist „für alle Bahnen“ angekreuzt, gilt die Lage am Posten für jede Bahn, die ihn nutzt. Hat die Bahn für die Nummer schon eine eigene Lage, geht sie der Lage am Posten vor. Das Feld springt dann zurück, und die Statusleiste sagt es.
  • Nummern platzieren. „Nummern platzieren“ setzt die Nummern der Bahn automatisch und lässt gesetzte Nummern stehen. Mit „auch gesetzte Nummern ersetzen“ wird alles neu berechnet, nur die am Posten für alle Bahnen gesetzten bleiben.

Ein Ziehen ist ein Schritt für Rückgängig. Liegt der Abstand der Nummer außerhalb des Regelbereichs, steht am Nummernfeld ein Warnzeichen (siehe „Befunde“).

Postenbeschreibungen

Wähle einen Posten. Seine Eigenschaften führen die Spalten C bis H auf, jede zugeklappt und mit dem aktuellen Symbol. Klappe eine Spalte auf, dann siehst du ihre Symbole als Raster aus Zeichen, jedes mit Nummer und Text in der Sprache des Programms. Die Kartenobjekte im Umkreis von 3 mm stehen unter Spalte D.

Die Eigenschaften eines Postens mit aufgeklappter Spalte D als Raster aus Symbolen, gewählt ist 5.20 Denkmal.

Posten 32 mit offener Spalte D. Jedes Symbol zeigt Nummer und Namen; gewählt ist 5.20 Denkmal. Spalte C bleibt zugeklappt und zeigt ihren aktuellen Wert. Karte: Remo Madella, MOO Challenge Berlin 2025, siehe examples/rummelsburger-bucht/ATTRIBUTION.txt.

  • Wählen. Klicke ein Symbol an oder gehe mit den Pfeiltasten hin (Pos1 und Ende springen zum ersten und letzten) und drücke Enter. Tippst du eine Nummer wie 1.3, springt die Auswahl dorthin. Das Symbol in Gebrauch ist markiert, und der Fokus bleibt auf der Wahl.
  • Was eine Spalte anbietet. Spalte C hat die Symbole 0.1 bis 0.5 dafür, welches von mehreren gleichen Objekten gemeint ist, mit den Himmelsrichtungen 0.1N bis 0.2NW; die Anweisungszeilen bietet sie nicht an. Spalte D hat 1.1 bis 6.2, Spalte E die Symbole der Spalte D und 8.1 bis 8.11, Spalte F 10.1, 10.2 und 11.1 (die Zahlensymbole 9.1 bis 9.4 bietet sie nicht an, weil die Projektdatei keinen Wert dafür hält), Spalte G die Symbole 12.x und Spalte H 13.1 bis 13.3.
  • Richtungen. Ein Symbol mit Richtung gibt es nur mit einer: wähle 12.1N, 12.1NE und so weiter, ein einfaches 12.1 gibt es nicht.
  • Ein Symbol, das die Spalte nicht anbietet. Hält die Kontrolle eines (ein altes oder von Hand geschriebenes), steht es oben als „aktueller Wert“ und bleibt, bis du etwas anderes wählst.
  • Kein Symbol. Der Eintrag „Kein Symbol“ leert die Spalte.
  • Rückgängig. Jede Wahl und jede geleerte Spalte ist ein Schritt für Rückgängig.

Die Liste kommt aus freemapper-core. Jedes Symbol, das du wählen kannst, lässt sich also auch in eine .ppen-Datei schreiben (ADR 0051).

Das Score-Fenster

Eine Score-Bahn hat keine Reihenfolge. Der Editor zeichnet deshalb ihre Posten, Start und Ziel und jede Pflichtverbindung als gestrichelte Linie zwischen ihren beiden Posten. Wähle die Bahn im Baum, dann öffnet sich in den Eigenschaften das Score-Fenster.

Die Karte Gleisdreieck mit Kandidaten als gestrichelten blauen Kreisen mit ihren Werten und rechts das Score-Fenster.

Eine neue Score-Bahn „Score 32“ mit 32 Minuten Limit, nach „Posten vorschlagen“. Jeder Kandidat ist ein gestrichelter Kreis mit seinem Wert. Start und Ziel liegen oben rechts. Rechts stehen die Knöpfe und die Einstellungen, bis zu den drei Grenzen (tiefste Sackgasse, Start bis Ziel, Abstand vom Kartenrand) und den Zielspannen gescrollt. Karte: Remo Madella, MOO Challenge Berlin 2025, siehe examples/gleisdreieck/ATTRIBUTION.txt.

Ein Entwurf einer Score-Bahn auf der Karte Gleisdreieck mit den Entwurfsposten und rechts dem Längenbericht beider Läuferprofile.

Das Ergebnis von „Bahn entwerfen“. Die Entwurfsposten zeigen ihre Kennzahlen. Rechts steht der Längenbericht: Der sehr gute Läufer liegt in seiner Spanne, der gute 2,2 Prozentpunkte darüber, innerhalb der Toleranz von 3. Der Bericht sagt deshalb, dass jeder Läufer in seiner Spanne oder nahe am Ziel liegt. Erst wenn du „Entwurf übernehmen“ wählst, wird etwas geschrieben. Karte: Remo Madella, MOO Challenge Berlin 2025, siehe examples/gleisdreieck/ATTRIBUTION.txt.

Die fertige Score-Bahn auf der Karte Gleisdreieck mit ihren Posten als Kreisen, dem Längenbericht und einer Warnung rechts.

Nach „Entwurf übernehmen“ und „Länge prüfen“. Die Bahn hat 26 Posten mit zusammen 63 Punkten. Die vier Befunde unten sind Warnungen: Drei Paare von Kennzahlen wie 63 und 93 sehen auf dem Kopf gleich aus, und der Anteil schwerer Posten liegt unter der Einstellung. Karte: Remo Madella, MOO Challenge Berlin 2025, siehe examples/gleisdreieck/ATTRIBUTION.txt.

  • Felder. Zeitlimit, Strafpunkte je Minute (das Feld „Standardstrafe“ kehrt zum Standard zurück) und die gemeinsamen Einstellungen: höchster Wert, die Tempi, der Anteil schwerer Posten, der Startwert, die vier Abstände (Wert 1 ab, Posten auseinander, Reichweite vom Start, hohe Werte auseinander) und die drei Grenzen aus ADR 0085 bis 0087 (tiefste Sackgasse, Start bis Ziel, Abstand vom Kartenrand). Die beiden Spannen und die Toleranz sind Felder (beide Enden jeder Spanne); die Standardwerte stehen als Platzhalter darin, und der Längenbericht sagt „im Band“, „nahe am Ziel“ oder „verfehlt“. „Neue Score-Bahn...“ im Baum legt eine Bahn mit 45 Minuten Limit an; die Veranstaltung braucht dafür einen Start und ein Ziel.
  • Posten vorschlagen. Zeigt geordnete Kandidaten als gestrichelte Kreise mit ihrem Wert und als Tabelle. „Übernehmen“ fügt einen der Bahn hinzu, als zwei Schritte für Rückgängig. Ein Kandidat ohne freien Code lässt sich nicht übernehmen.
  • Bahn entwerfen. Rechnet einen Entwurf für das Zeitlimit und zeigt Posten, Verbindungen und den Längenbericht mit beiden Läuferprofilen. Nichts ändert sich, bis du „Entwurf übernehmen“ wählst. Das schreibt genau den Entwurf auf dem Bildschirm, ohne neue Suche, und ersetzt die Posten und die Verbindungen dieser Bahn, als ein Schritt für Rückgängig. Ändert sich das Zeitlimit oder eine Einstellung, ist der Entwurf verworfen. „Länge prüfen“ meldet die Bahn, wie sie ist.
  • Während es läuft. Ein Vorschlag oder Entwurf braucht Sekunden. Die Schaltflächen bleiben gesperrt, das Fenster sagt, dass es arbeitet, und der Editor bemerkt Änderungen an der Datei weiter. Kandidaten und Entwürfe werden nicht gespeichert. Ändert ein anderes Programm das Projekt in der Zwischenzeit, sind sie verworfen und das Fenster sagt es.
  • Bahnmodus und Druckvorschau gibt es nur für Einzelbahnen.

Sonderobjekte

Das Werkzeug Sonderobjekt mit der Art Sperrgebiet, ein gezeichnetes Gebiet auf der Karte und rechts seine Eigenschaften.

Das Werkzeug „Sonderobjekt“ mit der Art „Sperrgebiet“ und seiner Kennung in der Werkzeugleiste. Das fertige Gebiet (vier Punkte) ist gewählt. Die Eigenschaften zeigen Kennung, Art, Lage, Punkte und die Bahnen, zu denen es gehört. Karte: Remo Madella, MOO Challenge Berlin 2025, siehe examples/rummelsburger-bucht/ATTRIBUTION.txt.

  • Zeichnen. Wähle „Sonderobjekt“, dann eine Art (Start, Ziel, Erste-Hilfe-Posten, Wasserstelle, markierte Strecke, verbotene Route, Sperrgebiet, Gefahrenfläche) und prüfe die Kennung in der Werkzeugleiste. Sie wird als <Art>-<n> vorgeschlagen und lässt sich ändern. Start, Ziel, Erste-Hilfe-Posten und Wasserstelle setzt ein Klick. Eine Linie oder Fläche zeichnest du durch Klicken ihrer Punkte und schließt sie mit Enter oder einem Doppelklick ab. Esc bricht ab, Entf nimmt den letzten Punkt zurück, und eine gestrichelte Vorschau mit Punkten zeigt die Zeichnung. Eine Fläche braucht drei Punkte, eine markierte Strecke zwei. Eine verbotene Route darf einen einzigen Punkt haben; sie wird als Kreuz gezeichnet. Jedes Objekt ist ein Schritt für Rückgängig.
  • Zeichen in der Karte. M markierte Strecke, Kreuz verbotene Route, OB Sperrgebiet, ! Gefahrenfläche, Plus Erste Hilfe, W Wasser.
  • Bahnen zuordnen. Hake in den Eigenschaften eines gewählten Objekts die Bahnen an, zu denen es gehört. Ohne Haken gehört es zu allen Bahnen. Start und Ziel haben keine Bahnliste.
  • Löschen. „Sonderobjekt löschen“ oder die Entf-Taste entfernt das Objekt, Rückgängig holt es zurück.
  • Kein Verschieben. Der Editor kann ein Sonderobjekt nicht verschieben. Lösche es und zeichne es neu (ADR 0049).

Befunde

Eine halbe Sekunde nach jeder Änderung führt der Editor dieselbe Prüfung aus wie check und zeigt das Ergebnis.

Die Befunde von Bahn A in den Eigenschaften: eine Warnung und zwei Hinweise, jeweils mit dem Knopf Akzeptieren, und Markierungen an den Strecken der Karte.

Die Befunde von Bahn A: eine Warnung und zwei Hinweise, alle zu Winkeln. Die Bahn knickt am Posten 34 (43 Grad, eine Warnung) und am Posten 32 (49 Grad) zu scharf ab und läuft am Posten 31 (172 Grad) fast geradeaus weiter. Für dieses Bild habe ich die Posten 32 und 33 der Beispielbahn verschoben, die Beispielbahn selbst hat keinen Befund. Jeder Befund hat „Akzeptieren...“, und an jeder betroffenen Strecke sitzt eine Markierung. Karte: Remo Madella, MOO Challenge Berlin 2025, siehe examples/rummelsburger-bucht/ATTRIBUTION.txt.

Die Befundschublade über der rechten Seite des Editors mit den offenen Befunden und den Regeln, die nicht geprüft wurden.

Die Befundschublade, geöffnet mit einem Klick auf die Zahlen in der Statusleiste. Sie listet die offenen Befunde der ganzen Veranstaltung und unter „Nicht geprüft“ die Regeln, die nicht liefen, jeweils mit dem Grund. Karte: Remo Madella, MOO Challenge Berlin 2025, siehe examples/rummelsburger-bucht/ATTRIBUTION.txt.

  • Die Statusleiste zählt Fehler, Warnungen und Hinweise der ganzen Veranstaltung. Jede Zahl hat ein Zeichen (Kreuz, Dreieck, „i“) und eine Farbe. Ein Klick auf die Zahlen öffnet die Schublade: alle offenen Befunde, die akzeptierten mit ihren Begründungen und unter „Nicht geprüft“ die Regeln, die nicht liefen, mit dem Grund.
  • Das Feld rechts listet die Befunde des gewählten Postens, der Strecke oder der Bahn. Ein Klick auf einen Befund wählt seine Stelle und zeigt sie in der Karte.
  • In der Karte markiert ein Ring jeden Posten mit einem Befund und eine dicke gestrichelte Linie jede Strecke. Ein Warnzeichen am Nummernfeld heißt: Der Abstand liegt außerhalb des Regelbereichs. Die Zeichen unterscheiden sich auch in der Form nach Schwere.
  • „Akzeptieren…“ fragt nach einer Begründung von höchstens 200 Zeichen und speichert die Ausnahme in der Projektdatei. Der Befund steht dann unter „Hier akzeptiert“ mit seiner Begründung, und „Akzeptanz zurücknehmen“ holt ihn zurück. Beides ist ein Schritt für Rückgängig.

Exportieren und Importieren

Das Menü „Veranstaltung“ hat vier Einträge. Der Browser nennt nie eine Datei; der Editor schreibt nur die verknüpfte Purple-Pen-Datei des Projekts.

Das geöffnete Menü Veranstaltung mit den Einträgen für IOF-XML, Purple Pen und Editor schließen.

Das Menü „Veranstaltung“. Seine Einträge exportieren IOF-XML, exportieren nach Purple Pen, importieren eine Purple-Pen-Datei, gleichen mit Purple Pen ab und schließen den Editor.

Der Dialog Nach Purple Pen exportieren mit der verknüpften Datei und den Knöpfen In die verknüpfte Datei schreiben, Neue Datei herunterladen und Abbrechen.

Der Dialog „Nach Purple Pen exportieren“. Er nennt die verknüpfte Datei rummelsburg-sprint.ppen und bietet „In die verknüpfte Datei schreiben“ oder „Neue Datei herunterladen“. Karte: Remo Madella, MOO Challenge Berlin 2025, siehe examples/rummelsburger-bucht/ATTRIBUTION.txt.

  • IOF-XML exportieren (Download). Der Browser speichert das IOF-XML der Einzel- und Score-Bahnen, benannt nach der Projektdatei. Ein Fenster nennt ausgelassene Bahnen (Team- und Staffelbahnen) und sagt es, wenn die Karte keine Georeferenz hat.
  • Nach Purple Pen exportieren… „In die verknüpfte Datei schreiben“ aktualisiert die Datei, die sources.ppen nennt, nach den Regeln von export --ppen: Sie ändert nur, was das Projekt geändert hat, und speichert neue Purple-Pen-IDs im Projekt. Ohne Verknüpfung ist die Schaltfläche aus. Der Befehl export --ppen DATEI legt eine Datei an und verknüpft sie. „Neue Datei herunterladen“ speichert eine neue .ppen; im Projekt wird nichts gespeichert. Ein Fenster listet die Hinweise.
  • Purple-Pen-Datei importieren… Du wählst eine .ppen auf deinem Rechner. Ein Projekt, das schon Posten, Bahnen oder Sonderobjekte hat, wird abgelehnt, solange du „Ersetzen“ nicht ankreuzt; das ersetzt alle drei. Der Import ändert die Verknüpfung sources.ppen nicht: Der Editor erfährt nie, wo die Datei liegt. Ein Fenster listet die Hinweise. Dateien über 50 MiB werden abgelehnt (ADR 0053).
  • Mit Purple Pen abgleichen… Nimmt die Datei aus sources.ppen, wie sync. Schließe die Veranstaltung vorher in Purple Pen; ein Hinweis sagt das und lässt sich für die Sitzung abschalten. Das Fenster listet Änderungen und Konflikte. Jeder Konflikt hat „Courseplan behalten“ und „Purple Pen übernehmen“; „Alle Courseplan“ und „Alle Purple Pen“ gleichen sofort ab und nehmen überall diese Seite. „Abgleichen“ ist möglich, wenn kein Konflikt offen ist (ADR 0054).

Das Schreiben in die verknüpfte Datei und der Import leeren den Rückgängig-Verlauf, ebenso ein Abgleich, der Dateien geschrieben hat, weil sie mehr als einen Schritt ändern. Ein Abgleich, der nichts schrieb, lässt ihn bestehen.

Rückgängig und Wiederholen

Die Schaltflächen „Rückgängig“ und „Wiederholen“ und die Tasten Strg/Cmd+Z und Strg/Cmd+Umschalt+Z (oder Strg+Y) gehen die Schritte dieser Editor-Sitzung durch. Ein Setzen, ein Loslassen nach dem Ziehen, eine Feldänderung, ein Löschen und eine Reihe von Pfeiltasten-Schritten sind je ein Schritt. Die Statusleiste meldet „Rückgängig gemacht“ oder „Wiederholt“.

  • Der Editor behält die letzten 100 Schritte, solange deren Dateikopien zusammen unter 64 MiB bleiben; die ältesten gehen zuerst. Schließt du den Editor, sind sie weg.
  • Rückgängig und Wiederholen beziehen sich auf den Stand, den du siehst. Zeigt ein zweiter Browser-Tab einen älteren Stand als die Datei, lehnen sie ab, und der Tab lädt den aktuellen Stand; sie nehmen nie zurück, was der andere Tab getan hat, ohne dass du es gesehen hast.
  • Rückgängig stellt die Datei so wieder her, wie sie vor dem Schritt war, samt Kommentaren und Aufbau. Das nimmt auch alles andere zurück, was der Schritt in der Datei geändert hat, etwa das Entfernen eines Postens aus einer Bahn.
  • Hat ein anderes Programm die Datei nach deinem letzten Schritt geändert, lehnen Rückgängig und Wiederholen ab. Die Statusleiste meldet dann, dass die Projektdatei außerhalb des Editors geändert wurde und beides nicht mehr möglich ist; es wurde nichts geändert. Der Verlauf ist danach leer. Der Editor merkt das erst bei deinem nächsten Rückgängig oder Wiederholen, nicht im Moment der Änderung von außen.

Tastenkürzel

Mit ? oder der Schaltfläche „Tastenkürzel“ siehst du diese Liste in der Seite. Eine Taste, die du in ein Feld tippst, gilt nie als Kürzel.

TastenWirkung
Strg/Cmd+ZRückgängig
Strg/Cmd+Umschalt+Z, Strg+YWiederholen
Entf, RücktasteGewählten Posten, Knick oder gewähltes Sonderobjekt löschen; beim Zeichnen den letzten Punkt
EscZiehen oder Zeichnen abbrechen, gewählte Strecke verwerfen, Bahnmodus verlassen oder zum Auswahlwerkzeug zurückgehen
Alt+Pfeil hoch, Alt+Pfeil runterFokussierten Posten einer Bahn verschieben
EnterGerade gezeichnete Linie oder Fläche abschließen
VAuswahlwerkzeug
CWerkzeug „Posten setzen“
SWerkzeug „Sonderobjekt“
PfeiltastenGewählten Posten um 0,1 mm verschieben (ohne Auswahl: Ansicht verschieben)
Umschalt+PfeiltastenGewählten Posten um 1 mm verschieben
+, -Vergrößern, verkleinern (Strg oder Cmd mit diesen Tasten zoomt weiter den Browser)
0Karte in das Fenster einpassen
?Liste anzeigen

Maus und Baum

  • Im Baum wählst du mit den Pfeiltasten, Pos1 und Ende einen Eintrag und bestätigst mit Eingabe.
  • Mit der Maus verschiebst du die Ansicht, indem du auf leerer Fläche ziehst, und zoomst mit dem Mausrad.
  • Mit der Tabulatortaste springst du vom Baum zur Karte, zu den Eigenschaften und zum Menü.

Code oder Namen in der Kommandozeile ändern

freemapper-courseplan control code halle.courseplan.toml 31 K7
freemapper-courseplan course rename halle.courseplan.toml A Lang

control code gibt Posten 31 den Code K7. course rename benennt Bahn A in Lang um. Bahnen, Sonderobjekte und akzeptierte Befunde, die den Posten oder die Bahn nennen, ziehen mit. Einen Code oder Namen, den es schon gibt, der leer ist, Leerzeichen am Rand hat oder zu lang ist, lehnt das Programm mit einer Meldung ab, und die Datei bleibt, wie sie war. Der KI-Assistent hat dafür die Werkzeuge set_control_code und rename_course.

Änderungen von außerhalb des Editors

Ändert ein anderes Programm die Projektdatei, zum Beispiel freemapper-courseplan control move im Terminal oder der KI-Assistent, lädt die Seite sie nach etwa zwei Sekunden neu und meldet das in der Statusleiste. Ein Tab im Hintergrund fragt nicht nach, bis du ihn wieder öffnest. Ändert sich die Karte, lädt die Seite sie neu. Ändert sich die verknüpfte .ppen, steht in der Statusleiste ein Hinweis.

Machst du in der Seite eine Änderung, während die Datei veraltet ist, etwa zwischen zwei Abfragen, lehnt der Editor sie ab. Er lädt den aktuellen Stand, zeigt unten in der Karte die Meldung „Die Projektdatei wurde außerhalb des Editors geändert. Der Editor hat den aktuellen Stand geladen; es wurde nichts geändert.“ und schreibt denselben Text in die Statusleiste. Sieh nach, was das andere Programm getan hat, und mache deine Änderung noch einmal, wenn du sie weiter willst. „Schließen“ blendet die Meldung aus.

Lässt sich die Projektdatei nicht laden, etwa weil jemand sie halb bearbeitet hat, lehnt der Editor jede Änderung mit dem Ladefehler ab, bis die Datei wieder lesbar ist.

Befehle, die die Datei verändert vorfinden

Der Editor ist nicht das einzige Programm, das die Projektdatei speichert. Jeder Befehl, der sie ändert, prüft unmittelbar vor dem Speichern, ob die Datei noch die ist, die er gelesen hat. Ist sie es nicht, etwa weil der Editor eine Verschiebung gespeichert hat, während der Befehl lief, schreibt der Befehl nichts, gibt

rummelsburg-sprint.courseplan.toml hat sich geändert, seit es gelesen wurde. Es wurde nichts geschrieben

aus und endet mit Exit-Code 1. Führe den Befehl noch einmal aus; er liest dann den neuen Stand. Die Prüfung zählt jede Änderung an der Datei, auch ein Speichern im Texteditor, das am Ereignis nichts geändert hat. Der KI-Assistent bekommt dieselbe Ablehnung in eigenen Worten (Kapitel 3). sync schreibt die .ppen vor der Projektdatei. Ändert sich die Projektdatei dazwischen, meldet sync einen teilweisen Schreibvorgang, und ein zweiter Lauf macht ihn fertig (Kapitel 9).

Datenschutz und Sicherheit

  • Der Server hört nur auf 127.0.0.1. Andere Rechner im Netz erreichen ihn nicht.
  • Die Adresse enthält ein zufälliges Zugriffszeichen (32 Hexziffern). Wer die vollständige Adresse kennt, kann auf deinem Rechner die Veranstaltung ansehen. Gib die Adresse deshalb nicht weiter.
  • Das Zugriffszeichen steht auch in der Prozessliste, solange das Programm es dem Browser übergibt. Auf einem Rechner, den sich mehrere Leute teilen, kann ein anderer Benutzer es dort lesen. Starte den Editor dort mit --no-browser und öffne die Adresse selbst, oder arbeite an einem eigenen Rechner.
  • Die Seite lädt nichts aus dem Netz. Der Server liest nur die Projektdatei, die Karte und die verknüpfte .ppen. Dateinamen nimmt er vom Browser nicht an.
  • Schreibende Anfragen prüft der Server zusätzlich auf Herkunft und Inhaltstyp, damit eine fremde Webseite im selben Browser nichts auslösen kann. Der Editor ändert nur die Projektdatei, und nur über die Operationen der MCP-Werkzeuge. Die Adresse einer Operation nennt keine Datei.

Die Entscheidungen dazu stehen in ADR 0042, 0045 und 0046.

Stand: v0.18.1 · Quelle auf GitHub