Leaflet: GeoJson pointerEvents = 'tidak ada' efek apa pun

Dibuat pada 3 Feb 2017  ·  4Komentar  ·  Sumber: Leaflet/Leaflet

  • [X] Saya melaporkan bug, bukan meminta bantuan
  • [X] Saya telah melihat dokumentasi untuk memastikan perilaku didokumentasikan dan diharapkan
  • [X] Saya yakin ini adalah masalah kode Leaflet, bukan masalah dengan kode saya sendiri atau dengan kerangka kerja yang saya gunakan (Cordova, Ionic, Angular, React…)
  • [X] Saya telah menelusuri masalah untuk memastikan itu belum dilaporkan

Cara memperbanyak

  • Versi selebaran yang saya gunakan: 1.0.3
  • Browser (dengan versi) Saya menggunakan: Chrome 55
  • OS/Platform (dengan versi) Saya menggunakan: Windows

Perilaku apa yang saya harapkan dan perilaku apa yang saya lihat

Saya harus menampilkan dua overlay GeoJson: satu yang dapat berinteraksi dengan pengguna (klik, arahkan mouse) dan yang kedua tanpa interaksi, hanya untuk menampilkan informasi visual.
Lapisan pertama berada di bawah lapisan kedua dan hanya goresan yang harus digambar.

Saya telah menetapkan "pointerEvents" ke none untuk gaya lapisan kedua, tetapi LeafLet tidak menggunakan properti ini: svg yang dihasilkan tidak memiliki properti ini.

Contoh minimal mereproduksi masalah

  • [X] contoh ini sesederhana mungkin
  • [ ] contoh ini tidak bergantung pada kode pihak ketiga mana pun
var interactiveLayer = L.topoJson(epci2014TopoJson, {
        style: function (feature) {
            return {
                weight: 0.0,
                fillOpacity: 0.7,
                color: 'rgb(200,200,200)',
                fillColor: getColor(feature.properties.siren_epci || feature.properties.SIREN_EPCI)
            }
        },
        onEachFeature: function (feature, layer) {
            layer.on({
                mouseover: highlightFeature,
                mouseout: resetHighlight,
                click: zoomToFeature
            });

        }
    }).addTo(map);

    var justForDrawLayer=L.geoJson(departementsGeoJson, {
        style: function (feature) {
            return {
                pointerEvents : 'none',
                clickable:false,
                weight: 3,
                fillOpacity: 0.0,
                color: 'rgb(220,220,220)'
            }
        }
    }).addTo(map);

Saya telah mencoba menempatkan "dapat diklik" menjadi "salah", tidak ada perubahan.

Maaf jika bahasa inggris saya tidak cukup kan. Terima kasih.

Menggunakan http://playground-leaflet.rhcloud.com/ atau situs serupa jsfiddle lainnya.

Komentar yang paling membantu

Saya telah mencoba dengan "in teractive:false ", berhasil.
Saya minta maaf (memiliki komunitas yang diminta) dan senang (karena berhasil).

Terima kasih.

Semua 4 komentar

Saya telah menetapkan "pointerEvents" menjadi tidak ada untuk gaya lapisan kedua, tetapi LeafLet tidak menggunakan properti ini

Yah, pointerEvents itu bukan opsi yang dikenali untuk L.Path , jadi saya tidak yakin apa yang Anda harapkan.

Saya telah mencoba menempatkan "dapat diklik" menjadi "salah", tidak ada perubahan.

Opsi itu mengubah nama menjadi interactive di 1.0.0, lihat "Opsi yang diwarisi dari lapisan Interaktif" dalam dokumentasi.

Terimakasih atas tanggapan Anda.

Untuk "pointerEvents": karena saya tidak mengaktifkan lapisan "tidak aktif" untuk interaksi pengguna, saya telah mencoba mengikuti contoh yang diberikan di sini: http://leafletjs.com/examples/map-panes/ untuk panel dan pointerEvents diterapkan ke lapisan geoJson. Mungkin saya salah memahami pengertian ini.

Saya akan mencoba dengan properti tidak aktif untuk gaya geojson.

Tujuan saya adalah menampilkan beberapa negara kecil (poligon) sebagai peta cloropleth. Di bawah lapisan ini lapisan ubin, dan di atas lapisan geojson lain menampilkan negara-negara yang lebih besar, masing-masing adalah "wadah" untuk negara-negara kecil. Saya ingin overlay ini hanya menampilkan stroke poligon dengan transparansi total untuk bagian dalamnya. Saya ingin hamparan "negara kecil" berinteraksi dengan pengguna dan lapisan "negara besar" tidak.

Terima kasih

Saya telah mencoba dengan "in teractive:false ", berhasil.
Saya minta maaf (memiliki komunitas yang diminta) dan senang (karena berhasil).

Terima kasih.

Saya memiliki tugas yang sama untuk membuat dua lapisan dan lapisan atas harus tidak aktif. "in teractive:false " membantu, terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat