Ich möchte einen GPX-Track auf einer Leaflet-Karte zeichnen. Die Polylinie sollte nicht nur eine Farbe haben, sondern ich möchte bestimmte Werte wie Höhe, Geschwindigkeit, Herzfrequenz, Temperatur, Trittfrequenz und Steigung farblich kennzeichnen. Natürlich kann immer nur ein Wert angezeigt werden.
Die Werte würden zusammen mit L.LatLng
zB in einem meta: {ele: 298, hr: 155}
Objekt gespeichert .
Ich bin neu bei Leaflet und bin besonders besorgt darüber, einen effizienten Weg zu finden, dies zu tun. Das erste, was mir in den Sinn kam, war, Hunderte oder Tausende von Polylinien mit jeweils einer speziellen Farbe zu erstellen. Aber das klingt sehr gierig in Bezug auf Speicher und CPU.
Irgendwelche Ideen?
Ein Beispiel, was ich meine, kann hier angesehen werden
Antworten:
Konvertieren Sie Ihren GPX-Track mit QGIS in einen GeoJSON-Track.
Nehmen wir an, Ihr GeoJSON sieht so aus. Das GeoJSON hat ein Attribut
elevation
mit dem Wert der Höhe.Fügen Sie Ihren GeoJSON mit dem folgenden Code zu Ihrer Flugblattkarte hinzu. Verwenden Sie eine Funktion, um Ihre Datei zu formatieren. Das
"color"
Element ruft die Funktion aufget color
und übergibt denelevation
Wert Ihres Features als Parameter.Die Funktion
getColor
gibt die Farbe basierend auf dem Höhenwert zurück.Ich habe eine JSFiddle mit dem Beispiel GeoJSON und den oben beschriebenen Funktionen erstellt: http://jsfiddle.net/2VY5z/1/
quelle
<path>
Elemente so oft erstellen, wie die Farbe wechselt. Leider gibt es keine Möglichkeit, die Farbe in einem Pfad zu ändern:M184 398L187 395C#00FF00 L183 399
Wäre dafür erforderlich (C = Farbe).Ich habe ein kleines Plugin für Leaflet erstellt: Leaflet.MultiOptionsPolyline .
Hier ist ein Screenshot von der Demo-Seite :
Derzeit fehlt die Dokumentation, aber die Demoseite verweist auf den Quellcode, der sich selbst erklären sollte.
Ihr Feedback ist willkommen (erstellen Sie ein Problem bei GitHub oder kommentieren Sie diese Antwort, wenn Sie keinen GitHub-Account haben).
quelle
Sieht so aus, als wäre dies der alte Thread, aber hoffentlich findet das jemand hilfreich.
Ein Leaflet-Plugin zum Zeichnen von Farbverläufen entlang von Polylinien. https://github.com/iosphere/Leaflet.hotline/
quelle