Saya sedang mengerjakan alat digitalisasi.
Ada empat tombol pada saat ini:
- tambahkan poin
- tambahkan baris
- tambahkan poligon
- hapus geometri
Pengguna selalu memulai dengan terlebih dahulu menggambar beberapa geometri. Saya menggunakan interaksi Draw ( ol.interaction.Draw ) dan geometri ditambahkan ke Koleksi ( ol.Collection ).
Sejauh ini bagus. Sekarang pengguna mungkin memutuskan untuk menghapus beberapa geometri yang digambar dengan mengkliknya.
Berikut ini sebuah contoh:
Ketika mengklik tombol 'hapus geometri', maka:
- gambar dihapus untuk menonaktifkannya
- a Pilih interaksi dibuat (ol.interaction. Pilih) untuk memilih geometri untuk menghapusnya
- ketika fitur dipilih ID-nya dibandingkan dengan semua ID fitur lainnya dalam satu lingkaran, dan begitu ID yang benar ditemukan, fitur itu dihapus.
Logikanya berfungsi, tetapi sangat sulit untuk menghapus titik atau garis karena titik biru yang ditampilkan ketika melayang, yang membuatnya hampir mustahil untuk mengklik geometri.
Sebagai contoh:
Titik kuning berikut tidak akan dihapus karena titik biru menghalangi:
Jika saya memindahkan kursor sedikit di bawah titik fitur akan dihapus:
Garis hampir mustahil untuk dihapus karena titik biru akan bergerak dengan kursor ketika kursor bergerak di sepanjang garis:
Untuk poligon itu berfungsi dengan baik, karena titik biru hanya ditampilkan ketika melayang di sekitar tepi geometri, tetapi jika Anda mengabaikannya dan mengklik di mana saja dalam isian, geometri akan dihapus juga:
Bagaimana saya bisa mengubah tampilan titik biru itu? Saya akan baik-baik saja dengan membuangnya sepenuhnya. Saya telah mencoba menambahkan gaya ke Interaksi Pilih tetapi itu tidak berpengaruh. Itu hanya akan menambah gaya lain di atas titik biru.
EDIT : cara untuk menyelesaikan ini, mungkin, adalah dengan melihat melalui titik biru itu. Apakah ada cara untuk mengklik / memilih dan melihat apa yang ada di balik titik biru?
sumber
Jawaban:
Anda perlu menentukan gaya yang akan digunakan oleh interaksi pilihan Anda. Ini milik saya misalnya:
Untuk menerapkan gaya yang benar, kami memerlukan fungsi gaya untuk memeriksa fitur:
Setelah ditentukan, ini dapat ditambahkan ke objek interaksi Pilih seperti ini:
Saya sudah mencoba menyederhanakan ini dari kode saya sendiri tetapi mudah-mudahan tidak membuat kesalahan (!)
sumber