Страница 1 из 1

Отображение view PostGIS в QGIS

Добавлено: 05 сен 2009, 02:10
Denis Rykov
Возникла проблема при отображении в QGIS вида (view), созданного в PostgreSQL+PostGIS.
Был создан вид следующего содержания:

Код: Выделить всё

CREATE OR REPLACE VIEW russia_wgs AS 
SELECT ST_Transform(osm_polygon.way, 4326) AS geom
    FROM osm_polygon;
При попытке отображения в QGIS данного слоя PostGIS появлялась ошибка No suitable key column in view следующего содержания:
The view 'public.russia_wgs' has no column suitable for use as a unique key.
Qgis requires that the view has a column that can be used as a unique key. Such a column should be derived from a table column of type int4 and be a primary key, have a unique constraint on it, or be a PostgreSQL oid column. To improve performance the column should also be indexed.
The view you selected has the following columns, none of which satisfy the above conditions:
'way' derives from 'public.osm_polygon.way' and is not suitable (type is geometry) and does not have a suitable constraint)


То есть для отображения слоя PostGIS в QGIS отображаемый вид должен иметь первичный ключ (Primary Key). Если таблица по которой формируется вид имеет первичный ключ - то просто включаем его в вид, если не имеет - то создаем и опять-таки включаем в вид.

Код: Выделить всё

CREATE OR REPLACE VIEW russia_wgs AS 
SELECT osm_id, ST_Transform(osm_polygon.way, 4326) AS geom
    FROM osm_polygon;
В данном примере был добавлен первичный ключ osm_id из таблицы osm_polygon. Надеюсь кому-нибудь пригодится эта информация.

Re: Отображение view PostGIS в QGIS

Добавлено: 05 сен 2009, 11:06
Voltron
Так об этом даже в кугисовском мануале написано. Раздел 5.2 PostGIS layers, стр. 35, последние 4 абзаца.

Re: Отображение view PostGIS в QGIS

Добавлено: 05 сен 2009, 16:39
Denis Rykov
Я в курсе, этот пост большей частью для тех, кто столкнувшись с ошибкой не пойдёт читать мануал, а обратиться в гугл и, надеюсь, попадёт сюда. А насчёт мануала - да, там все подробно изложено.