Hanya menampilkan fitur yang dipilih pada peta di QGIS?

30

Tidak yakin apakah opsi ini pernah ada, tetapi versi QGIS baru menyembunyikan banyak hal di tempat lain dan ini tampak sangat sederhana sehingga saya agak yakin bahwa mungkin untuk melakukan ini sebelumnya.

Saya memiliki kumpulan data yang cukup besar dengan trek kapal. Saya sekarang ingin menganalisis trek kapal individu (dibuat dari lapisan titik dengan points2one) - namun, sangat ramai sehingga sulit untuk melihat trek individual. Saya tidak ingin menyimpan setiap lagu sebagai layer baru, jadi saya ingin tahu apakah mungkin untuk memilih satu lagu di tabel atribut dan hanya menampilkan yang ada di peta / menyembunyikan yang lain?

Kristina
sumber

Jawaban:

33

Jawaban Kadeem akan mencegah fitur Anda agar tidak terlihat, tetapi fitur itu akan tetap ada, jika Anda mencoba mengidentifikasi trek kapal individu, Anda dapat mengklik fitur yang tidak terlihat secara tidak sengaja. Apa yang tampaknya perlu Anda lakukan adalah mendefinisikan layer Anda sehingga seolah-olah fitur-fitur itu tidak ada. Di ArcGIS ini biasanya dilakukan dengan menggunakan Query Definisi, di QGIS perintah yang setara adalah Layer Subset. Pergi ke Properti lapisan Anda, di bawah tab Umum, di bagian bawah adalah kotak Subset Fitur, klik tombol di bawahnya untuk membuka Pembuat Kueri:

masukkan deskripsi gambar di sini

Query Builder akan membantu Anda membuat kueri SQL untuk menentukan fitur apa di lapisan Anda yang seharusnya ditampilkan di proyek Anda. Setiap fitur yang tidak dikembalikan oleh kueri dibuat tidak terlihat, tidak hanya secara visual tetapi seluruhnya (mereka tidak dihapus dari data Anda, tentu saja, mereka baru saja ditentukan keberadaannya sampai Anda menghapus permintaan Layer Subset).

Dan C
sumber
Dan, terima kasih banyak !!! Inilah yang saya cari, sedikit lebih rumit dari yang saya harapkan tetapi melakukan trik! Sangat membantu, terima kasih!
Kristina
Itu idd jawabannya. Tip bagus Dan!
kadéem
Aneh. Beberapa waktu yang lalu saya melakukan ini dan itu berhasil. Sekarang saya ingin melakukannya lagi pada layer lain dan kotak Fitur Subset berwarna abu-abu, serta tombol QueryBuilder! Ada saran???
Patrick Van Den Noortgaete
Dipecahkan, tetapi tidak jelas alasannya. Saya menyimpan perubahan yang saya buat dan kemudian Tombol QueryBuilder tersedia ...
Patrick Van Den Noortgaete
1
@SimoA. Jika data Anda di Excel, Anda bisa menyaring sana, menambahkan bidang baru di mana Anda mengkonversi VALUEke 'VALUE',, lalu copy dan paste lapangan yang dalam kotak pertanyaan menggunakan query DI.
Dan C
15

Ini sekarang dimungkinkan menggunakan hanya seleksi dan simbologi berbasis aturan.

Ini membutuhkan plugin Expression Plus (untuk QGIS 2.x. 3.0 memiliki fungsi bawaan).

Buat simbologi berbasis aturan dengan filter:

QGIS 3.0+ (dari thequerist dalam komentar):

is_selected()

QGIS 2.12-2.18:

isselected( @layer_name )

Atau QGIS 2.8:

isselected( 'ACTUAL_NAME_OF_LAYER' )

Sekarang hanya fitur yang dipilih yang memenuhi aturan ini yang akan ditampilkan.

Anda juga dapat memiliki aturan ELSE untuk semua fitur yang tidak dipilih.

masukkan deskripsi gambar di sini

HeikkiVesanto
sumber
1
Ini persis apa yang saya cari - terima kasih atas jawaban ini
geobar
HeikkiVesanto, di mana saya memasukkan filter ini?
newGIS
Saya telah menambahkan gambar.
HeikkiVesanto
1
Menggunakan QGIS 2.18.14 dan ekspresi yang berfungsi dipilih ('layer_name'). Menggunakan (@layer_name) menghasilkan 0 hasil.
Techie_Gus
2
Di QGIS 3 dan di atas, fitur ini tertanam di dalamnya. Anda dapat menemukannya Record and Attributesdi bawah di Expression String Builder. Juga, Anda tidak perlu memasukkan nama layer lagi dan jangan lupa untuk menggarisbawahi antara isdan selected. Berikut adalah contoh untuk QGIS 3 dan di atas: is_selected().
thequerist
12

Kristina, saya berasumsi ada atribut di tabel Anda yang memungkinkan Anda untuk mengidentifikasi satu lagu? Sebagai contoh:

  point_id  |  track_id
------------+------------
     1      |     15
     2      |     15
     5      |     24
     6      |     24
     7      |     24

Jika Anda membuka tabel atribut, Anda dapat menemukan simbol epsilon (pada gambar di bawah, yang ke-4).

masukkan deskripsi gambar di sini

Ini memungkinkan Anda mengetik ekspresi; sebagai contoh:

"track_id" = 24

Saat Anda mengonfirmasi, semua baris yang memenuhi ekspresi Anda (yaitu: semua titik yang dimiliki trek dengan track_idX) dipilih. Jika Anda kemudian mengklik tombol kaca pembesar, QGIS memperbesar pilihan Anda di kanvas peta. Fitur yang dipilih (poin dalam kasus Anda) disorot.


Apa yang dapat Anda lakukan adalah menerapkan gaya berbasis aturan. Dengan demikian, Anda dapat menunjukkan trek kapal individual menggunakan simbol atau spidol yang diberikan, dan 'tidak menunjukkan' semua poin lain dengan memberi mereka spidol 'tidak terlihat'. Tangkapan layar (bagian dari Layer Properties) di bawah ini menjelaskan cara kerjanya:

  • Aturan 1: terapkan penanda yang diberikan ke semua titik yang memiliki nilai 24 untuk track_id
  • Aturan 2: terapkan penanda yang diberikan (lingkaran dengan isian putih dan batas putih ...) ke semua titik yang tidak memenuhi track_idnilai 24

masukkan deskripsi gambar di sini

Sebenarnya semua poin masih ada (menjadikannya putih tidak akan membuat proses rendering memakan waktu lebih sedikit) tetapi setidaknya mata Anda bisa rileks!

kadéem
sumber
Terima kasih banyak atas jawaban Anda Kadeem! Saya mengetahui fungsi pemilihan dan ini bekerja dengan baik, namun, saya benar-benar memiliki 500.000 poin di area kecil dan hanya menyorot trek yang saya cari tidak cukup, peta masih terlalu ramai dan membingungkan. Apakah Anda tahu jika ada kemungkinan untuk memblokir semua poin yang tidak dipilih atau sesuatu seperti itu?
Kristina
2
Saya mengedit jawaban saya dengan opsi lain di bawah baris. Saya kira ini akan membantu Anda.
kadéem
Kadeem, ini sangat sederhana namun efektif - ide bagus, terima kasih banyak!
Kristina