Консоль SQL в QGIS

22

Я знаю, что QGIS поставляется с полевым калькулятором, что неплохо. Он также поставляется с ftools, который допускает несколько операций над геометрией и атрибутами. Но нам часто требуется больше контроля, и я не видел ни одного удобного инструмента в QGIS для выполнения таких операций (где вы можете выбирать нужные поля, например, или выполнять арифметические операции над ними при выполнении пространственного запроса).

По сути, я хотел бы знать, есть ли консоль SQL (своего рода окно mapinfo для Mapinfo) на дорожной карте QGIS, и если нет, то было бы сложно закодировать ее как плагин. Если он еще существует, пожалуйста, дайте мне знать, я пропустил это! ;-)

Симо
источник
4
Это не похоже на хороший вопрос для этого сайта. Было бы лучше поместить разработчиков QGIS в один из их списков рассылки. Лучше задать вопрос, как сделать конкретную вещь или получить определенный результат с QGIS. Вопросы о запланированных функциях станут спорными и бессмысленными или даже неправильными во времени.
Шон
1
FastSQL потрясающий! Тем более, что вы можете сразу заменить слой, на который смотрите. Это добавляет необычайную мощь QGIS, подключенному к PostGRES. Однако я обнаружил одну проблему - использование пространственных операторов. Я могу выполнять основные запросы SQL в FastSQL, но ни один из пространственных запросов для. Например, этот запрос работает просто найти в плагине DB Manager: выберите * из водно-болотных угодий, водоразделов, где st_intersects (wetlands.geom, watersheds.geom), но, когда я пытаюсь сделать это в FastSQL, он говорит, что это не допустимый слой и не может быть добавлено на карту. Я думаю, что есть что-то pr
Я потратил много времени, чтобы найти способ сделать это в QGIS 2.0. Большинство ответов здесь и в Google устарели. @Simo: Можете ли вы проверить ответ HeyOverThere как лучший ответ? Следующим читателям будет легче найти свежий правильный ответ.
Николя Буасто
Это сделано (с дополнительным комментарием)
simo
Можете ли вы сказать нам, почему ответ не удовлетворяет вас полностью?
Николя Буасто

Ответы:

10

Новый плагин DB Manager теперь является стандартной частью QGIS начиная с версии 1.8. Он имеет автозаполнение, подсветку синтаксиса, и вы можете добавлять слои, созданные из пространственного запроса, к вашей карте.

В 1.9 (версия для разработки 2.0) DB Manager добавляет функции импорта / экспорта, которые очень удобны.

HeyOverThere
источник
Я не удовлетворен этим ответом, потому что я искал встроенный инструмент, который работал бы независимо от формата данных, но, как сказал @ Nicolas-Boisteault, принятие этого ответа может направить других людей в правильном направлении. Я надеюсь, что это так!
Simo
10

Плагин RT Sql Layer может делать то, что вы хотите (но это не консоль).

введите описание изображения здесь

Вы также можете использовать консоль python: оператор 'PostGIS' select 'как векторный слой в QGIS'

Подземье
источник
Спасибо, Подземье. Я также знаю этот плагин, но он основан на использовании слоя Postgis. На самом деле я хотел бы иметь инструмент, который не зависит от формата ввода (как предлагает orbisgis, см. Пост стартера)
simo
3
Понимаю. Я не слышал о таких планах. Возможно, плагин, который использует пространственный фон, может быть подходом. Это может быть темой для Google Summer of Code.
Подземье
Должен ли я добавить запрос на qgis.org/wiki/Google_Summer_of_Code_2011 ? Я не уверен, что не могу создать аккаунт на вики-странице gqis.
Симо
Вы можете попросить в списке рассылки пользователя получить учетную запись вики. (У нас были проблемы со спамом.) В то же время вы можете спросить мнение другого пользователя / разработчика по этой теме.
Подземье
1
@Nathan> Хорошо, вы читаете этот пост. Я действительно должен отправить идею в список разработчиков qgis (кроме случаев, когда вы это уже сделали?). Использование стандартного SQL для запроса данных любого типа просто фантастично (см. Orbisgis ).
Симо
7

доступен новый плагин: Fast SQL Layer.
Открывается закрепленная консоль sql с подсветкой кода.

Pablo
источник
1
очень круто, хорошее начало! Примечание: зависит от Pygments (так что для пользователей OSGeo4W есть несколько ручных шагов для сборки / установки этого)
Mike T
1
Да, пока решение состоит в том, чтобы скопировать фрагменты в папку site-packages установок osgeo4w. Это сработало для меня. Вскоре я выпущу и обновленную версию, чтобы решить эту проблему.
Пабло
1
Я скачал и распаковал Pygments-1.4.tar.gz, затем в оболочке OSGeo4W внутри Pygments-1.4каталога, python setup.py buildзатем напечаталpython setup.py install
Mike T
2

Я не знаю такого инструмента в QGIS. Однако другое ПО с открытым исходным кодом ГИС предлагает такие возможности, которое называется OrbisGIS: http://www.orbisgis.org.

К сожалению, поскольку один написан на C ++, а другой - на Java, связать их, конечно, будет сложно ... :-(

Agemen
источник
На самом деле, я также пользователь orbisgis (я бывший студент STEU) ;-) - переключаюсь с одного на другого ... и я думаю, что ваша консоль SQL настолько эффективна, что я хотел бы иметь то же самое на qgis ( Я упомянул mapbasic в своем вопросе, потому что он более известен!). Orbisgis обеспечивает полный контроль через консоль SQL, но для выполнения некоторых основных операций может потребоваться время. Напротив, Qgis предназначен для простого выполнения некоторых основных операций, но усложняет выполнение операций полного контроля.
Симо
Я понимаю, что вы имеете в виду ... К счастью, в последней версии OrbisGIS добавлено автозаполнение в консоли SQL. И мы работаем над тем, чтобы добавить возможность выполнять основные операции вне консоли SQL.
Agemen