Vorlage:CoordinateComplex/Doku

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Diese Vorlage prüft, formatiert und verlinkt komplexere Geokoordinaten. Sie wird über die Vorlage:Coordinate verwendet, kann aber in anderen Vorlagen (nicht in Artikeln!) auch direkt eingebunden werden. Diese Dokumentation beschäftigt sich mit der technischen Implementierung; sie geht nicht auf die Verwendung und Bedeutung der Parameter ein! Dazu siehe die Vorlage:Coordinate/Doku.

NS Ist der Parameter leer, „“, „/“, „//“, „///“, „///N“ oder „///S“, so wird dies als Lagewunsch betrachtet. Enthält der Parameter einen Schrägstrich, so werden die ersten 4 Teile von der Vorlage:Coordinate/LatDMS umgewandelt, andernfalls wird der Wert direkt weitergegeben. Dieses Ergebnis wird von der Vorlage:Coordinate/LatRange auf Plausibilität geprüft.
EW Ist der Parameter leer, „“, „/“, „//“, „///“, „///E“, „///W“ oder „///O“, so wird dies als Lagewunsch betrachtet. Enthält der Parameter einen Schrägstrich, so werden die ersten 4 Teile von der Vorlage:Coordinate/LonDMS umgewandelt, andernfalls wird der Wert direkt weitergegeben. Dieses Ergebnis wird von der Vorlage:Coordinate/LonRange auf Plausibilität geprüft.
type Der Parameter akzeptiert die Werte continent, country, state, adm1st, adm2nd, city, isle, mountain, waterbody, forest, landscape, airport, railwaystation, building, event, landmark und example (letzterer nicht im ANR). Passt der Wert nicht, so wird er als leer betrachtet.
pop Der Parameter muss eine positive, ganze Zahl sein, andernfalls wird ein Fehler weitergegeben.
elevation Der Parameter muss eine Zahl mit höchstens 2 Nachkommastellen <sic!> sein, sonst wird ein Fehler weitergegeben.
dim Der Parameter muss eine Zahl sein. Beim Typ „landmark“ wird der Wert auf ein Maximum von „250“ limitiert. Ist er keine Zahl, werden vom Typ abhängige Defaultwerte gesetzt: „500001“ für „country“ und „state“, „10001“ für „adm1st“, „adm2nd“, „city“, „mountain“ und „isle“, gar nichts bei „landmark“ und sonst „500“. Diese Werte regeln allein die automatische Rundung, für den Einbau in den Link wird der Parameter ungeprüft <sic!> übernommen.
globe Ein Wert „earth“ wird entfernt, sonst wird der Parameter weitergereicht.
name Ein Wert „coordinates“ wird entfernt (diese id hätte den CSS-Effekt einer Artikelkoordinate), sonst wird der Parameter weitergereicht.
article Wenn weder text, map noch article einen Wert haben wird „/“ weitergereicht.
tooltipformat Falls nicht gesetzt (weggelassen), wird der defaultwert „DMS“ weitergereicht.
mapcaption Falls nicht gesetzt (weggelassen), wird der defaultwert „auto“ weitergereicht.
region
map
maplabel
maplayer
maplevel
mapname
mapsize
maptrenner
maptype
sortkey
text
tooltip
All diese Parameter werden unbesehen weitergereicht.

Implementierungshinweise

[Quelltext bearbeiten]

Die Vorlage:Coordinate ist nur eine Wrappervorlage und reicht die dort beschriebenen Parameter abhängig von der simple-Option entweder an die Vorlage:CoordinateSimple oder CoordinateComplex weiter. Die Complex-Vorlage führt die oben angegebenen Parameterprüfungen durch und reicht die Ergebnisse weiter an:

Eine ungeordnete Übersicht über die vorhandenen Vorlagen und Metaseiten kann Spezial:Präfixindex/Vorlage:Coordinate geben. Für die

CoordinateMain

[Quelltext bearbeiten]

Diese Vorlage ist für die Text- und Artikel-Ausgabe der geprüften Parameter zuständig. Falls die Parameter NS oder EW Fehler enthalten, so wird nur die Fehlermeldung 1 ausgegeben.

  • Im Falle eines text-Outputs
    1. falls der sortkey-Parameter gefüllt ist, wird die Vorlage:CoordinateSort eingebunden
    2. das folgende wird in ein <span>-Tag mit dem name oder dem Wert „text_coordinates“ als id sowie den Klassen „coordinates plainlinks-print“ gehüllt
    3. sollte der Typ „example“ sein, wird der Text „Beispiel “ vorangestellt
    4. gibt es keine Artikel-Ausgabe und ist der Parameter name leer, so wird die Fehlermeldung 8 ausgegeben
    5. die Vorlage:CoordinateLink wird zur Formatierung und Verlinkung eingebunden:
      • Die (teilweise <sic!>) fehlerbereinigten Werte der Daten-Parameter NS, EW, globe, type(_safe), pop, elevation, dim, dim(_safe), region und name sowie die Parameter tooltip und tooltipformat (ttf) werden übernommen.
      • Das format wird „sortable“, wenn der Parameter sortkey gefüllt ist
      • Der Text-Parameter 0 wird, wenn der Teil des Parameters text vor dem ersten Schrägstrich
        • nichts, „OSGB36“, „DMS“, „DM“, „DEC“, „CH1903“ oder „UTM“ lautet (d.h., ein valides Ausgabeformat darstellt), leergelassen
        • „ICON0“ lautet, mit „⊙“ gefüllt
        • „ICON“ lautet, mit „⦁“ gefüllt
        • „ICON1“ lautet, mit „“ gefüllt
        • und sonst mit dem Wert von text gefüllt
      • Der Parameter datei (überschreibt den text-Parameter) wird gefüllt
        • mit dem Welt-Icon gefüllt wenn die ersten 5 Zeichen des Parameters text „ICON2“ lauten
        • oder mit dem Wert von text wenn die ersten 5 Zeichen des Parameters text „Datei“ lauten
        • und sonst leergelassen
      • Das erste Ausgabeformat wird
        • von der Vorlage:CoordinateDefault vorgegeben, wenn der Parameter text mit einem Schrägstrich beginnt (auch: … ein Schrägstrich ist).
        • aus dem Teil des Parameters text vor dem ersten Schrägstrich gewählt: „DMS“ und das noch nicht implementierte „OSGB36“ bewirken „DMS“; „DM“, „DEC“, „CH1903“ und „UTM“ das jeweilige.
      • Das zweite Ausgabeformat wird
        • von der Vorlage:CoordinateDefault vorgegeben, wenn der Parameter text ein Schrägstrich ist.
        • aus dem Teil des Parameters text nach dem ersten Schrägstrich gewählt: hier stehen „DMS“, „DEC“, „CH1903“ und „UTM“ zur Wahl
        • und im Zweifelsfalle leergelassen
      • Das zweite Format wird (im Falle einer Ausgabe, d.h. wenn nicht mit dem ersten identisch) wird durch Klammern vom ersten abgetrennt und nicht beschriftet.
  • dann wird das #Mikroformat in einem <span>-Tag mit den Klassen „geo noexcerpt“ und der Inline-CSS-Anweisung „display:none“ ausgegeben
  • wenn bei der Validierung von pop oder elevation ein Fehler aufgetreten ist, weder region noch globe angegeben wurden oder der type ungültig ist, wird die Vorlage:CoordinateMessage mit den Fehlern 3, 4, 6, 7 bzw. 9 eingebunden. Es wird auch überprüft, ob trotz keiner Kartenausgabe Parameter für die Kartendarstellung übergeben wurden und der Fehler 10 ausgelöst.
  • im Falle eines article-Outputs
    1. ein <span>-Tag mit der id „coordinates“ sowie den Klassen „coordinates plainlinks-print“ und der Text „Koordinaten: “ werden ausgegeben
    2. sollte der Typ „example“ sein, wird der Text „Beispiel “ vorangestellt
    3. die Vorlage:CoordinateLink wird zur Formatierung und Verlinkung eingebunden:
      • Die (teilweise <sic!>) fehlerbereinigten Werte der Daten-Parameter NS, EW, globe, type(_safe), pop, elevation, dim, dim(_safe) und region werden übernommen; name bleibt leer <sic!>.
      • Text, Tooltip und Datei werden nicht angezeigt
      • Das erste Ausgabeformat ist immer „DMS“
      • Das zweite Ausgabeformat wird,
        • wenn der Parameter article eines der lokalen Formate „CH1903“ und „UTM“ oder eine beliebige Verkettung durch einen Schrägstrich dieser mit „DMS“ ist, ebenjenes Format
        • wenn der Parameter article gleich „DMS“ oder „DM“, oder eine Kombination mit dem noch nicht unterstützten Format „OSGB36“ ist, leer
        • und sonst von der Vorlage:CoordinateDefault aus dem region-Parameter bestimmt.
      • Das zweite Format wird (im Falle einer Ausgabe, d.h. wenn nicht mit dem ersten identisch) wird durch einen Strichpunkt vom ersten abgetrennt und beschriftet.

CoordinateMap

[Quelltext bearbeiten]

Diese Vorlage gibt eine Karte aus, fungiert aber auch gleichzeitig als reine Zwischenebene für Text-/Artikel-Ausgabe und Lagewünsche.

  • Sind text oder article gefüllt, oder gibt es Probleme mit NS, EW, pop, elevation, region, globe und type
    • so wird die Vorlage:CoordinateMain mit allen benötigten Parametern eingebunden
    • Sollte das Problem von NS bzw. EW in ihrer Leerheit liegen, so wird stattdessen nur der Lagewunsch mit Vorlage:CoordinateNO(NR) erzeugt
  • ansonsten (wenn Main nicht verwendet wird) wird das #Mikroformat-<span> ausgegeben
  • danach wird der Parameter maptrenner ausgegeben, um erweiterte Anzeigemöglichkeiten zu schaffen. So lassen sich Textausgabe und Karte bsp. durch eine neue Tabellenzeile trennen. Anmerkung: Wäre es nicht sinnvoller, die Reihenfolge zu vertauschen (b/c-break)? -- Bergi 03:45, 19. Jan. 2012 (CET)
  • Für die Darstellung der Karte wird die Vorlage:CoordinateMap/map eingebunden:
    • Wenn der Parameter mapname gefüllt ist, wird er verwendet, sonst wird wenn der region-Code gültig ist, mit der Vorlage:CoordinateMap/name eine passende Positionskarte bestimmt, sonst wird mit der Vorlage:Info globe und dem Parameter globe eine bestimmt (im Zweifelsfall also „Erde“)
    • Die Parameter maptype, (map)float, (map)size, (map)caption und (map)layer werden übernommen
    • Wenn der Parameter maplabel leer oder gleich „none“ ist, so wird ein passender generiert: Wenn der Parameter name leer ist, so wird der Seitentitel verwendet, sonst wird wenn es eine text-Ausgabe gibt <sic!> und das Lemma name existiert der Link generiert, sonst wird der name genommen.
    • labelpos wird „none“ übergeben, wenn der Parameter maplabel gleich „none“ ist. Somit steht für Fehlermeldungen oder Bildtitel ein label zur Verfügung, auch wenn es nicht angzeigt werden soll
    • Die Daten-Parameter NS, EW, type_safe, pop, elevation, dim_safe, dim, region und globe werden übernommen
    • Der Parameter name wird, falls leer, durch den Seitentitel ersetzt

Die Vorlage:CoordinateMap/map bindet einen Positionskarten-Frame ein:

  • die Positionskarte ist mapname
  • Wenn der Parameter caption gleich dem default-Wert „auto“ ist, so wird aus dem Kartennamen eine passenden Bildunterschrift generiert
  • float, size, label, maptype und layer werden weitergereicht
  • Wenn es einen Fehler bei NS oder EW gibt, so wird dieser Lagewunsch oder Fehlertyp 1 im Rahmen angezeigt
  • sonst wird eine Positionskartenmarkierung eingebunden:
    • X und Y werden mit den Hilfsvorlagen /map/x bzw. /y und den Positionskartendatenvorlagen aus NS und EW berechnet
    • label und labelpos werden weitergereicht
    • die Anzeige ist immer mit „font-size:90%;“
    • als marker wird ein Datei-CoordinateLink verwendet:
      • Die Daten-Parameter NS, EW, globe, type, pop, elevation, dim, dim_save, region und name werden übernommen
      • Es wird im Tooltip immer der name und das „DMS“-Format angezeigt
      • Die Markergröße ist fest auf „8“px festgelegt und berücksichtigt auch nicht die Positionskartendatenvorlagen <sic!>
      • standardmäßig wird die Datei:Red pog.svg verwendet, sie kann durch die Positionskartendatenvorlage geändert werden <sic!>
microformats
microformats

Die Vorlage unterstützt das GEO-Mikroformat.[1] Die semantische Textauszeichnung geschieht automatisch mit den Klassen ›geo‹, ›latitude‹, ›longitude‹, ›body‹[2] und ›elevation‹[3]. Diese Klassen sind für diesen Zweck reserviert und dürfen nicht anderweitig verwendet werden.

Die Implementierung des Mikroformats durch die Vorlage ist recht eigenwillig und problematisch. Obwohl die Spezifikation vorsieht, dass diese Textauszeichnung in der Regel in HTML-Attributen untergebracht werden soll, erzeugt die Vorlage für das Mikroformat ein eigenes Element und versucht, dieses Element über die CSS-Anweisung display:none für den Benutzer unsichtbar zu machen. Das funktioniert nicht in allen Fällen zuverlässig (siehe etwa phab:T91491 und phab:T131923); insbesondere funktioniert es nicht in der internen Suchfunktion, dort wird das Mikroformat in Form „kryptischer Zahlenkolonnen“ sichtbar (Beispiel).

  1. microformats.org: geo
  2. microformats.org: geo-extension-nonWGS84. Die Klasse ›body‹ wurde 2006 zur Standardisierung vorgeschlagen, ist aber noch kein Standard.
  3. microformats.org: geo-extension-elevation. Die Klasse ›elevation‹ wurde 2007 zur Standardisierung vorgeschlagen, ist aber noch kein Standard.

Die Vorlage:CoordinateMessage akzeptiert folgende Fehlercodes:

1 – Gradzahl-Fehler
Fehler in Wertebereich oder Format von Längen- oder Breitengrad. Dazu sind NS und EW als Parameter 2 und 3 zu übergeben
2 – Wertebereich des Ausgabeformats
Breiten- und Längengrad-Bereich des Ausgabeformats überschritten, z.B. in der Vorlage:Coordinate/to CH1903. Das Format ist als Parameter 2 zu übergeben
3 – fehlende / fehlerhafte Eingabe
Erwartet die Parameter type, rg, elevation und pop
  • falscher type wird unter „3“ sortiert
  • fehlender type wird unter „4“ sortiert
  • fehlende region/globe (rg) wird unter „6“ sortiert
  • eine fehlerhafte elevation wird unter „7“ sortiert
  • eine fehlerhafte pop wird unter „9“ sortiert
5 – unbenannte Parameter
erwartet diese zur Ausgabe
8 – Name fehlt
In der Textausgabe ist der Parameter name verpflichtend
10 – überflüssige Parameter
Es wird keine Karte ausgegeben, aber es wurden Parameter für diese angegeben. Erzeugt nur einen Wartungslink auf Vorlage:Coordinate/Wartung/map-parameter.
default
Kommt nicht vor, würde die Seite aber unter „!“ in die Wartungskategorie einsortieren

Die Vorlage wird nicht direkt in inhaltliche Seiten eingebunden. Als Funktionstest und zur Veranschaulichung folgen gleichwohl einige Parametersätze.

{{CoordinateComplex
|NS         = 23/7/21/N
|EW         = 82/23/11/W
|type       = city
|region     = CU-03
|pop        = 2121871
|elevation  = 59
|name       = La Habana
|article    = /
|map        = center
|mapsize    = 270
|mapname    = Kuba
}}

Koordinaten: 23° 7′ N, 82° 23′ W

Karte: Kuba
marker
La Habana