Bagaimana cara me-refresh tabel atribut layer setelah mengedit tabel di DB-Manager?


14

Apakah ada cara untuk me-refresh tabel atribut layer setelah mengedit tabel (misalnya menambahkan kolom) di DB-Manager?


plugin changeDataSource adalah cara tercepat dan bekerja sangat baik dengan file .csv
scataldi

Jawaban:


13

Pendek dan manis:

  1. Instal plugin changeDataSource .
  2. Klik kanan pada layer di Layers Panel dan pilih Change vector datasource.
  3. Di kotak dialog yang muncul, tekan saja OKtanpa mengubah salah satu pengaturan.

Pada dasarnya, Anda "mengubah" sumber data vektor ke apa yang sudah ada sebelumnya, tetapi ini memaksa QGIS untuk memuat ulang definisi layer.

Diuji dalam QGIS 2.14 pada Linux Mint 17.2.


Saya harus memilih ulang sumber data yang sama agar dapat berfungsi.
sladstaetter

4

Dengan asumsi bahwa Anda bekerja dengan database PostGIS, Anda dapat memperbarui statistik tabel minat dengan menggunakan ANALYSEfungsi: http://www.postgresql.org/docs/current/static/sql-analyze.html

Dalam kasus Anda, Anda dapat menjalankan pernyataan di dalam DB-manager dengan menekan tombol yang ditandai pada gambar terlampir dan mengeksekusi ANALYSEpernyataan di jendela, yang juga ditandai. Kueri akan menjadi ANALYSE yourschema.yourtable. Perintah analisis harus memperbarui tabel Anda, sehingga ketika Anda mengakses kembali informasi itu harus mencerminkan perubahan yang telah Anda buat. Jendela manajer DB


1
Ini tidak me-refresh tabel atribut (klik kanan pada layer -> Open Attribute Table).
Laut Bulan

2

Apakah saya mengerti dengan baik jika Anda bermaksud me-refresh tabel di QGIS setelah perubahan pada kolom dibuat?

Sejauh yang saya tahu, hanya menutup dan membuka proyek atau menambahkan kembali tabel akan membuat ini terjadi. Selama Anda menyimpan gaya default di database yang mungkin merupakan cara tercepat.

Ketika kolom ditambahkan dengan Kalkulator Bidang, perubahannya langsung terlihat tetapi manajer DB menawarkan lebih banyak kontrol dalam menentukan jenis bidang jadi saya mengerti mengapa itu mungkin bukan solusi.


Apakah ada perintah Python untuk me-refresh tabel atribut? Saya juga memperhatikan bahwa 'Tampilkan Hitungan Fitur' mengabaikan perubahan yang dibuat di DB-Manager (menambah fitur / menghapus fitur).
Laut Bulan

3
layer.dataProvider().forceReload()harus melakukan triknya
Matthias Kuhn
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.