Openlayers: Optimierung in Javascript

Strecken als Objekte mit Struktur

In meinem ersten Ansatz habe ich für jeden abzubildenden Track ein Vektorobjekt aus der Layer-Klasse von Openlayers verwendet. Für die Erzeugung eines solchen Vektorobjekts entwerfe ich nun eine Funktion, die dieses Objekt mit allen notwendigen Eigenschaften erzeugt:

//----------------------------------------------------------------------------------------------------------------------------------
 function erstelle_Strecke(einDatum, eineEntfernung, eineGPXDatei, eineFarbe="magenta", eineLinienstaerke=3, eineLiniendichte=0.5) {

// Muster zum Erstellen eines Trackabbilds
 //
 // Aufruf:
 //
 // map.addLayer(new erstelle_Strecke( -- 1 -- Was als Text im Switcher als Streckenbeschreibung erscheinen soll
 // -- 2 -- Die Entfernung in Kilometern
 // -- 3 -- Der Name der zu verwendenden GPX-Datei
 // -- 4 -- Die Farbe, in der der GPX-Track dargestellt werden soll
 // -- 5 -- Die "Durchsichtigkeit" des GPX-Tracks (0 = ganz durchsichtig, 1 = undurchsichtig)
 //
 // Farbe, Linienstärke und Liniendichte sind als Parameter vorbesetzt und können ggf. nach den
 // Konventionen der Parameterübergabe bei Javascript weggelassen werden.

dieStrecke = new OpenLayers.Layer.Vector(einDatum + " - " + eineEntfernung, {
 strategies: [new OpenLayers.Strategy.Fixed()],
 protocol: new OpenLayers.Protocol.HTTP({
 url: eineGPXDatei,
 format: new OpenLayers.Format.GPX()
 }),
 style: {strokeColor: eineFarbe, strokeWidth: eineLinienstaerke, strokeOpacity: eineLiniendichte},
 projection: new OpenLayers.Projection("EPSG:4326")})

return dieStrecke
 }
 //--------------------------------------------------------------------------------------------------------------------------------

Diese Funktion hat fünf Parameter, von denen die drei letzten schon mit Werten vorbesetzt sind, die aber innerhalb der Funktion überschrieben werden können (s. Quelltext). Der Funktionsaufruf liefert dann im Programm ein Objekt der Klasse OpenLayers.Layer.Vector, das dann direkt in die Liste der Objekte, die im Kartenobjekt map der komplexen Klasse OpenLayers.Map  gesammelt werden, aufgenommen wird.

Den Quelltext des gesamten HTML-Dokuments zur vereinfachten Darstellung von GPX-Tracks mit OpenLayers kann man hier einsehen.

 

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden..