Vorlage:Great circle distance/Doku

Aus testwiki
Version vom 14. Januar 2020, 17:34 Uhr von imported>RolandUnger
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Vorlage:Dokumentation Unterseite Vorlage:Lua

Funktion

Die Vorlage berechnet die Großkreisentfernung zweier Geopositionen in Kilometern.

Verwendung

Vorlage:Tlc

Anstelle des Vorlagennamens Great circle distance können auch die Bezeichner Großkreisdistanz oder Großkreisentfernung als Aliase benutzt werden.

  • Optionaler Parameter:
    • Vorlage:Para gibt die Art der Rundung an. Dabei nennt die ganze Zahl die Anzahl der Nachkommastellen, auf die gerundet werden soll. Standard ist Null.

Beispiel

{{Great circle distance | 40.7127 | -70.0059 | 34.05 | -118.25 }} ergibt Vorlage:Great circle distance [km].

Berechnung

Die Entfernungsberechung auf der Oberfläche einer Kugel erfolgt mit der sog. Haversin-Formel (Haversine formula):

d=2rarcsin(sin2(φ2φ12)+cos(φ1)cos(φ2)sin2(λ2λ12))

wobei sind:

  • r: Radius der Kugel,
  • φ1, φ2: Breite von Punkt 1 und Breite von Punkt 2 in Radiant,
  • λ1, λ2: Länge von Punkt 1 und Länge von Punkt 2 in Radiant.

Die Erde ist aber keine Kugel, sondern näherungsweise ein Ellipsoid. Es wird daher mit einem breitengradabhängigen Radius gerechnet. Der Breitengrad ergibt sich aus dem Mittel der Breitengrade für beide Punkte.

r=(r12*cosφ)2+(r22*sinφ)2(r1*cosφ)2+(r2*sinφ)2

wobei sind:

  • φ: Breitengrad,
  • r1: Radius am Äquator,
  • r2: Radius zu den Polen.

Die verwendete Breite ist der Mittelwert der Breitenangaben beider Punkte.

TemplateData

<templatedata> { "params": { "radius": { "label": "Radius", "description": "Radius des Himmelskörpers in Kilometern", "type": "number", "default": "6373" }, "lat1": { "aliases": [ "1" ], "label": "Breite 1", "description": "Breite des ersten Punkts in Dezimalgrad", "type": "number", "default": "0", "required": true }, "long1": { "aliases": [ "2" ], "label": "Länge 1", "description": "Länge des ersten Punkts in Dezimalgrad", "type": "number", "default": "0", "required": true }, "lat2": { "aliases": [ "3" ], "label": "Breite 2", "description": "Breite des zweiten Punkts in Dezimalgrad", "type": "number", "default": "0", "required": true }, "long2": { "aliases": [ "4" ], "label": "Länge 2", "description": "Länge des zweiten Punkts in Dezimalgrad", "type": "number", "default": "0", "required": true }, "precision": { "label": "Genauigkeit", "description": "Anzahl der Nachkommastellen, auf die gerundet werden soll", "type": "number", "default": "0" } }, "description": "Berechnet die Großkreisentfernung zwischen zwei Punkten, die durch ihre Koordinaten (Länge und Breite) bestimmt sind.", "paramOrder": [ "lat1", "long1", "lat2", "long2", "radius", "precision" ] } </templatedata>