Una console SQL in QGIS


22

So che QGIS viene fornito con il suo calcolatore di campo, il che non è male. Inoltre viene fornito con ftools che consente diverse operazioni su geometria e attributi. Ma spesso abbiamo bisogno di un maggiore controllo e non ho visto nessuno strumento utile in QGIS per eseguire tali operazioni (dove è possibile selezionare i campi necessari ad esempio o eseguire operazioni aritmetiche su di essi mentre si esegue una query spaziale).

Fondamentalmente, vorrei sapere se una console SQL (una sorta di finestra mapbasic di Mapinfo) è sulla roadmap di QGIS e, in caso contrario, se sarebbe difficile codificarla come plugin. Se esiste ancora, per favore fatemi sapere, mi sono perso! ;-)


4
Questa non sembra davvero una buona domanda per questo sito. Sarebbe meglio metterlo agli sviluppatori QGIS su una delle loro mailing list. Una domanda migliore potrebbe chiedere come fare una cosa specifica o ottenere un certo risultato con QGIS. Le domande sulle funzionalità pianificate diventeranno discutibili e inutili o addirittura sbagliate nel tempo.
Sean,

1
FastSQL è fantastico! Soprattutto che puoi sostituire immediatamente il livello che stai osservando. Ciò aggiunge un potere straordinario a QGIS collegato a PostGRES. Tuttavia, ho riscontrato un problema, e questo è l'uso degli operatori spaziali. Posso eseguire query SQL di base in FastSQL, ma nessuna delle query spaziali per. Ad esempio, questa query funziona semplicemente nel plug-in DB Manager: seleziona * da zone umide, bacini idrici dove st_intersects (wetlands.geom, watersheds.geom) ma, quando lo provo in FastSQL, dice che non è un livello valido e non può essere aggiunto alla mappa. Sto pensando che ci sia qualcosa di pr

Ho trascorso molto tempo a trovare il modo di farlo in QGIS 2.0. La maggior parte delle risposte qui e su Google sono obsolete. @Simo: puoi controllare HeyOverC'è la risposta migliore? Sarà più facile per i prossimi lettori trovare la nuova risposta corretta.
Nicolas Boisteault,

Questo viene fatto (con un commento aggiuntivo)
simo

Puoi dirci perché la risposta non ti soddisfa completamente?
Nicolas Boisteault,

Risposte:


10

Il nuovo plug-in DB Manager è ora una parte standard di QGIS da 1.8 in poi. Ha il completamento automatico, l'evidenziazione della sintassi e puoi aggiungere livelli creati da una query spaziale alla tua mappa.

In 1.9 (la versione di sviluppo per 2.0) DB Manager aggiunge funzioni di importazione / esportazione molto utili.


Non sono soddisfatto di questa risposta perché stavo cercando uno strumento integrato che funzioni qualunque sia il formato dei dati, ma come ha detto @ Nicolas-Boisteault, accettare questa risposta potrebbe portare altre persone nella giusta direzione. Lo spero!
simo

10

Il plugin RT Sql Layer può fare quello che vuoi (ma non è una console).

inserisci qui la descrizione dell'immagine

Puoi anche usare la console python: 'PostGIS' seleziona 'istruzione come layer vettoriale in QGIS'


Grazie underdark. Conosco anche quel plug-in ma si basa sull'uso del livello Postgis. In realtà, vorrei avere uno strumento che non dipende dal formato di input (come propongono orbisgis, vedi post di agemen)
simo

3
Vedo. Non ho sentito parlare di tali piani. Forse un plug-in che utilizza la spazialite in background potrebbe essere un approccio. Questo potrebbe essere un argomento per Google Summer of Code.
underdark

Dovrei aggiungere una richiesta su qgis.org/wiki/Google_Summer_of_Code_2011 ? Non sono sicuro di non poter creare un account sulla pagina wiki di gqis.
simo

Puoi chiedere alla mailing list dell'utente di ottenere un account wiki. (Abbiamo avuto problemi di spam.) Allo stesso tempo, puoi chiedere ad altri utenti / sviluppatori opinioni sull'argomento.
underdark

1
@Nathan> Nice, stai seguendo quel post. Dovrei davvero inviare l'idea sulla lista dev di qgis (tranne se l'hai già fatto?). L'uso di un SQL standard per eseguire query su qualsiasi tipo di dati è semplicemente fantastico (vedi orbisgis ).
simo

7

è disponibile un nuovo plug-in: Fast SQL Layer.
Apre una console sql ancorata con evidenziazione del codice.


1
molto bello, un buon inizio! Nota: dipende da Pygments (quindi per gli utenti di OSGeo4W, ci sono alcuni passaggi manuali per compilare / installare questo)
Mike T

1
Sì, per ora la soluzione è copiare i pigmenti nella cartella dei pacchetti del sito delle installazioni di osgeo4w. Ha funzionato per me. Presto rilascerò una versione aggiornata per risolverlo.
Pablo,

1
Ho scaricato ed estratto Pygments-1.4.tar.gz, quindi in una shell OSGeo4W all'interno della Pygments-1.4directory, digita python setup.py buildquindipython setup.py install
Mike T


2

Non conosco un tale strumento in QGIS. Un altro software GIS open source offre tali funzionalità, tuttavia, che si chiama OrbisGIS: http://www.orbisgis.org

Sfortunatamente, poiché uno è scritto in C ++ e l'altro è in Java, sarebbe certamente difficile collegarli ... :-(


In realtà, sono anche un utente di orbisgis (sono un ex studente STEU) ;-)-passare da uno all'altro ... e penso che la tua console SQL sia così efficiente che mi piacerebbe avere lo stesso su qgis ( Ho menzionato mapbasic nella mia domanda perché è più noto!). Orbisgis consente un controllo completo tramite la console SQL ma può richiedere del tempo per eseguire alcune operazioni di base. Al contrario, Qgis è progettato per eseguire facilmente alcune operazioni di base, ma rende più difficile le operazioni di controllo completo.
simo

Capisco cosa intendi ... Fortunatamente, l'ultima versione di OrbisGIS aggiunge il completamento automatico nella console SQL. E stiamo lavorando per aggiungere la possibilità di eseguire operazioni di base al di fuori della console SQL.
Agemen
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.