Saya baru mengenal Postgis dan QGIS. Saya membuat tampilan yang didefinisikan sebagai
CREATE OR REPLACE VIEW pupr.vstudentmuni AS
SELECT m.id AS munid, m.name AS muname, m.geom, s.code,
(s.name::text || ' '::text) || s.lastname::text AS fullname
FROM pupr.municipio m, pupr.student_location l, pupr.student s
WHERE st_within(l.geom, m.geom) AND s.code = l.code;
dalam PostgreSQL. Mencoba menambahkan tampilan ini ke QGIS mengembalikan kesalahan berikut ...
"Invalid layer"..."sql= is an invalid layer and cannot be loaded."
Tidak yakin apa masalahnya. Tabel disebutkan dalam geommetry_columns
tabel di PostGIS, tetapi saya bisa melihat entri pesan di QGIS yang mengatakan "Tidak ada bidang kunci untuk tampilan yang diberikan". Saya menggunakan PostgreSQL 9.2 dan QGIS 1.8.0.
qgis
postgis
spatial-view
ufeliciano
sumber
sumber
Jawaban:
Ketika Anda menambahkan tampilan dari PostGIS ke QGIS Anda harus menentukan bidang ID unik. Di sebelah kanan nama layer akan menjadi drop down di mana Anda dapat menentukan bidang mana yang akan digunakan. Jika Anda tidak memiliki bidang ID unik, Anda bisa membuat bidang ID palsu menggunakan fungsi jendela row_number () dalam kueri yang membuat tampilan Anda.
sumber
Hari ini saya menemukan kesalahan ini dengan tampilan yang dibuat dari gabungan antara tabel. Akhirnya memiliki dua bidang unik yang mengganggu QGis. Awalnya tampilan seperti:
Dengan cara ini ada dua bidang kunci utama dalam tampilan. Alih-alih, saya harus menentukan bidang yang dihasilkan, untuk mendapatkan kandidat bidang tunggal untuk pengidentifikasi unik:
sumber