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

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

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

Сообщение Denis Rykov » 05 сен 2009, 02:10

Возникла проблема при отображении в 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. Надеюсь кому-нибудь пригодится эта информация.
Spatial is now, more than ever, just another column- The Geometry Column.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

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

Сообщение Voltron » 05 сен 2009, 11:06

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

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

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

Сообщение Denis Rykov » 05 сен 2009, 16:39

Я в курсе, этот пост большей частью для тех, кто столкнувшись с ошибкой не пойдёт читать мануал, а обратиться в гугл и, надеюсь, попадёт сюда. А насчёт мануала - да, там все подробно изложено.
Spatial is now, more than ever, just another column- The Geometry Column.

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей