Jika pengguna membuat fitur poligon yang sepenuhnya tumpang tindih dengan yang lain, seperti ini ...
... maka tidak mungkin Anda dapat memilih fitur bagian dalam, yaitu yang tumpang tindih dengan yang lain. Saat ini saya menggunakan yang sederhana SelectFeature
seperti ini:
var select = new OpenLayers.Control.SelectFeature(
[this.annotationLayer, this.controlPointsLayer], {
hover: true,
renderIntent: "temporary"
}
);
this.map.addControl(select);
select.activate();
Tapi yang jelas, saya hanya bisa mendapatkannya untuk memilih fitur luar. Apa cara khas menangani ini? Bagaimana saya bisa memungkinkan pengguna untuk memilih fitur dalam juga?
Solusi paling sederhana mungkin akan membuat fitur luar hanya dapat dipilih dalam area yang tersisa ketika mengurangi fitur dalam - tetapi saya tidak tahu bagaimana cara melakukan hal itu.
Jawaban:
Beberapa pilihan. Beberapa lebih gila :-) dari yang lain. Strategi dasarnya adalah
==>
Aktifkan strategi pengelompokan fitur
Terapkan algoritma pengelompokan Anda sendiri, sehingga ketika item baru ditambahkan atau dimodifikasi, algoritma Anda kembali berjalan dan melakukan pemeriksaan for-loop bersarang dan n * n (-1) memeriksa untuk melihat apa yang tumpang tindih dengan apa - kemudian memodifikasi properti fitur untuk mengatur daftar fitur yang tumpang tindih, dan ketika pengguna mengklik fitur tersebut, tampilkan daftar fitur yang tumpang tindih dan minta pengguna memilih apa yang sebenarnya ingin mereka klik. Masuk akal?
Alih-alih mengimplementasikan fitur on-click, hanya mengimplementasikan handler klik peta keseluruhan. Dan ketika pengguna mengklik, periksa lapisan Anda untuk setiap fitur berpotongan - dan jika ada - tampilkan pop-up orang itu, dan jika ada beberapa, tampilkan daftar prompt seperti pada # 2 di atas. Jika tidak ada yang berpotongan, abaikan saja.
Terapkan opsi klik kanan untuk sementara "menyembunyikan" fitur untuk memungkinkan Anda mendapatkan akses ke fitur tersembunyi. Segera setelah yang berikutnya diklik, tampilkan kembali semua fitur yang tersembunyi
Mirip dengan # 4, di dalam pop-up fitur atas, tambahkan item menu / tautan untuk "menyembunyikan" fitur. Dan lanjutkan seperti di # 4.
Mirip-ish ke # 4/5 menerapkan klik kanan "langkah sementara" dan klik seret fitur keluar dari jalan [ingat itu tempat lama]. Kemudian pengguna mengklik fitur yang lebih rendah dan yang teratas muncul kembali ke posisi semula.
sumber