Saya ingin menggambar jalur GPX pada peta Leaflet. Polyline seharusnya tidak hanya memiliki satu warna, tetapi saya ingin menunjukkan nilai-nilai tertentu seperti ketinggian, kecepatan, detak jantung, suhu, irama, kode warna kemiringan. Tentu saja hanya satu nilai yang dapat divisualisasikan sekaligus.
Nilai akan disimpan bersama dengan L.LatLng
, misalnya dalam suatu meta: {ele: 298, hr: 155}
objek.
Saya baru mengenal Leaflet dan terutama peduli tentang menemukan cara yang efisien untuk melakukan ini. Yang pertama terlintas di pikiran adalah membuat ratusan atau ribuan polyline masing-masing dengan warna khusus. Tapi ini terdengar serakah mengenai memori dan cpu.
Ada ide?
Contoh yang saya maksud bisa dilihat di sini
Jawaban:
Ubah trek GPX Anda menjadi GeoJSON dengan QGIS.
Katakanlah GeoJSON Anda terlihat seperti ini. GeoJSON memiliki atribut
elevation
dengan nilai ketinggian.Tambahkan GeoJSON Anda dengan kode berikut ke peta selebaran Anda. Gunakan fungsi untuk menata file Anda. The
"color"
elemen memanggil fungsiget color
dan melewati padaelevation
nilai fitur Anda sebagai parameter.Fungsi
getColor
mengembalikan warna berdasarkan nilai ketinggian.Saya membuat JSFiddle dengan sampel GeoJSON dan fungsi yang dijelaskan di atas: http://jsfiddle.net/2VY5z/1/
sumber
<path>
elemen sesering warna berubah. Sayangnya tidak ada cara untuk mengubah warna di jalur:M184 398L187 395C#00FF00 L183 399
akan diperlukan untuk itu (C = warna).Saya telah membuat plugin kecil untuk Leaflet: Leaflet.MultiOptionsPolyline .
Ini screenshot dari halaman demo :
Saat ini masih kurang dokumentasi, tetapi halaman demo terhubung ke kode sumber yang seharusnya cukup jelas.
Umpan balik Anda diterima (buat masalah pada GitHub atau komentar jawaban ini jika Anda tidak memiliki akun GitHub).
sumber
Sepertinya ini adalah utas lama, tetapi mudah-mudahan, seseorang menemukan ini bermanfaat.
Plugin Leaflet untuk menggambar gradien berwarna di sepanjang polyline. https://github.com/iosphere/Leaflet.hotline/
sumber