Eine SQL-Konsole in QGIS

22

Ich weiß, dass QGIS mit einem Feldrechner geliefert wird, was nicht schlecht ist. Es wird auch mit ftools geliefert, das verschiedene Operationen für Geometrie und Attribute ermöglicht. Aber wir brauchen oft mehr Kontrolle und ich habe kein praktisches Werkzeug in QGIS gesehen, um solche Operationen durchzuführen (wo Sie Felder auswählen können, die Sie zum Beispiel benötigen, oder arithmetische Operationen an ihnen ausführen können, während Sie eine räumliche Abfrage durchführen).

Grundsätzlich würde ich gerne wissen, ob sich eine SQL-Konsole (eine Art Mapinfo-Mapbasic-Fenster) auf der Roadmap von QGIS befindet und wenn nicht, ob es schwierig wäre, sie als Plugin zu codieren. Wenn es noch existiert, lass es mich wissen, ich habe es verpasst! ;-)

simo
quelle
4
Dies scheint keine gute Frage für diese Site zu sein. Es wäre besser, die QGIS-Entwickler auf eine ihrer Mailinglisten zu setzen. Eine bessere Frage könnte sein, wie man eine bestimmte Sache macht oder mit QGIS ein bestimmtes Ergebnis erzielt. Fragen zu geplanten Funktionen werden mit der Zeit streitig und sinnlos oder sogar falsch.
Sean
1
FastSQL ist großartig! Insbesondere, dass Sie die betrachtete Ebene sofort ersetzen können. Dies verleiht QGIS, das mit PostGRES verbunden ist, eine außergewöhnliche Leistung. Ich habe jedoch ein Problem gefunden, nämlich die Verwendung der räumlichen Operatoren. Ich kann grundlegende SQL-Abfragen in FastSQL ausführen, aber keine der räumlichen Abfragen für. Diese Abfrage funktioniert zum Beispiel nur im DB Manager-Plugin: Wählen Sie * aus Feuchtgebieten, Wasserscheiden, in denen st_intersects (wetlands.geom, watersheds.geom), aber wenn ich es in FastSQL versuche, heißt es, dass es keine gültige Ebene ist und nicht sein kann zur Karte hinzugefügt. Ich denke, dass es etwas gibt pr
Ich habe viel Zeit damit verbracht, den Weg dazu in QGIS 2.0 zu finden. Die meisten Antworten hier und auf Google sind veraltet. @Simo: Kannst du HeyOverThere's Antwort als die beste Antwort ansehen? Für die nächsten Leser wird es einfacher sein, die richtige Antwort zu finden.
Nicolas Boisteault
Dies erfolgt (mit einem zusätzlichen Kommentar)
simo
Können Sie uns sagen, warum die Antwort Sie nicht vollständig befriedigt?
Nicolas Boisteault

Antworten:

10

Das neue DB Manager-Plugin ist ab Version 1.8 Standard in QGIS. Es verfügt über eine automatische Vervollständigung und Syntaxhervorhebung. Außerdem können Sie Ihrer Karte Layer hinzufügen, die aus einer räumlichen Abfrage erstellt wurden.

In 1.9 (der Entwicklungsversion für 2.0) fügt DB Manager Import- / Exportfunktionen hinzu, die sehr praktisch sind.

HeyOverThere
quelle
Ich bin mit dieser Antwort nicht zufrieden, da ich nach einem integrierten Tool gesucht habe, das unabhängig vom Datenformat funktioniert. Wie jedoch @ Nicolas-Boisteault sagte, kann die Annahme dieser Antwort andere Personen in die richtige Richtung lenken. Hoffentlich!
Simo
10

Das RT SQL Layer Plugin kann tun, was Sie wollen (aber es ist keine Konsole).

Bildbeschreibung hier eingeben

Sie können auch die Python-Konsole verwenden: 'PostGIS' wählen Sie 'Anweisung als Vektorebene in QGIS'

Underdunkel
quelle
Danke underdark. Ich kenne das Plugin auch, aber es basiert auf der Verwendung von Postgis-Ebenen. Eigentlich hätte ich gerne ein Tool, das nicht formatabhängig ist (wie von Orbisgis vorgeschlagen, siehe Agemen Post)
simo
3
Aha. Ich habe noch nie von solchen Plänen gehört. Vielleicht könnte ein Plugin, das Spatialite im Hintergrund verwendet, ein Ansatz sein. Dies könnte ein Thema für Google Summer of Code sein.
Underdunkel
Soll ich mir eine Anfrage auf qgis.org/wiki/Google_Summer_of_Code_2011 hinzufügen ? Ich bin nicht sicher, ob ich ein Konto auf der Wiki-Seite von gqis erstellen kann.
Simo
Sie können in der Benutzer-Mailingliste nach einem Wiki-Account fragen. (Wir hatten Spam-Probleme.) Gleichzeitig können Sie andere Benutzer / Entwickler nach Meinungen zum Thema fragen.
underdark
1
@ Nathan> Schön, dass du diesem Beitrag folgst. Ich sollte die Idee wirklich auf qgis dev list einreichen (außer wenn du es schon getan hast?). Es ist einfach fantastisch, ein Standard-SQL zum Abfragen beliebiger Datentypen zu verwenden (siehe orbisgis ).
simo
7

Es gibt ein neues Plugin: Fast SQL Layer.
Es öffnet sich eine angedockte SQL-Konsole mit Code-Hervorhebung.

Pablo
quelle
1
sehr cool, ein guter start! Hinweis: hängt von Pygments ab (für OSGeo4W-Benutzer gibt es einige manuelle Schritte, um dies zu erstellen / installieren)
Mike T
1
Ja, im Moment besteht die Lösung darin, Pygments in den Site-Packages-Ordner von osgeo4w-Installationen zu kopieren. Es hat bei mir funktioniert. Bald werde ich eine aktualisierte Version veröffentlichen, um das zu lösen.
Pablo
1
Ich heruntergeladen und Pygments-1.4.tar.gz, dann in einem OSGeo4W Shell im extrahierten Pygments-1.4Verzeichnis, geben Sie python setup.py builddannpython setup.py install
Mike T
2

Ich kenne ein solches Tool in QGIS nicht. Eine andere Open-Source-GIS-Software bietet jedoch solche Funktionen: OrbisGIS: http://www.orbisgis.org

Leider wäre es schwierig, sie zu verknüpfen, da eine in C ++ und die andere in Java geschrieben ist ... :-(

Agemen
quelle
Eigentlich bin ich auch ein Orbisgis-Benutzer (ich bin ein ehemaliger STEU-Student) ;-) -Umschalten von einem zum anderen ... und ich denke, Ihre SQL-Konsole ist so effizient, dass ich das Gleiche auf qgis haben möchte ( Ich habe mapbasic in meiner Frage erwähnt, weil es bekannter ist!). Orbisgis ermöglicht eine vollständige Steuerung über die SQL-Konsole, die Ausführung einiger grundlegender Vorgänge kann jedoch einige Zeit in Anspruch nehmen. Im Gegenteil, Qgis ist so konzipiert, dass einige grundlegende Vorgänge problemlos ausgeführt werden können, die vollständige Kontrolle wird jedoch erschwert.
Simo
Ich verstehe, was Sie meinen ... Glücklicherweise wird in der letzten Version von OrbisGIS die automatische Vervollständigung in der SQL-Konsole hinzugefügt. Und wir arbeiten daran, die Möglichkeit zu schaffen, grundlegende Operationen außerhalb der SQL-Konsole auszuführen.
Agemen