У меня есть созданная мной пространственная база данных, которая охватывает данные за несколько лет. Чтобы облегчить реальный сценарий, в котором я могу упростить взаимодействие для пользователя, введя представление, которое просто ограничивает промежуток времени или какие типы преступлений возвращаются, я хочу знать, возможно ли, чтобы QGIS читал это представление, как это будет любая другая пространственная таблица в моей базе данных. Дело в том, что я, очевидно, не хочу создавать отдельную таблицу для каждого возможного представления, которое я могу использовать, и я пытаюсь упростить его, не требуя, чтобы пользователь знал базу данных и соответствующий SQL-код для подмножества самих данных. Аналогичным рабочим процессом в мире ArcGIS может быть создание отдельных файлов слоев, которые пользователь может открыть в ArcMap для доступа к базе данных (скажем, SQL Server) и представления только ограниченного набора данных.
Я создал View в своей базе данных, но он не отображается в списке классов объектов, которые я могу импортировать, когда подключаюсь к пространственной базе данных в QGIS. Может быть, виды не считаются пространственными? (Это то, что я собираюсь рассмотреть позже, но я думал, что уже сделал; я просто не вспоминаю заключение.) В любом случае, как можно повторить тот вид рабочего потока, который я хочу, или подобную альтернативу ArcGIS? ?
источник
SELECT * FROM views_geometry_columns;
чтобы увидеть, что нужно вставить. Больше информации на gaia-gis.it/spatialite-3.0.0-BETA/spatialite-cookbook/html/…Возможно, вам также придется ввести уникальный идентификатор в представление, аналогичное тому, что обсуждается здесь: В PostGIS возможно ли создать представление с уникальным идентификатором?
источник
регистрация представления в geometry_columns в настоящее время (год 2015), кажется, требует дополнительного поля read_only, например:
источник
Для SpatialLite 4.x требуется два изменения исходного ответа - добавление
read_only
столбца и изменение всех вставленных значений в нижний регистр. Обновленный SQL будет выглядеть так:read_only
Поле принимает значение 0 или 1. (комментарий знакомства Сандро Furieri в в Google Groups для дальнейших разъяснений.)Более подробную информацию об этих и других изменениях в 4.x можно найти в вики-переходе на 4.0 .
источник
NB: только заменить: nameOfView и geometryTable
источник