TrackViewer-API - Referenz ~ Das Nachschlagewerk für alle Optionen der API
Diese Programmier-Referenz wendet sich an den Webmaster, der die TrackViewer-API auf seinen eigenen Seiten einsetzen will. Hier gibt es alle Optionen und Funktionen der API in einer Übersicht aufgelistet.
Für Anwender des interaktiven Trackviewers oder einer einfachen Trackanzeige sind die hier aufgeführten Programmieroptionen nicht nutzbar.
Kartenfenster mit TrackViewer-API erzeugt (Screenshot)
Constructor | Parameter | Beschreibung | Beispiel |
---|---|---|---|
TrackViewer |
keine | erzeugt ein neues TrackViewer Objekt | Tv = new TrackViewer; |
Methoden | Parameter | Beschreibung | Beispiel |
---|---|---|---|
request() |
keine | ruft die Verarbeitung auf. Zuvor sollten alle Optionen gesetzt sein. Die Methode wartet von sich aus auf DOM-ready. | Tv.request(); |
Optionen | Typ | Beschreibung | Beispiel |
---|---|---|---|
Alle Parameter sind optional, falls nicht anders angegeben! | |||
url |
string | URL der GPX-Datei. Dieser Parameter ist unbedingt erforderlich. Er kann absolut ("http://...", bzw. "https://...") oder relativ zur aufrufenden HTML-Datei angegeben werden. | Tv.url = "http://helmutkarger.de/download/tvapi/beispiel.gpx";
oder Tv.url = "meineWanderung.gpx"; |
mapDiv |
string | Id des DIV-Elements, das die Karte aufnehmen soll. (Fehlt dieser Parameter oder ist das DIV im HTML-Code nicht vorhanden, so wird keine Karte ausgegeben) | Tv.mapDiv = "karte"; |
eleProfDiv |
string | Id des DIV-Elements, das das Höhenprofil aufnehmen soll. | Tv.eleProfDiv = "hoehenprofil"; |
eleLargeTabDiv |
string | Id des DIV-Elements für eine große Höhendatentabelle. | Tv.eleLargeTabDiv = "hoehentabelle"; |
eleSmallTabDiv |
string | Id des DIV-Elements für eine kleine Höhendatentabelle. | Tv.eleSmallTabDiv = "hoetabklein"; |
selectedMaps |
array of strings | Auswahl der gewünschten Karten. Mehr siehe Kartenseite. | Tv.selectedMaps = ["OpenStreetMap.de", "OpenStreetMap.fr Humanitaire", "OpenTopoMap", "ÖPNVKarte"]; |
mapType |
string | Auswahl der initial angezeigten Karte. Nur nötig, falls eine andere als die erste der
selectedMaps gewünscht wird. |
Tv.mapType = "OpenTopoMap"; |
thunderforestApiKey |
string | Eingabemöglichkeit für erworbene API-Keys von verschiedenen Anbietern. Mehr siehe Kartenseite. | Tv.thunderforestApiKey = "12345678901234567890"; |
maxZoom |
integer | Reduzierung des maximalen Zoomlevels (default ist 22). | Tv.maxZoom = 18; |
lineArrows |
boolean | Pfeile an die Linien zeichnen (default = true). | Tv.lineArrows = false; |
lineColor |
string oder array of strings | Linienfarbe bestimmen. Angabe einer Einzelfarbe oder einer Farbreihe. (Liste gültiger Farbangaben) |
Tv.lineColor = "#FF9F00";
oder Tv.lineColor = ["#FF9F00","red", "green", "blue"] |
overwriteGpxColor |
boolean | Farbangaben der GPX-Datei mit Farbe(n) aus lineColor überschreiben
(default = false). |
Tv.overwriteGpxColor = true; |
scrollWheelZoom |
boolean | Zoom in der Karte mit dem Mausrad erlauben (default = true). | Tv.scrollWheelZoom = false; |
eleProfWidth |
integer | Breite des Höhenprofils (Image) in Pixel. | Tv.eleProfWidth = 570; |
eleProfHeight |
integer | Höhe des Höhenprofils (Image) in Pixel. | Tv.eleProfHeight = 170; |
eleProfRouteStyle |
string | Bei mehreren Routen/Tracks kann die Anordnung im Höhenprofil auf verschiedene
Arten erfolgen:serial : die zweite Route beginnt am Ende der ersten,parallel : alle Routen beginnen am Anfang oderauto (default): das Programm entscheidet das anhand der Routenführung
automatisch. |
Tv.eleProfRouteStyle = "parallel"; |
eleProfXsections |
integer | Richtwert für die Anzahl der X-Achsenunterteilungen. | Tv.eleProfXsections = 10; |
eleProfYsections |
integer | Richtwert für die Anzahl der Y-Achsenunterteilungen. | Tv.eleProfYsections = 5; |
eleProfMarginLeft |
integer | Linker Rand des Höhenprofils in Pixel (Raum für die Achsenbeschriftung). | Tv.eleProfMarginLeft = 50; |
eleProfMarginBottom |
integer | Unterer Rand des Höhenprofils in Pixel (Raum für die Achsenbeschriftung). | Tv.eleProfMarginBottom = 20; |
eleProfMarginRight |
integer | Rechter Rand des Höhenprofils in Pixel. | Tv.eleProfMarginRight = 20; |
eleProfMarginTop |
integer | Oberer Rand des Höhenprofils in Pixel. | Tv.eleProfMarginTop = 20; |
eleProfMarkerLength |
integer | Länge der Achsmarkierungen in Pixel. | Tv.eleProfMarkerLength = 7; |
eleProfAxisWidth |
integer | Linienbreite der Achsen im Höhenprofil in Pixel. | Tv.eleProfAxisWidth = 2; |
eleProfAxisColor |
string | Farbe der Achsen (nur hex RGB-Code mit voranstehendem #). | Tv.eleProfAxisColor = "#000000"; |
eleProfGridColor |
string | Gitternetzfarbe des Höhenprofils (nur hex RGB-Code mit voranstehendem #). | Tv.eleProfGridColor = "#fefefe"; |
eleDataUpDownThreshold |
integer | Schwellwert in Meter bei der Berechnung der Auf- und Abstiegsmeter. Auf- und Abwärtsbewegungen unterhalb dieses Schwellwerts werden bei der Aufsummierung ignoriert. 5m sind sind ein guter Wert für Wanderungen. | Tv.eleDataUpDownThreshold = 5; |
Daten | Typ | Beschreibung | Beispiel | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
version |
string | die aktuelle Version der TrackViewer-API. | alert (Tv.version);
ergibt etwas wie "5/0/0" |
||||||||||||||||||||||||||||||||||||
local.allMaps |
object | Datenobjekt aller in der TrackViewer-API vorbereiteten Karten mit deren Url, maxNativeZoom Information und
angepasstem maxZoom . |
function userExit1(obj) { |
||||||||||||||||||||||||||||||||||||
local.map |
object | enthält das Kartenobjekt, das damit (per Userexit) direkt angesprochen werden kann. | function userExit4(obj) { |
||||||||||||||||||||||||||||||||||||
host.status |
string | Rückmeldung der serverseitigen Verarbeitung. Der String ist im Erfolgsfall leer und enthält andernfalls eine Fehlermeldung. | function userExit2(obj) { |
||||||||||||||||||||||||||||||||||||
host.urlreal |
string | Diese Rückmeldung der serverseitigen Verarbeitung enthält die reale absolute URL der GPX-Datei, die möglicherweise aus einer relativen URL abgeleitet ist. | function userExit2(obj) { |
||||||||||||||||||||||||||||||||||||
data.structure |
array | die Struktur der einzelnen Tracks (Routen) zueinander (hintereinander, parallel), wie sie von
eleProfRouteStyle = "auto" erkannt wird. |
function userExit4(obj) {
ergibt etwas wie [[0,1],2], was soviel bedeutet wie Track 0 und 1 verlaufen hintereinander und Track 2 parallel zu beiden. |
||||||||||||||||||||||||||||||||||||
data.all |
array | Direktzugriff auf die Höhendaten. Array[0] enthält dabei die Summen über alle Routen.
Bei eleProfRouteStyle = "auto" können auch Zwischensummen entstehen,
die im Array an die Daten der Einzelrouten angehängt werden. Jedes Arrayelement
hat folgende Datenfelder:
|
function userExit4(obj) { |
Userexits sind Funktionen, die an bestimmten Stellen aus der Verarbeitung der TrackViewer-API
(also "request()
") heraus aufgerufen werden, sofern diese Funktionen existieren. Als Parameter
wird jeweils das TrackViewer-Objekt übergeben.
Syntax:
function userExit4(obj) {
// mach irgendwas mit obj
}
Userexits | Beschreibung |
---|---|
userExit1(obj) |
request() wurde aufgerufen und abgewartet bis DOM komplett geladen ist.
obj.local.allMaps (alle Kartenabrufinformationen) steht ab hier zur Verfügung.
Die serverseitige Verarbeitung wurde noch nicht angestoßen. |
userExit2(obj) |
Die serverseitige Verarbeitung wurde beendet aber noch nicht geprüft. |
userExit3(obj) |
Die serverseitige Verarbeitung wurde beendet und es ist dabei kein Fehler aufgetreten. Die Anzeige von Karte oder Höhenprofil wurde jedoch noch nicht gestartet, so dass die Daten noch geändert werden können. |
userExit4(obj) |
Alle angeforderten Anzeigen der TrackViewer-API (Karte, Höhenprofil, kleine und große Datentabelle) sind abgeschlossen. Die TrackViewer-API ist quasi fertig und es können eigene zusätzliche Programmschritte folgen. |
Die Spezifikation des GPX-Datenformats sieht an sich keine Farbinformationen vor. Von Garmin existiert jedoch eine Erweiterung (extension) die folgende Farben als sogenannte Display-Colors definiert:
Black |
DarkRed |
DarkGreen |
DarkYellow |
DarkBlue |
DarkMagenta |
DarkCyan |
LightGray |
DarkGray |
Red |
Green |
Yellow |
Blue |
Magenta |
Cyan |
White |
Transparent |
Die TrackViewer-API wertet diese Farbangaben aus, wenn sie zum einen direkt
in GPX-Dateien vorkommen oder zum anderen als Farbinformationen per lineColor
angegeben werden.
Das Format für Farbangaben in GPX-Dateien sieht am Beispiel eines Tracks folgendermaßen aus:
..
<trk>
<name>ActiveLog</name>
<extensions>
<gpxx:TrackExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
<gpxx:DisplayColor>DarkRed</gpxx:DisplayColor>
</gpxx:TrackExtension>
</extensions>
<trkseg>
<trkpt lat="48.1388828" lon="11.5648227">
<ele>913</ele>
</trkpt>
..
</trkseg>
</trk>
..
Über diesen "Garmin-Standard" hinaus erlaubt die TrackViewer-API auch Farbangaben im
hexadezimalen RGB-Format also zum Beispiel "#FF00FF" für magenta. Das ergibt
eine Farbauswahl aus über 18 Millionen Farben (True Color). Bitte beachten Sie aber, dass
GPS-Geräte und andere Programme wie zum Beispiel MapSource diese Farbenvielfalt nicht darstellen können.
Für Farbangaben für das Höhenprofil (eleProfAxisColor
und
eleProfGridColor
) können die "Garmin-Farbdefinitionen" nicht verwendet werden.
Hier ist nur das hexadezimale RGB-Format erlaubt.
Weitere Anleitungsseiten zum Themenkomplex TrackViewer-API finden Sie hier:
Stand: Dezember 2020