Hallo Liebe Community,
ich bin gerade auf einer Weltreise mit dem Motorrad. Aktuell befinde ich mich in Dakar, der Hauptstadt des Senegal. Weiter geht es bis Kapstadt und dann die Ostküste wieder hoch.
Während meiner Reise läuft ein GPS-Tracker mit, welcher alle 60 Sekunden einen Trackpunkt setzt. Jeden Abend lade ich die GPX-Datei auf einem Server, mittels PHP-Script füge ich dann alle GPX-Dateien automatisiert zu einer großen GPX-Datei zusammen. Die große GPX-Datei stelle ich mit folgendem Script auf einer Karte dar:
<div id="mapdiv"></div>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script>
map = new OpenLayers.Map("mapdiv");
map.addLayer(new OpenLayers.Layer.OSM());
var AFRIKAREISE = new OpenLayers.Layer.Vector("", {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "../gpx/Master.gpx",
format: new OpenLayers.Format.GPX()
}),
style: {strokeColor: "green", strokeWidth: 5, strokeOpacity: 0.5},
projection: new OpenLayers.Projection("EPSG:4326")
});
map.addLayer(AFRIKAREISE);
var layer_switcher= new OpenLayers.Control.LayerSwitcher({});
map.addControl(layer_switcher);
var lonLat = new OpenLayers.LonLat( 10, 50 )
.transform(
new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
map.getProjectionObject() // to Spherical Mercator Projection
);
var zoom=5;
map.setCenter (lonLat, zoom);
</script>
Soweit überhaupt kein Problem. Das ganze funktioniert absolut problemlos.
Nun habe ich jedoch folgendes Problem:
Meine “Master-GPX” hat mittlerweile 70mb, welchen Einfluss das auf meinen Server-Traffic und auf die Ladezeiten hat, brauche ich denke ich nicht erklären. Zwar könnte ich die Tages-GPX jeweils einzeln in die Karte einbinden, in Summe wären es ja aber trotzdem noch 70mb, Tendenz steigend.
Überlegung: Ich lade die Trackpunkte alle in eine SQL-Datenbank. Je nach Karten-Zoomlevel nutze ich für die Darstellung des Tracks nur jeden 10, 50, 100 oder gar 1000. Trackpunkt, da man ja ab einem gewissen Zoomlevel sowieso keinen Unterschied mehr erkennt. Außerdem übertrage ich nur die Trackpunkte, auf dem aktuellen Bildschirmausschnitt.
Mein Problem: Ich bin fit in PHP. Die Trackpunkte in eine Datenbank zu schreiben ist überhaupt kein Problem. Ich bin aber weder fit in JavaScript noch finde ich irgend ein Beispiel oder für mich verständliches Example.
Kann mir jemand helfen? Ich würde mich auch entsprechend erkenntlich zeigen.
Viele Grüße
Philipp