Chciałbym narysować tor GPX na mapie Ulotki. Polilinia nie powinna mieć tylko jednego koloru, ale chciałbym pokazać pewne wartości, takie jak wysokość, prędkość, tętno, temperatura, kadencja, nachylenie oznaczone kolorami. Oczywiście można jednocześnie wyświetlić tylko jedną wartość.
Wartości byłyby przechowywane razem L.LatLng
np. W meta: {ele: 298, hr: 155}
obiekcie.
Jestem nowy w Ulotce i szczególnie martwię się o znalezienie skutecznego sposobu, aby to zrobić. Najpierw przyszło mi do głowy stworzyć setki lub tysiące polilinii o specjalnym kolorze. Ale to brzmi bardzo chciwie w odniesieniu do pamięci i procesora.
Jakieś pomysły?
Przykład, co mam na myśli, można obejrzeć tutaj
Odpowiedzi:
Konwertuj swoją ścieżkę GPX na GeoJSON za pomocą QGIS.
Powiedzmy, że Twój GeoJSON wygląda tak. GeoJSON ma atrybut
elevation
o wartości rzędnej.Dodaj swój GeoJSON z następującym kodem do mapy ulotki. Użyj funkcji do stylizowania pliku.
"color"
Elementem wywołuje funkcjęget color
i przechodzi naelevation
wartości swojej funkcji jako parametr.Funkcja
getColor
zwraca kolor na podstawie wartości rzędnej.Zrobiłem JSFiddle z przykładowym GeoJSON i funkcjami opisanymi powyżej: http://jsfiddle.net/2VY5z/1/
źródło
<path>
elementów tak często, jak zmienia się kolor. Niestety nie ma możliwości zmiany koloru na ścieżce:M184 398L187 395C#00FF00 L183 399
byłoby to konieczne (C = kolor).Stworzyłem małą wtyczkę do Leaflet: Leaflet.MultiOptionsPolyline .
Oto zrzut ekranu ze strony demonstracyjnej :
Obecnie brakuje dokumentacji, ale strona demo prowadzi do kodu źródłowego, co powinno być dość oczywiste.
Twoja opinia jest mile widziana (stwórz problem na GitHub lub skomentuj tę odpowiedź, jeśli nie masz konta GitHub).
źródło
Wygląda na to, że jest to stary wątek, ale mam nadzieję, że ktoś uzna to za pomocne.
Wtyczka Leaflet do rysowania kolorowych gradientów wzdłuż polilinii. https://github.com/iosphere/Leaflet.hotline/
źródło