Hilfe:WikiKarte

Aus GaretienWiki
Version vom 20. Januar 2013, 06:19 Uhr von VolkoV (D | B) (→‎Aufruf-Parameter)
(U) ← Nächstältere Version | Aktuelle Version (U) | Nächstjüngere Version → (U)
Zur Navigation springen Zur Suche springen

Das Kartenprogramm hier ist eine Eigenentwicklung, die mit den Anforderungend der Wiki langsam mitgewachsen ist. Aus diesem Grunde sind auch einige alte Funktionen und Parameter noch im System, die umzustellen zu aufwändig wäre.

Die Karte basiert auf SVG und kann deshalb nur in SVG-fähigen Browsern (z.B. Firefox und Internet Explorer 9 - hier gibt es im Moment einen Bug) dargestellt werden. Für ältere Versionen des Internet Explorer gibt es ein Plugin zum Installieren namens "Adobe SVG Viewer".

Generelle Informationen

Generell besteht eine Kartenbeschreibung aus einzelnen Grafikobjekten (s.u.), diese können kleine Kreise (z.B. Ortschaften), Streckenzüge (z.B. Flüsse) oder ausgefüllte Streckenzüge (z.B. Wälder) sein.

Als Koordinatensystem wurden die Wagenhalt-Koordinaten erfunden. X-Position sind immer die Schritte (also Meter) östlich von Wagenhalt, Y-Position jene südlich von Wagenhalt; Koordinaten nördlich oder westlich bekommen ein negatives Vorzeichen. Im Gegensatz zum Koordinatensystem aus der Schule geht also die positive Y-Richtung nach unten anstatt nach oben.

Aus Performance-Gründen werden die Kartenelemente der Gesamtwiki an einer Stelle (nämlich hier) gesammelt und in Textdateien auf dem Server geschrieben. Ruft man nun in seinem Artikel die Karte auf, so werden die momentan aktuellen Daten geladen. Deshalb kann es sein, dass einige Änderungen erst zeitverzögert auftauchen. Wenn man die richtige Unterseite der o.g. Seite direkt aufruft, erzwingt man aber ein Neuschreiben des entsprechenden Kartenteils.

Die interaktive Kartenanzeige

Mit dem folgenden Aufruf kann man eine interaktive Karte erzeugen. Das Ergebnis sieht dann wie darunter dargestellt aus. Bitte etwas Geduld, die Karte lädt per Ajax-Aufruf die einzelnen Elemente nach der initialen Anzeige von Server nach:

{{#mapview:
interaktiv=1
}}


Buttons

Die Karte hat eine Menge Buttons, zusätzlich sind alle Objekte in der Karte anklickbar und führen zu den entsprechenden Artikeln in der Wiki.

Die Buttons "Firun", "Rahja", "Praios" und "Efferd" bewegen den Kartenausschnitt um ein Zehntel der angezeigten Fläche in die entsprechende Richtung. Die Buttons "+" und "-" zoomen mittig auf 80% des Kartenauschnitts herrein, bzw. rückwärts auf 125% heraus

Die Buttons "1" bis "13" schalten die Detailstufe um. Da jedem Kartenelement eine Detailstufe mitgegeben ist (s.u.), kann man so recht einfach entscheiden, wieviel Informationen auf der Karte man haben möchte.

Die Buttons "Gws", "Wld", "Brg", "Grz", "Weg", "Ort" und "Son" ermöglichen das Zu- und Wegschalten einzelner Kartenelementtypen. Dabei bedeuten sie in der o.g. Reihenfolge "Gewässer", "Wälder", "Berge", "Grenzen", "Wege", "Ortschaften", "Sonstiges".

Die beiden Anzeigefelder unter dem Kartenauschnitt zeigen beim Bewegen der Maus durch diesen, über welchem Objekt sie gerade platziert ist. Beim Nachladen der Kartenelemente wird hier eine Information über den Status angezeigt.

Mit dem Button "M" schaltet man in den Messmodus, dann können Koordinaten in der Karte per Maus ausgemessen werden und werden im Anzeigefeld dargestellt. Die Verlinkung der Karte ist dann deaktiviert. Mittels Mausklicks können dann im zweiten Anzeigefeld Koordinaten gesammelt werden, dies ist z.B. dann praktisch, wenn man einem Flusslauf folgen möchte usw.

Mit dem Button "P" kann man sich die gesammelten Koordinaten in einem Prompt-Fenster anzeigen lassen. Ob man dort "OK" oder "Abbrechen" drückt, ist irrelevant, auf jeden Fall werden die Koordinaten danach gelöscht, man sollte sie also mit Strg+C in die Zwischenablage kopieren.

Analog kann man sich mit dem Button "V" die aktuelle Viewbox, d.h. die Koordinaten und Ausdehnung des Kartenausschnittes anzeigen lassen und in die Zwischenablage kopieren. Dies ist nützlich, weil man sich dann den initialen Kartenausschnitt seiner Karte definieren kann, in dem man einfach eine Zeile mit "viewbox=" und den eben kopierten Daten in den oben beschriebenen Kartenaufruf schreibt:

{{#mapview:
viewbox=34330.8 -17218.1 142606 142606
interaktiv=1
}}

Wichtig ist hierbei, das die dritte und die vierte Zahl (sie repräsentieren Länge und Breite) genau gleich groß sind, weil sie sonst in die quadratische Zielbox herein verzerrt werden.

===Tastensteuerung Mit den Tasten W, A, S, D kann man (von der Belegung her) analog zu den Cursortasten den Kartenausschnitt bewegen, mit den Tasten R, F rein- und rauszoomen. Jede andere Taste merkt sich das gerade unter der Maus befindliche Objekt - damit kann man sich zum Beispiel gut die Streckenzüge und Flächen zusammenstellen (siehe unten).

Aufruf-Parameter

Wenn man es genauer haben möchte: Die Viewbox ist definiert durch die beiden Koordinaten X und Y der obersten linken Ecke, gefolgt von der Breite bzw. Höhe in X- und in Y-Richtung, wobei letztere beiden tunlichst gleich sein sollten, um eine Verzerrung zu vermeiden.

Zusätzlich kann man die Karte noch mit weiteren Parametern aufrufen um die o.g. Buttons vorzubelegen:

Parameter Standard Wikung
viewbox -280000 -400000 680000 680000 Position und Ausdehnung des Kartenausschnittes (s.o.)
size 0 0 zeigt nur den Kartenausschnitt, 1 die Karte mit Buttons, 2 und 3 kleinere Karten ohne Buttons
LOD 5 Detailstufe ("Level Of Detail", s.u.)
Gws 1 Anzeige der Gewässer (Flüsse, Seen, Sümpfe), Wert 0 schaltet diese aus.
Wld 1 Anzeige der Wälder, Wert 0 schaltet diese aus.
Brg 1 Anzeige der Berge (auch Hügel und Gebirge), Wert 0 schaltet diese aus.
Grz 1 Anzeige der Grenzen, Wert 0 schaltet diese aus.
Weg 1 Anzeige der Wege, Wert 0 schaltet diese aus.
Ort 1 Anzeige der Ortschaften (auch Burgen, Gutshöfe), Wert 0 schaltet diese aus.
Son 1 Anzeige der sonstigen Kartenelemente (momentan nur Inseln), Wert 0 schaltet diese aus.
bitmap 0 Anzeige der Reliefkarte, Wert 1 schaltet diese ein.
Mode 0 0 ist normale Anzeige, 1 ist Anzeige Bevölkerungsdichte, 2 ist Anzeige des Lehensherrn - nur sinnvoll in Verbindung mit Flc=1.
highlight (leer) Zeigt alle Kartenelemente mit dieser Bezeichnung in knallroter Füllung an - Sollte momentan nur mit den Baronie- und Grafschaftsflaechen genutzt werden.
lowlight (leer) Zeigt alle Kartenelemente mit dieser Bezeichnung in dunkelroter Füllung an - Sollte momentan nur mit den Baronie- und Grafschaftsflaechen genutzt werden.
notload (leer) Unterdrückt das Laden von Kartenelementen, deren Datei-Namen (z.B. "P20_Berge.txt") durch Leertaste getrennt sich hierin finden. Das beschleunigt das Anzeigen der Karte, die Elemente können aber selbst im interaktiven Modus nicht später zugeschaltet werden. Das ist vor allem sinnvoll wenn man nur die Reliefkarte abzeichnen möchte usw.

Nach den Parametern kann man, mit dem Pipe-Symbol ("|") einen Bereich abtrennen, in dem man Kartenelemente definiert, die nur auf dieser Karte sichtbar sein sollen. Dies wird eigentlich nur bei der Kartenerstellung benötigt, um die Wartezeit auf das Update (s.o.) zu verkürzen.

Die Kartenelemente

Beginnen wir mit einer interaktiven Karte des südlichen Schlundes, in der alles außer Grenzen, Straßen und Orte ausgeblendet ist, das Relief dafür eingeblendet, das ist immer ein guter Startpunkt, um neue Kartenelemente auszumessen:

{{#mapview:
viewbox=87494.2 62141.9 58411.5 58411.5
interaktiv=1
LOD=8
Gws=0
Wld=0
Brg=0
Grz=1
Weg=1
Ort=1
Son=0
bitmap=1
}}


Die generelle Syntax für Kartenelemente lautet

Elementtyp:[Wikiartikel!]Bezeichnung;LoDAnzeige[!Max];[Parameter1![Parameter2![...]]];Koordinaten

Wichtig ist, dass ein Kartenelement immer in einer Zeile bleiben muss. Die Elementtypen werden weiter unten beschrieben, danach folgt ein Doppelpunkt und die Bezeichnung. Da die Bezeichnung nicht unbedingt mit dem Artikel auf dieser Seite übereinstimmen muss, kann der Artikelname getrennt mit einem Ausrufungszeichen davor gesetzt werden.

Der Wert bei LoDAnzeige beschreibt die minimale Detailstufe (s.u.), bei der das Element auf der Karte sichtbar sein soll. Folgt ein Ausrufezeichen und ein zweiter Wert, so wird das Element ab dieser Stufe wieder ausgeblendet. Dies kann zum Beispiel genutzt werden, um bei einer Detailkarte den Kreis, der eine Ortschaft beschreibt, durch eine unregelmäßige Fläche zu ersetzen.

Der Wert bei den Parametern ist ein Platzhalter für zukünftige Erweiterungen.

Die Koordinaten sind schließlich die ermessene Position (bei Ortschaften) bzw. eine Folge von Punkte bei Streckenzügen. Die Koordinaten können zwar immernoch durch Semikolons getrennt werden, besser ist aber die neue Syntax, bei der je ein X/Y-Paar außen mit Komma und innen mit Leertaste getrennt wird. Dadurch lassen sich Fehler schneller entdecken.

Nur die neue Syntax erlaubt es auch mehrere einzelne Strecken oder Flächen zu einer zusammenzufügen, in dem man die Koordinaten beim "Sprung" durch einen Schrägstrich ("/") anstatt des Kommas trennt. Das Kartenmodul erkennt dabei selbsständig, ob die Strecke ineinander oder nebeneinander sind. Im ersten Fall wird die Strecke aus der Fläche ausgestanzt, im zweiten daneben dazugefügt.

Sollte ein Element zu lang und damit zu unübersichtlich werden, kann man einen Zeilenumbruch einfügen, solange direkt vor dem Zeilenumbruch (also am Ende der Zeile) ein Paragraphen-Zeichen ("§") steht.

Punkte: Ortschaften

Durch klicken auf den Messmodus können wir nun einen Ort hoch oben im Raschtulswall ausmessen, die fiktive Reichsstadt Testingen in einer Nachbarprovinz mit den Koordinaten 104767;113468. In der o.g. Syntax sähe das so aus (man sieht hier, dass geschickt auf einen völlig anderen Artikel verlinkt wird):

Reichsstadt:Nachbarprovinzen!Testingen;3;5;104767;113468

Trennen wir, wie oben beschrieben, mit einem Pipe-Symbol einen Bereich ab, können wir unsere Reichsstadt direkt eingeben, und folgende (nicht-interaktive) Karte bekommen:


{{#mapview:
[...]
|
Reichsstadt:Nachbarprovinzen!Testingen;3;5;104767;113468
}}

Analog funktionieren die Kartenelemente Dorf, Markt, Stadt und Burg.

Gerade bei den Ortschaften haben wir die Komposition der Karte hier vollkommen automatisiert. Es reicht also eine Ortschaft mit den richtigen Vorlagen anzulegen (dann wird sie auch automatisch richtig kategorisiert) und die fünf Felder Kurzname (=Anzeigename), Typ (=Kartenelementtyp), PositionX, PositionY, LoDAnzeige und LoDBezeichnung zu füllen. Ortschaften auf der Karte ohne Artikel auf der Seite (z.B. Beilunk) finden sich auf der Seite Vorlage:KarteOrtschaften.

Trotzdem bietet es sich an auf einer Benutzseite mit Messkarte erst in Ruhe alle Ortschaften, Straßen und Landschaften seines Lehens mit der hier beschriebenen Syntax zurechtzurücken und dann die entsprechenden automatischen Artikel anzulegen.

Streckenzüge: Flüsse, Wege und Grenzen

Wollen wir nun den breiten Strom "Raschtulszorn" von unserer Reichsstadt in den Darpat fließen lassen, so messen wir uns im Messmodus durch aufeinanderfolgende Klicks diese Koordinaten aus und kopieren uns die per P-Button: 105959;110256; 108000;108303; 112794;107948; 117588;108481; 120695;111676; 124778;111676; 131614;108303; 135697;104397; 140491;101201; 142887;97828; 154765;94543; 155298;91792; 159736;93656; 164885;92502; 170211;92768; 172164;91792; 173496;92590

Als Kartenelement ergibt das (gekürzt)

Strom:Nachbarprovinzen!Raschtulszorn;2;3;105959;110256; 108000;108303; 112794;107948; 117588;108481; [...]

Auch hier wieder unsere (nicht-interaktive) Karte, jetzt müssen natürlich Gewässer angeschaltet werden:


{{#mapview:
[...]
Gws=1
[...]
|
Reichsstadt:Nachbarprovinzen!Testingen;3;5;104767;113468
Strom:Nachbarprovinzen!Raschtulszorn;2;3;105959;110256; [...]
}}

Analog funktionieren die Kartenelemente Bach, Fluss, Pfad, Weg, Strasse, Reichsstrasse, Junkertumsgrenze, Baroniegrenze, Grafschaftsgrenze, Provinzgrenze und Reichsgrenze.

Bei den Gewässern und Sümpfen haben wir die Komposition der Karte ebenfalls vollkommen automatisiert. Es reicht also einen Fluss mit der richtigen Vorlage anzulegen (dann wird sie auch automatisch richtig kategorisiert) und die vier Felder Kurzname (=Anzeigename), Typ (=Kartenelementtyp), Koordinaten, LoDAnzeige und LoDBezeichnung zu füllen. Gewässer auf der Karte ohne Artikel auf der Seite (z.B. das Ochsenwasser) finden sich auf der Seite Vorlage:KarteGewaesser.

Straßen sind momentan noch in den folgenden Artikel versteckt:

Grenzen sind momentan noch in den folgenden Artikel versteckt (zu beachten ist, dass auch die Grenze zwischen zwei Junkertümern eine Provinzgrenze sein kann!):

Flächen: Berge, Wälder, Seen

Wollen wir nun den Strom durch den großen See "Testwasser" fließen lassen, messen wir auch diesen aus, in dem wir einmal mit Mausklicks den Rand entlanggehen, und bekommen diese Koordinaten: 115635;108392; 114214;107504; 111285;107593; 109776;109279; 108089;109901; 105337;109279; 104006;107859; 106758;106883; 109865;103243; 111640;102977; 114569;103953; 117055;104752

Als Kartenelemt ergibt das also (gekürzt):

See:Nachbarprovinzen!Testwasser;5;7; 115635;108392; 114214;107504; 111285;107593; 109776;109279; [...]

Auch hier wieder unsere (nicht-interaktive) Karte, jetzt müssen natürlich Gewässer angeschaltet werden:


{{#mapview:
[...]
|
Reichsstadt:Nachbarprovinzen!Testingen;3;5;104767;113468
Strom:Nachbarprovinzen!Raschtulszorn;2;3;105959;110256; [...]
See:Nachbarprovinzen!Testwasser;5;7; 115635;108392; [...]
}}

Analog funktionieren die Kartenelemente Teich, Meer, Sumpf, Insel, Forst, Wald, Urwald, Huegel, Berg und Gebirge.

Seen und Sümpfe werden wie die Flüsse (s.o.) automatisch eingesammelt.

Wälder sind momentan noch in den folgenden Artikel versteckt:

Berge sind momentan noch in den folgenden Artikel versteckt:

Politische Flächen

Die politischen Flächen, wie eine BaronieflaecheA folgen einer etwas angepassten Syntax:

GrafschaftsflaecheA:Garetien:Grafschaft Schlund!Grafschaft Schlund;4!5;; Hartsteen_Schlund, Schlund_Traviamark, (...)
Definition von Flächen aus Grenzen

Um nicht alles doppelt zu pflegen, verweist die Flaeche auf die vorher gezeichneten Grenzen. Diese werden, wenn nötig, auch richtig gedreht, allerdings sollte muss die Reihenfolge der einzelnen Grenzen im oder gegen den Urzeigersinn genanntwerden. Da eine Implementierung einer Graphenfärbung zu kompliziert war, können die Baronien in vier Helligkeitsstufen gemalt werden: BaronieflaecheA, BaronieflaecheB, BaronieflaecheC und BaronieflaecheD, die sollten von Hand so ausgewählt werden, dass zwei benachbarte Baronien nicht die gleiche Farbe haben.

Analog funktionieren auch GrafschaftsflaecheA, GrafschaftsflaecheB, GrafschaftsflaecheC und GrafschaftsflaecheD sowie JunkertumsflaecheA, JunkertumsflaecheB, JunkertumsflaecheC und JunkertumsflaecheD

Auch hier können die einzelnen Teilstrecken analog zu den Koordinaten oben in der neuen Systax durch Kommas und Schrägstriche getrennt werden, was auch Exklaven und Enklaven ermöglicht. Die politischen Flächen sind mittlerweile als Feld in der Vorlage Lehen integriert - dann wird auch automatisch Bevölkerung und Lehensherr für die anderen Kartenmodi übergeben.

Kleiner Tipp: Geht man in der Karte mit der Maus über einen Grenzzug und drückt Return, so wird er analog zum Messen zwischengespeichert. Über den P-Knopf kann man sich gesamten Grenzzug dann rauskopieren.

Grenzzüge

Um auch Junkertumsflächen zeichnen zu können, müssten eigentlich alle Grenzen feinstens nur auf Junkertumsebene definiert werden, mit der Folge, dass dann z.B. die Grafschaftsgrenze zwischen Reichsforst und Waldstein aus einer riesigen Anzahl von Kleingrenzen besteht. Deshalb kann man unsichtbare Grenzzüge definieren, die dann in den o.g. politischen Flächen zur Benutzung kommen können. Der Grenzzug hat eine ganz ähnliche Syntax:

Grenzzug:Hartsteen_Schlund;14;; Feidewald-Nettersquell; Hartsteen-Nettersquell; (...)
Definition von Grenzzügen aus Teilgrenzen

Hier werden also alle Einzelgrenzen zwischen den Junkertümern in beiden Baronien zu einer Gesamtgrenze zusammengefügt und definiert. Man kann danach auch ohne weiteres aus zusammengesetzten Baronien-Grenzzügen Grafschafts-Grenzzüge machen. Der Vorteil ist, das eine Änderung in einer untergeordneten Junkertumsgrenze sich automatisch bis auf die Grafschaftsgrenze hochpropagiert.

Kommentare

Das letzte und einfachste Element, mit dem man größere Ansammlungen von Kartenelementen dokumentieren kann, ist der Kommentar. Dieser beginnt mit einem K und einem Doppelpunkt, danach werden alle Zeichen bis zum Zeilenende ignoriert.

K:---------Die folgenden Zeilen sind nur Test----------

Zusätzlich können beliebig viele Leerzeilen eingefügt werden, auch diese werden vom Kartenmodul ignoriert und verbessern die Lesbarkeit.

Weiterführende Informationen

Die nachfolgenden Informationen erläutern die o.g. Punkte.

Zeichnungsreihenfolge

Bei der automatisch erstellten Karte werden die einzelnen Elemente automatisch eingesammelt und in dieser aufsteigenden Reihenfolge übereinander gemalt:

  1. Sonstiges
  2. Berge
  3. Gewässer
  4. Wälder
  5. Grenzen
  6. Wege
  7. Dörfer
  8. Burgen
  9. Größere Ortschaften

Wenn ich also einen See über einen Berg mal, so reagiert der Mauszeiger, solange der See sichtbar ist, nur auf den See.

Detailstufen

In den oben genannten Objekten können Detailstufen eingestellt werden. Die definition dieses LoD ("Level of Detail") ist auf der Seite Detailstufen definiert und richtig sich daran in welcher Sicht man auf die Elemente guckt (zB Reichsweit, Grafschaftsweit oder nur in einem Dorf).

Sinnvolle Bennungen und Verlinkungen

Es ist sinnvoll, jedes Objekt auf der Karte zu benennen, selbst wenn der Name noch "Wald nördlich der Natter in Bugenhog" heißt, weil dann im Korrekturfall das Objekt korrektgefunden werden kann. Analog sollte auf einen passenden Artikel (in diesem Beispiel etwa Garetien:Feidewald) verwiesen werden, oder aber auf den Sammelartikel (hier Garetien:Wald und Forst in Hartsteen).

Kartenelemente aus Nachbarprovinzen sollten am besten auch auf Nachbarprovinzen verweisen, hier werden wir keine eigenen Artikel erzeugen - das machen unsere Briefspielfreunde in deren Wikis schon ganz hervorragend. Trotzdem sind solche Ort in der Karte zum Verständnis ganz praktisch.

Benennung der Grenzen

Einzelne Grenzen haben ja immer genau zwei Nachbarflächen. Diese werden immer alphabetisch sortiert, evtl. Bindestriche werden einfach weggelassen.

Grenzen zwischen zwei (Mark-)Grafschaften bzw. mit Nachbargegenden werden durch einen Unterstrich getrennt (z.B. "Gareth_Hartsteen" oder "Schlund_Raschtulswall".

Grenzen zwischen zwei Baronien werden mit Bindestrich getrennt (z.B. "Ingerimmsschlund-Nettersquell" oder "DürstenDarrenfurt-Gerbenwald");

Grenzen zwischen zwei Junkertümern oder anderer Flächenlehen in einer Baronie werden ebenfalls durch Bindestrich getrennt (z.B. "Wandleth-Roden"), befinden sich die beiden Junkertümer in unterschiedlichen Baronien, so wird die Baronie jeweils vorangestellt und in Klammern das Junkertum angehängt (z.B. "Erlenstamm(Murimel)-Ruchin(Kuchin)").

Automatisierung im Detail

Unter Benutzer:VolkoV/MapSVG finden sich Links auf mehrere Links auf "/Body XXX". Dort wird die entsprechende Vorlage:KarteXXX eingebunden und in SVG umgewandelt und abgespeichert.

Sollte also ein Kartenelement noch nicht erscheinen, hilft es dort auf den richtigen Link zu klicken und dann, wenn die entsprechende Seite vollständig geladen ist, die Kartenseite neu zu laden.

Die Kartenelemente werden beim Laden der Karte in der o.g. Zeichnungsreihenfolge geladen - wenn also die Reichsstädte erscheinen, ist die Karte vollständig.

Die einzelnen o.g. Artikel werden hier entsprechen gruppiert und zusammengefügt, wobei bei den Ortschaften, Lehen und den Gewässern per Semantic MediaWiki alle korrekt kategorisierten Orte eingesammelt und in Kartensyntax ausgegeben werden, deshalb müssen auch die richtigen Felder gefüllt werden.

Alle Berechnungen zur Karte, sowie die interaktiven Funktionen (zeichnen, einblenden, ausblenden, zoomen, verschieben, messen) werden auf dem Client, also Deinem Rechner ausgeführt. Ist es also zu langsam, liegt das nicht an uns...