QGIS, Postgis: Apakah mungkin membuat layer postgis baru?

8

Situasi:

Saya memiliki lay vektor vektor yang memiliki banyak segmen garis (fitur). Saya ingin membuat satu set layer baru yang masing-masing berisi subset fitur dari layer asli dan memiliki layer ini juga disimpan kembali di postgis. Idealnya dengan fitur aktual disimpan sekali saja.

Satu-satunya cara saya bisa melihat untuk membuat layer baru sebagai lawan untuk memuat satu dari beberapa sumber adalah melalui Layer-> new yang memberikan opsi shapefile atau spatialite.

Memilih file bentuk Saya pertama kali mencoba untuk menentukan atribut gid dan fid untuk layer baru tetapi SPIT mengeluh tentang duplikat bidang gid ketika saya mencoba memuatnya ke postgis.

Jika saya tidak membuat atribut untuk SPIT layer baru dengan senang hati memuatnya, mungkin menduplikasi semua fitur.

Saya menduga ini adalah 'fitur' daripada pengawasan karena jika memungkinkan untuk berbagi fitur antar lapisan maka apa yang akan terjadi jika fitur terpecah? Jika semuanya berfungsi dengan baik maka semua lapisan dengan direferensikan fitur itu perlu memperbarui dengan gid baru dari porsi baru.

Apakah interpretasi ini benar?

Russell

Russell Fulton
sumber
1
Tidak ada yang namanya fitur bersama. Anda hanya memiliki dua salinan, pisahkan satu dan yang lainnya tetap sama.
Nathan W
Saya pikir itu mungkin masalahnya. Masalah saya adalah bahwa selama bertahun-tahun saya telah diindoktrinasi secara menyeluruh dengan model relasional dan normalisasi data;)
Russell Fulton

Jawaban:

4

Menggunakan plugin PostGIS Manager, Anda dapat membuat tabel baru di database PostGIS.

Anda juga dapat menjalankan pernyataan SQL seperti

CREATE TABLE new_table AS SELECT * FROM old_table

untuk menduplikasi tabel.

underdark
sumber
7

Ini adalah pertanyaan yang agak lama dan jawaban yang benar telah berubah dengan versi terbaru QGIS.

PostGIS Manager telah ditinggalkan, dan digantikan oleh DB Manager yang berfungsi untuk PostGIS dan SpatiaLite.

DB Manager diinstal secara default dan dapat diakses di bawah Database > DB Managerentri menu. Itu akan membuka jendela DB Manager.

Pilih database yang ingin Anda tambahkan layer juga dan kemudian klik Table > Create table. Jika Anda tidak memiliki database yang dipilih saat Anda mengklik entri menu Tabel, opsi buat tabel tidak akan ada di sana.

Itu akan membuka dialog buat tabel yang sangat mirip dengan yang diakses oleh Layer > New > New SpatiaLiteLayer tetapi dengan tata letak yang berbeda.

Opsi sebagian besar sama dengan perbedaan terbesar adalah bahwa dialog New Spatialite Layer memungkinkan akses ke dialog Specify CRS yang membuat memilih sistem koordinat Anda lebih mudah. Dialog Buat tabel mengharuskan Anda mengetahui nomor SRID sebelumnya untuk memasukkannya.

Gregory Arenius
sumber