Eu sou novo no Postgis e no QGIS. Eu criei uma visão definida como
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;
no PostgreSQL. Tentar adicionar essa visualização ao QGIS retorna o seguinte erro ...
"Invalid layer"..."sql= is an invalid layer and cannot be loaded."
Não tenho certeza qual é o problema. A tabela é mencionada na geommetry_columns
tabela no PostGIS, mas posso ver uma entrada de mensagem no QGIS que diz "Nenhum campo-chave para determinada exibição". Estou usando o PostgreSQL 9.2 e o QGIS 1.8.0.
qgis
postgis
spatial-view
ufeliciano
fonte
fonte
Respostas:
Ao adicionar uma visualização do PostGIS ao QGIS, você deve especificar o campo de ID exclusivo. À direita do nome da camada, haverá uma lista suspensa, onde você pode especificar qual campo usar. Se você não tiver um campo de ID exclusivo, poderá criar um campo de ID falso usando a função da janela row_number () na consulta que cria sua exibição.
fonte
Hoje encontrei esse erro com uma exibição criada a partir de uma junção entre tabelas. Acabou tendo dois campos únicos que perturbaram os QGis. Inicialmente, a visão era como:
Dessa forma, havia dois campos de chave primária na exibição. Em vez disso, tive que especificar os campos resultantes, para finalizar um único candidato a campo para identificador exclusivo:
fonte