В PostGIS 2.0 я ищу эффективный способ создания пространственно разрешенного представления, которое можно просматривать в QGIS.
Я следовал контексту части 2 ответа @Mike Toews на Как создать таблицу из существующих таблиц (применяя новые схемы) в БД postgis? и вид отображается как точечный слой (в моем случае) в диалоговом окне «Добавить слои PostGIS». Но после создания представления и пространственного включения его я получил следующую ошибку при попытке добавить представление в QGIS:
Вы должны выбрать таблицу, чтобы добавить слой
Может кто-нибудь объяснить, почему пространственное представление не будет загружаться в QGIS, и что мне нужно сделать, чтобы сделать его загружаемым как слой в QGIS?
В настоящее время я использую QGIS v1.8 из установщика OSGEO
Я смотрю построен из базы данных Geonames, загруженных в PostGIS. Таблица географических названий / пространственные данные могут быть просто выбраны / просмотрены в QGIS.
Когда я пытаюсь выбрать « mt_view », QGIS видит представление в диалоговом окне, но не позволяет мне выбрать его. Он дает пунктирную рамку вокруг области, но не выделяет и не выбирает вид.
Я просто заметил, что когда я запускаю свой первый запрос:
CREATE OR REPLACE VIEW data.test AS
SELECT * FROM data.geoname
WHERE admin1='MT'
вид отображается в диалоге добавления слоя QGIS, но его нельзя выбрать. Тогда, когда я бегу:
SELECT Populate_Geometry_Columns('data.test'::regclass);
Я получаю результат «0», где, согласно документации , я думаю, что он должен возвращать «1».
источник
Ответы:
Я могу подтвердить, что невозможно просто выбрать вид из списка.
Кажется необходимым сначала выбрать «столбец первичного ключа». Затем таблица становится доступной для выбора:
источник
(Обновление моего ответа немного)
До тех пор, пока поле OBJECTID (row_number) будет первым в определении столбца представления , QGIS будет выбирать его, не прося вас добавить его из меню «Добавить векторный слой».
Я просто исправил некоторые старые представления, которые были нарушены в соответствии с первоначальным вопросом, но перемещение поля OBJECTID в начало представления устранило проблему!
источник
PRIMARY KEY
определенное значение, QGIS постоянно ее подхватывает: она никогда не может «выбрать» PK на любой из моих таблиц, которые имеют ПК, хотя почти все мои ПК естьVARCHAR
. Этого не может быть с a,VIEW
потому что в PostgreSQLVIEW
s не может бытьCONSTRAINT
s. Я уверен, что именно поэтому необходимо выбирать PK дляVIEW
s вручную при импорте в QGIS через кнопку «Добавить слои PostGIS», поэтому я импортирую их, используя скрипт Python.Ваш вид отображается в
geometry_columns
таблице? Согласно руководству, представление должно автоматически отображаться в версии 2.0, но я не пробовал.Попробуйте выполнить следующее, чтобы проверить:
источник
Используется ли в вашем представлении уникальное целочисленное поле, например «gid» или PK, эквивалентное одной из таблиц в вашем представлении?
Я знаю, что в предыдущих версиях QGIS у меня были проблемы с добавлением видов на карту, когда не было уникального целочисленного поля. Однако я получил другое сообщение об ошибке, указывающее на эту проблему, но, возможно, стоит проверить, чтобы охватить все базы.
источник