J'aimerais dessiner une piste GPX sur une carte Leaflet. La polyligne ne doit pas avoir qu'une seule couleur, mais je voudrais montrer certaines valeurs comme l'altitude, la vitesse, la fréquence cardiaque, la température, la cadence, la pente avec un code couleur. Bien sûr, une seule valeur peut être visualisée à la fois.
Les valeurs seraient stockées avec L.LatLng
, par exemple dans un meta: {ele: 298, hr: 155}
objet.
Je suis nouveau sur Leaflet et je suis particulièrement soucieux de trouver un moyen efficace de le faire. La première qui m'est venue à l'esprit était de créer des centaines ou des milliers de polylignes chacune avec une couleur spéciale. Mais cela semble très gourmand en ce qui concerne la mémoire et le processeur.
Des idées?
Un exemple de ce que je veux dire peut être consulté ici
Réponses:
Convertissez votre piste GPX en GeoJSON avec QGIS.
Disons que votre GeoJSON ressemble à ceci. Le GeoJSON a un attribut
elevation
avec la valeur de l'élévation.Ajoutez votre GeoJSON avec le code suivant à votre carte de brochure. Utilisez une fonction pour styliser votre fichier. L'
"color"
élément appelle la fonctionget color
et transmet laelevation
valeur de votre fonction comme paramètre.La fonction
getColor
renvoie la couleur en fonction de la valeur d'élévation.J'ai fait un JSFiddle avec l'exemple GeoJSON et les fonctions décrites ci-dessus: http://jsfiddle.net/2VY5z/1/
la source
<path>
éléments aussi souvent que la couleur change. Malheureusement, il n'y a aucun moyen de changer de couleur dans un chemin:M184 398L187 395C#00FF00 L183 399
serait nécessaire pour cela (C = couleur).J'ai créé un petit plugin pour Leaflet: Leaflet.MultiOptionsPolyline .
Voici une capture d'écran de la page de démonstration :
Actuellement, il manque de documentation, mais la page de démonstration renvoie au code source qui devrait être assez explicite.
Vos commentaires sont les bienvenus (créez un problème sur GitHub ou commentez cette réponse si vous n'avez pas de compte GitHub).
la source
On dirait que c'est l'ancien fil, mais j'espère que quelqu'un trouve cela utile.
Un plugin Leaflet pour dessiner des dégradés colorés le long des polylignes. https://github.com/iosphere/Leaflet.hotline/
la source