Saya mengalami kesulitan mencari tahu mengapa metode Leaflet setstyle
akan mengubah warna poligon tetapi tidak warna spidol saya.
Polygon berfungsi dengan baik:
Tetapi spidol tidak akan berubah warna:
Saya ingin dapat menggerakkan mouse di atas marker dan mengubah warnanya. Sepertinya setStyle akan melakukan ini. Tapi saya terus mendapatkanlayer.setStyle is not a function
Saya menggunakan Angular dan Leaflet bersama-sama untuk membuat peta (saya menggunakan directional-leaflet-directive).
Inilah bagian mouseover dari kode:
$scope.$on("leafletDirectiveMap.geojsonMouseover", function (ev, leafletEvent) {
pointMouseover(leafletEvent);
});
function pointMouseover(leafletEvent) {
var layer = leafletEvent.target;
layer.setStyle({
weight: 2,
color: '#666',
fillColor: 'white'
});
}
Ketika marker tersingkir, itu menyala pointMousever
yang kemudian mencoba untuk memanggil setStyle pada LeafletEvent.target. Saya telah console.logged LeafletEvent dan memang ada bagian Targetnya:
Mengapa setStyle berfungsi untuk poligon dan tidak untuk marker? Apa cara untuk mengubah warna marker?
Jawaban:
Sepertinya Anda tidak dapat melakukan itu karena marker menggunakan gambar untuk di-render.
Saya pikir Anda perlu mengambil kelas ikon marker Anda dan mengubah atribut "iconUrl" menjadi gambar baru apa pun yang Anda inginkan.
Sumber: Referensi Leaflet API
Semoga itu bisa membantu,
DR
sumber
Menemukannya berkat bacaan dokumentasi.
Poligon dalam selebaran merespons
setStyle
tetapi penanda dapat diubah menggunakansetIcon
Dokumentasi untuk setIcon
sumber
Lihat Jawaban Kyle Pennell:
Anda dapat menggunakan baris berikut:
sumber
Anda dapat melakukannya tanpa harus membuat sejuta gambar ikon berbeda jika Anda menggunakan CSS.
Ini dia:
sumber
Menggabungkan jawaban Ricky dengan /programming/7415872/change-color-of-png-image-via-css , kita dapat melakukan sesuatu seperti:
Anda juga dapat bermain
saturate()
danbrightness()
mendapatkan lebih banyak warna.Sebagaimana disebutkan dalam jawaban untuk pertanyaan itu, itu tidak didukung di semua browser: https://caniuse.com/#feat=css-filters
sumber