Bagaimana saya bisa membatalkan pilihan fitur di Openlayers?

9

Saya dapat mengidentifikasi fitur yang dipilih pada peta saya menggunakan baris berikut:

vector_layer.selectedFeatures

Saya ingin dapat membatalkan pilihan fitur ini menggunakan fungsi mandiri (bukan event-handler). Saya sudah mencoba menggunakan fungsi unselect()dan unselectAll()tidak berhasil dan tidak dapat menemukan contoh pendekatan ini.

Saya sadar bahwa mengklik objek yang dipilih dapat digunakan untuk unselect. Dalam hal ini saya ingin solusi terprogram.

djq
sumber
Ini bukan apa yang saya coba lakukan tetapi unSelectmasalah dibahas di sini: github.com/openlayers/openlayers/pull/486
djq
terima kasih atas sarannya. Saya telah melihat ini dan mencoba untuk menyesuaikannya dengan layer grid saya. Sejauh yang saya tahu, setiap contoh untuk memilih fitur yang terlibat membuat fitur terlebih dahulu. Saya belum (belum) melihat contoh yang berfungsi di mana lapisan yang ada dimuat dan pengguna memilih fitur dari lapisan ini. Saya mulai berpikir bahwa selectFeature hanya berfungsi untuk vektor yang Anda buat saat itu juga. Saya harap ini tidak benar atau saya dalam masalah. ;)
user2378729

Jawaban:

13

OpenLayers 2: Anda dapat membatalkan pilihan fitur dengan membatalkan pilihan dan membatalkan pilihan Semua metode kontrol SelectFeature:

selectControl = new OpenLayers.Control.SelectFeature(vectorLayer);
...
map.addControls([selectControl]);
selectControl.activate();

// unselect any specific feature...
selectControl.unselect(vectorLayer.features[0]);
// ...or all features
selectControl.unselectAll();

Jika ini tidak berhasil, mungkin ada bug dalam kode Anda.

Ini biola: http://jsfiddle.net/dHxnh/1/

pengguna1702401
sumber
Saya tidak melihat itu di dokumentasi ... tapi berhasil!
pakman
1

Openlayers membatalkan pemilihan Objek - berbagai metode

Gunakan tombol shift untuk memilih banyak fitur. Gunakan tombol ctrl untuk mengaktifkan pilihan pada fitur satu per satu. Catatan: opsi "clickout" tidak berpengaruh ketika "hover" dipilih

http://openlayers.org/dev/examples/select-feature.html

klik untuk membatalkan pilihan fitur

Mapperz
sumber
1
Maaf, seharusnya ditambahkan kata programmatic. Saya ingin unselectmenggunakan fungsi, bukan klik.
djq