Saya memiliki L.layerGroup() yang disebut var stopsLayer. Saya ingin mengulanginya ketika parameter tertentu telah ditetapkan oleh pengguna dan "menghidupkan" hanya yang cocok dengan input pengguna.

Mengaktifkan penanda menyiratkan itu menunjukkan satu gaya versus default. Metode yang saya miliki untuk mencapai ini ada di bawah.

stopsLayer.eachLayer(function (layer) {
  if (parameter === userInput) {
    layer.options.icon.options.className = 'icon-on';
  } else {
    layer.options.icon.options.className = 'icon-off';
  }
});

Ini "berfungsi" sejauh itu, jika saya console.log() setiap penanda dan melihat set className untuk properti icon penanda itu, itu telah diperbarui. Sayangnya, perubahan ini tidak tercermin dalam peta itu sendiri.

1
kuanb 27 Mei 2015, 21:11

1 menjawab

Jawaban Terbaik

Menemukan jawabannya. Saya telah menggunakan setLayer yang salah. Ada metode yang tersedia yang disebut setIcon yang tidak didokumentasikan dengan baik.

Saya menemukan JSFiddle yang menunjukkan penggunaannya di sini: http://jsfiddle.net/JYF9u/8/

Itu juga terdaftar sebagai metode di bawah penanda dalam dokumentasi: http://leafletjs.com/reference.html #marker-seticon

2
kuanb 27 Mei 2015, 22:28